On Mon, Jul 20, 2020 at 07:04:24PM +0530, Vaibhav Gupta 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. > > Change function parameter in both .suspend() and .resume() to > "struct device*" type. The function body remains unchanged as it was empty. > Also, bind callbacks with "static const struct dev_pm_ops" variable. > > Compile-tested only. > > Signed-off-by: Vaibhav Gupta <vaibhavgupta40@xxxxxxxxx> > --- > drivers/scsi/hpsa.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c > index 81d0414e2117..70bdd6fe91ee 100644 > --- a/drivers/scsi/hpsa.c > +++ b/drivers/scsi/hpsa.c > @@ -9070,25 +9070,27 @@ static void hpsa_remove_one(struct pci_dev *pdev) > hpda_free_ctlr_info(h); /* init_one 1 */ > } > > -static int hpsa_suspend(__attribute__((unused)) struct pci_dev *pdev, > - __attribute__((unused)) pm_message_t state) > +static int __maybe_unused hpsa_suspend( > + __attribute__((unused)) struct device *dev) > { > return -ENOSYS; > } > > -static int hpsa_resume(__attribute__((unused)) struct pci_dev *pdev) > +static int __maybe_unused hpsa_resume > + (__attribute__((unused)) struct device *dev) > { > return -ENOSYS; > } > > +static SIMPLE_DEV_PM_OPS(hpsa_pm_ops, hpsa_suspend, hpsa_resume); > + > static struct pci_driver hpsa_pci_driver = { > .name = HPSA, > .probe = hpsa_init_one, > .remove = hpsa_remove_one, > .id_table = hpsa_pci_device_id, /* id_table */ > .shutdown = hpsa_shutdown, > - .suspend = hpsa_suspend, > - .resume = hpsa_resume, > + .driver.pm = &hpsa_pm_ops, > }; > > /* Fill in bucket_map[], given nsgs (the max number of > -- > 2.27.0 > .