net: wwan: iosm: Let PCI core handle PCI power transition

pci_pm_suspend_noirq() and pci_pm_resume_noirq() already handle power
transition for system-wide suspend and resume, so it's not necessary to
do it in the driver.

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Kai-Heng Feng 2021-12-24 16:19:13 +08:00 committed by David S. Miller
parent 0c94d657d2
commit 8f58e29ed7

View File

@ -363,67 +363,22 @@ static int __maybe_unused ipc_pcie_resume_s2idle(struct iosm_pcie *ipc_pcie)
int __maybe_unused ipc_pcie_suspend(struct iosm_pcie *ipc_pcie)
{
struct pci_dev *pdev;
int ret;
pdev = ipc_pcie->pci;
/* Execute D3 one time. */
if (pdev->current_state != PCI_D0) {
dev_dbg(ipc_pcie->dev, "done for PM=%d", pdev->current_state);
return 0;
}
/* The HAL shall ask the shared memory layer whether D3 is allowed. */
ipc_imem_pm_suspend(ipc_pcie->imem);
/* Save the PCI configuration space of a device before suspending. */
ret = pci_save_state(pdev);
if (ret) {
dev_err(ipc_pcie->dev, "pci_save_state error=%d", ret);
return ret;
}
/* Set the power state of a PCI device.
* Transition a device to a new power state, using the device's PCI PM
* registers.
*/
ret = pci_set_power_state(pdev, PCI_D3cold);
if (ret) {
dev_err(ipc_pcie->dev, "pci_set_power_state error=%d", ret);
return ret;
}
dev_dbg(ipc_pcie->dev, "SUSPEND done");
return ret;
return 0;
}
int __maybe_unused ipc_pcie_resume(struct iosm_pcie *ipc_pcie)
{
int ret;
/* Set the power state of a PCI device.
* Transition a device to a new power state, using the device's PCI PM
* registers.
*/
ret = pci_set_power_state(ipc_pcie->pci, PCI_D0);
if (ret) {
dev_err(ipc_pcie->dev, "pci_set_power_state error=%d", ret);
return ret;
}
pci_restore_state(ipc_pcie->pci);
/* The HAL shall inform the shared memory layer that the device is
* active.
*/
ipc_imem_pm_resume(ipc_pcie->imem);
dev_dbg(ipc_pcie->dev, "RESUME done");
return ret;
return 0;
}
static int __maybe_unused ipc_pcie_suspend_cb(struct device *dev)