Message ID | 20201001122511.1075420-1-vaibhavgupta40@gmail.com |
---|---|
Headers | show |
Series | scsi: use generic power management | expand |
On Thu, Oct 01, 2020 at 05:54:43PM +0530, Vaibhav Gupta wrote: Linux Kernel Mentee: Remove Legacy Power Management. The purpose of this patch series is to upgrade power management in SCSI drivers. This has been done by upgrading .suspend() and .resume() callbacks. The upgrade makes sure that the involvement of PCI Core does not change the order of operations executed in a driver. Thus, does not change its behavior. In general, drivers with legacy PM, .suspend() and .resume() make use of PCI helper functions like pci_enable/disable_device_mem(), pci_set_power_state(), pci_save/restore_state(), pci_enable/disable_device(), etc. to complete their job. The conversion requires the removal of those function calls, change the callbacks' definition accordingly and make use of dev_pm_ops structure. All patches are compile-tested only. v3: break down the patches to drop PCI wakeup calls. Test tools: - Compiler: gcc (GCC) 10.2.0 - allmodconfig build: make -j$(nproc) W=1 all Vaibhav Gupta (28): scsi: megaraid_sas: Drop PCI wakeup calls from .resume scsi: megaraid_sas: use generic power management scsi: megaraid_sas: update function description scsi: aacraid: Drop pci_enable_wake() from .resume scsi: aacraid: use generic power management scsi: aic7xxx: use generic power management scsi: aic79xx: use generic power management scsi: arcmsr: Drop PCI wakeup calls from .resume scsi: arcmsr: use generic power management scsi: esas2r: Drop PCI Wakeup calls from .resume scsi: esas2r: use generic power management scsi: hisi_sas_v3_hw: Drop PCI Wakeup calls from .resume scsi: hisi_sas_v3_hw: use generic power management scsi: mpt3sas_scsih: Drop PCI Wakeup calls from .resume scsi: mpt3sas_scsih: use generic power management scsi: lpfc: use generic power management scsi: pm_8001: Drop PCI Wakeup calls from .resume scsi: pm_8001: use generic power management scsi: hpsa: use generic power management scsi: 3w-9xxx: Drop PCI Wakeup calls from .resume scsi: 3w-9xxx: use generic power management scsi: 3w-sas: Drop PCI Wakeup calls from .resume scsi: 3w-sas: use generic power management scsi: mvumi: Drop PCI Wakeup calls from .resume scsi: mvumi: use generic power management scsi: mvumi: update function description scsi: pmcraid: Drop PCI Wakeup calls from .resume scsi: pmcraid: use generic power management drivers/scsi/3w-9xxx.c | 30 ++----- drivers/scsi/3w-sas.c | 32 ++----- drivers/scsi/aacraid/linit.c | 34 ++------ drivers/scsi/aic7xxx/aic79xx.h | 12 +-- drivers/scsi/aic7xxx/aic79xx_core.c | 8 +- drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 43 +++------- drivers/scsi/aic7xxx/aic79xx_pci.c | 6 +- drivers/scsi/aic7xxx/aic7xxx.h | 10 +-- drivers/scsi/aic7xxx/aic7xxx_core.c | 6 +- drivers/scsi/aic7xxx/aic7xxx_osm_pci.c | 46 +++------- drivers/scsi/aic7xxx/aic7xxx_pci.c | 4 +- drivers/scsi/arcmsr/arcmsr_hba.c | 33 +++---- drivers/scsi/esas2r/esas2r.h | 5 +- drivers/scsi/esas2r/esas2r_init.c | 48 +++-------- drivers/scsi/esas2r/esas2r_main.c | 3 +- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 31 +++---- drivers/scsi/hpsa.c | 12 +-- drivers/scsi/lpfc/lpfc_init.c | 100 +++++++--------------- drivers/scsi/megaraid/megaraid_sas_base.c | 54 +++--------- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 35 +++----- drivers/scsi/mvumi.c | 49 +++-------- drivers/scsi/pm8001/pm8001_init.c | 46 ++++------ drivers/scsi/pmcraid.c | 44 +++------- 23 files changed, 198 insertions(+), 493 deletions(-)
On Thu, Oct 1, 2020 at 2:30 PM Vaibhav Gupta <vaibhavgupta40@gmail.com> wrote: > > The driver calls pci_enable_wake(...., false) in pm8001_pci_resume(), and > there is no corresponding pci_enable_wake(...., true) in > pm8001_pci_suspend(). Either it should do enable-wake the device in > .suspend() or should not invoke pci_enable_wake() at all. > > Concluding that this driver doesn't support enable-wake and PCI core calls > pci_enable_wake(pci_dev, PCI_D0, false) during resume, drop it from > pm8001_pci__resume(). > > Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com> Looks good to me! Acked-by: Jack Wang <jinpu.wang@cloud.ionos.com> Thanks! > --- > drivers/scsi/pm8001/pm8001_init.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c > index 9e99262a2b9d..ee27ecb17560 100644 > --- a/drivers/scsi/pm8001/pm8001_init.c > +++ b/drivers/scsi/pm8001/pm8001_init.c > @@ -1248,7 +1248,6 @@ static int pm8001_pci_resume(struct pci_dev *pdev) > "operating state [D%d]\n", pdev, pm8001_ha->name, device_state); > > pci_set_power_state(pdev, PCI_D0); > - pci_enable_wake(pdev, PCI_D0, 0); > pci_restore_state(pdev); > rc = pci_enable_device(pdev); > if (rc) { > -- > 2.28.0 >