Vaibhav Gupta <vaibhavgupta40@xxxxxxxxx> wrote: > Drivers using legacy PM have to manage PCI states and device's PM states > themselves. They also need to take care of configuration registers. > > With improved and powerful support of generic PM, PCI Core takes care of > above mentioned, device-independent, jobs. > > The callbacks make use of PCI helper functions like > pci_save/restore_state(), pci_enable/disable_device() and > pci_set_power_state() to do required operations. In generic mode, they are > no longer needed. > > Change function parameter in both .suspend() and .resume() to > "struct device*" type. Use dev_get_drvdata() to get drv data. > > The .suspend() callback is invoking rt2x00lib_suspend() which needs to be > modified as generic rt2x00pci_suspend() has no pm_message_t type argument, > passed to it, which is required by it according to its declaration. > Although this variable remained unused in the function body. Hence, remove > it from the function definition & declaration. > > rt2x00lib_suspend() is also invoked by rt2x00usb_suspend() and > rt2x00soc_suspend(). Thus, modify the functional call accordingly in their > function body. > > Earlier, .suspend() & .resume() were exported and were used by the > following drivers: > - drivers/net/wireless/ralink/rt2x00/rt2400pci.c > - drivers/net/wireless/ralink/rt2x00/rt2500pci.c > - drivers/net/wireless/ralink/rt2x00/rt2800pci.c > - drivers/net/wireless/ralink/rt2x00/rt61pci.c > > Now, we only need to bind "struct dev_pm_ops" variable to > "struct pci_driver". Thus, make the callbacks static. Declare an > "extern const struct dev_pm_ops" variable and bind PM callbacks to it. Now, > export the variable instead and use it in respective drivers. > > Compile-tested only. > > Signed-off-by: Vaibhav Gupta <vaibhavgupta40@xxxxxxxxx> Patch applied to wireless-drivers-next.git, thanks. 560a218d1ce6 rt2x00: pci: use generic power management -- https://patchwork.kernel.org/patch/11669881/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches