Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27be54a6 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki Committed by Jesse Barnes
Browse files

PCI: PCIe portdrv: Simplify suspend and resume

Simplify suspend and resume of the PCI Express port driver.  It no
longer needs to save and restore the standard configuration space of the
device; this is now done by the PCI PM core layer.

This patch is reported to fix the regression tracked as
http://bugzilla.kernel.org/show_bug.cgi?id=12598



Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
Reported-and-tested-by: default avatarParag Warudkar <parag.lkml@gmail.com>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 99dadce8
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -55,25 +55,13 @@ static int pcie_portdrv_suspend(struct pci_dev *dev, pm_message_t state)

}

static int pcie_portdrv_suspend_late(struct pci_dev *dev, pm_message_t state)
{
	return pci_save_state(dev);
}

static int pcie_portdrv_resume_early(struct pci_dev *dev)
{
	return pci_restore_state(dev);
}

static int pcie_portdrv_resume(struct pci_dev *dev)
{
	pcie_portdrv_restore_config(dev);
	pci_set_master(dev);
	return pcie_port_device_resume(dev);
}
#else
#define pcie_portdrv_suspend NULL
#define pcie_portdrv_suspend_late NULL
#define pcie_portdrv_resume_early NULL
#define pcie_portdrv_resume NULL
#endif

@@ -292,8 +280,6 @@ static struct pci_driver pcie_portdriver = {
	.remove		= pcie_portdrv_remove,

	.suspend	= pcie_portdrv_suspend,
	.suspend_late	= pcie_portdrv_suspend_late,
	.resume_early	= pcie_portdrv_resume_early,
	.resume		= pcie_portdrv_resume,

	.err_handler 	= &pcie_portdrv_err_handler,