• Vaibhav Gupta's avatar
    fbdev: nvidia: use generic power management · 6d111187
    Vaibhav Gupta authored
    Drivers should do only device-specific jobs. But in general, drivers using
    legacy PCI PM framework for .suspend()/.resume() have to manage many PCI
    PM-related tasks themselves which can be done by PCI Core itself. This
    brings extra load on the driver and it directly calls PCI helper functions
    to handle them.
    
    Switch to the new generic framework by updating function signatures and
    define a "struct dev_pm_ops" variable to bind PM callbacks. Also, remove
    unnecessary calls to the PCI Helper functions along with the legacy
    .suspend & .resume bindings.
    
    Now,
    - nvidiafb_suspend() had a "pm_message_t" type parameter as per legacy
      PCI PM framework that got deprecated in generic.
    - Rename the callback as nvidiafb_suspend_late() and preserve the
      parameter.
    - Define 3 new callbacks as:
            * nvidiafb_suspend()
            * nvidiafb_freeze()
            * nvidiafb_hibernate()
      which in turn call nvidiafb_suspend_late() by passing appropriate value
      for "pm_message_t" type parameter.
    - Bind the callbacks in "struct dev_pm_ops" type variable
      "nvidiafb_pm_ops".
    Signed-off-by: default avatarVaibhav Gupta <vaibhavgupta40@gmail.com>
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Bjorn Helgaas <bjorn@helgaas.com>
    Cc: Vaibhav Gupta <vaibhav.varodek@gmail.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Andres Salomon <dilinger@queued.net>
    CC: Antonino Daplas <adaplas@gmail.com>
    Cc: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200819185654.151170-7-vaibhavgupta40@gmail.com
    6d111187
nvidia.c 38.4 KB