On Monday, January 7, 2019 3:39:58 PM CET Mika Westerberg wrote: > This reverts commit 0e157e52860441cb26051f131dd0b5ae3187a07b. > > Heiner reported that the commit in question prevents his network adapter > from triggering PME and waking up when network cable is plugged. > > The commit tried to prevent root port waking up from D3cold immediately > but looks like disabing root port PME interrupt is not the right way to > fix that issue so revert it now. The patch following proposes an > alternative solution to that issue. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=202103 > Fixes: 0e157e528604 ("PCI/PME: Implement runtime PM callbacks") > Reported-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/pci/pcie/pme.c | 27 --------------------------- > 1 file changed, 27 deletions(-) > > diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c > index 0dbcf429089f..1a8b85051b1b 100644 > --- a/drivers/pci/pcie/pme.c > +++ b/drivers/pci/pcie/pme.c > @@ -432,31 +432,6 @@ static void pcie_pme_remove(struct pcie_device *srv) > kfree(get_service_data(srv)); > } > > -static int pcie_pme_runtime_suspend(struct pcie_device *srv) > -{ > - struct pcie_pme_service_data *data = get_service_data(srv); > - > - spin_lock_irq(&data->lock); > - pcie_pme_interrupt_enable(srv->port, false); > - pcie_clear_root_pme_status(srv->port); > - data->noirq = true; > - spin_unlock_irq(&data->lock); > - > - return 0; > -} > - > -static int pcie_pme_runtime_resume(struct pcie_device *srv) > -{ > - struct pcie_pme_service_data *data = get_service_data(srv); > - > - spin_lock_irq(&data->lock); > - pcie_pme_interrupt_enable(srv->port, true); > - data->noirq = false; > - spin_unlock_irq(&data->lock); > - > - return 0; > -} > - > static struct pcie_port_service_driver pcie_pme_driver = { > .name = "pcie_pme", > .port_type = PCI_EXP_TYPE_ROOT_PORT, > @@ -464,8 +439,6 @@ static struct pcie_port_service_driver pcie_pme_driver = { > > .probe = pcie_pme_probe, > .suspend = pcie_pme_suspend, > - .runtime_suspend = pcie_pme_runtime_suspend, > - .runtime_resume = pcie_pme_runtime_resume, > .resume = pcie_pme_resume, > .remove = pcie_pme_remove, > }; >