92 lines
3.0 KiB
Diff
92 lines
3.0 KiB
Diff
From 472a4cae39ed9b327178b22ac5b8702def5ac8a3 Mon Sep 17 00:00:00 2001
|
|
From: Vaibhav Gupta <vaibhavgupta40@gmail.com>
|
|
Date: Tue, 3 Aug 2021 14:47:24 +0800
|
|
Subject: [PATCH 105/108] scsi: hisi_sas_v3_hw: Don't use PCI helper functions
|
|
|
|
mainline inclusion
|
|
from mainline-v5.11-rc1
|
|
commit 027e508aea458719390eb6a83a297940e8ae79f1
|
|
category: bugfix
|
|
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8F81U
|
|
CVE: NA
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=027e508aea458719390eb6a83a297940e8ae79f1
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
Drivers using new-framework/generic-framework should not handle standard
|
|
power management operations. These operations were performed by legacy
|
|
framework through PCI helper functions like pci_save/restore_state(),
|
|
pci_set_power_state(), etc.
|
|
|
|
Drivers should not use them now.
|
|
|
|
Link: https://lore.kernel.org/r/20201102164730.324035-14-vaibhavgupta40@gmail.com
|
|
Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com>
|
|
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|
Reviewed-by: Ouyangdelong <ouyangdelong@huawei.com>
|
|
Signed-off-by: Nifujia <nifujia1@hisilicon.com>
|
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
|
Signed-off-by: YunYi Yang <yangyunyi2@huawei.com>
|
|
|
|
Conflicts:
|
|
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
|
|
---
|
|
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 18 +-----------------
|
|
1 file changed, 1 insertion(+), 17 deletions(-)
|
|
|
|
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
|
|
index 373a820f7808..0d5135fb0b37 100644
|
|
--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
|
|
+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
|
|
@@ -5423,7 +5423,6 @@ static int _suspend_v3_hw(struct device *device)
|
|
struct hisi_hba *hisi_hba = sha->lldd_ha;
|
|
struct device *dev = hisi_hba->dev;
|
|
struct Scsi_Host *shost = hisi_hba->shost;
|
|
- u32 device_state;
|
|
int rc;
|
|
|
|
if (!pdev->pm_cap) {
|
|
@@ -5458,12 +5457,7 @@ static int _suspend_v3_hw(struct device *device)
|
|
|
|
hisi_sas_init_mem(hisi_hba);
|
|
|
|
- device_state = pci_choose_state(pdev, PMSG_SUSPEND);
|
|
- dev_warn(dev, "entering operating state [D%d]\n",
|
|
- device_state);
|
|
- pci_save_state(pdev);
|
|
- pci_disable_device(pdev);
|
|
- pci_set_power_state(pdev, device_state);
|
|
+ dev_warn(dev, "entering suspend state\n");
|
|
|
|
hisi_sas_release_tasks(hisi_hba);
|
|
|
|
@@ -5496,16 +5490,7 @@ static int _resume_v3_hw(struct device *device)
|
|
|
|
dev_warn(dev, "resuming from operating state [D%d]\n",
|
|
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) {
|
|
- dev_err(dev, "enable device failed during resume (%d)\n", rc);
|
|
- return rc;
|
|
- }
|
|
|
|
- pci_set_master(pdev);
|
|
scsi_unblock_requests(shost);
|
|
clear_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags);
|
|
|
|
@@ -5513,7 +5498,6 @@ static int _resume_v3_hw(struct device *device)
|
|
rc = hw_init_v3_hw(hisi_hba);
|
|
if (rc) {
|
|
scsi_remove_host(shost);
|
|
- pci_disable_device(pdev);
|
|
return rc;
|
|
}
|
|
phys_init_v3_hw(hisi_hba);
|
|
--
|
|
2.27.0
|
|
|