From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bjorn Helgaas Subject: Re: [Update][PATCH] PCI / PM: Disable runtime PM of PCIe ports Date: Wed, 3 Apr 2013 16:34:27 -0600 Message-ID: References: <2282655.IicBMMa6jN@vostro.rjw.lan> <51548C9E.9090703@fold.natur.cuni.cz> <2990024.LMTIBUbM3d@vostro.rjw.lan> <1378320.ernsY1JWPv@vostro.rjw.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: In-Reply-To: <1378320.ernsY1JWPv@vostro.rjw.lan> Sender: linux-pci-owner@vger.kernel.org To: "Rafael J. Wysocki" , Zheng Yan Cc: Martin Mokrejs , ACPI Devel Maling List , Len Brown , Matthew Garrett , Sarah Sharp , LKML , "linux-pci@vger.kernel.org" List-Id: linux-acpi@vger.kernel.org On Sat, Mar 30, 2013 at 4:38 PM, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki > > The runtime PM of PCIe ports turns out to be quite fragile, as in > some cases things work while in some other cases they don't and we > don't seem to have a good way to determine whether or not they are > going to work in advance. > > For this reason, avoid enabling runtime PM for PCIe ports by > keeping their runtime PM reference counters always above 0 for the > time being. > > Signed-off-by: Rafael J. Wysocki > --- > > This version also removes the no longer necessary (and empty anyway) > port_runtime_pm_black_list[] table. I applied this to for-linus for v3.9, and added a stable tag for v3.6+. Thanks! > --- > drivers/pci/pcie/portdrv_pci.c | 13 ------------- > 1 file changed, 13 deletions(-) > > Index: linux-pm/drivers/pci/pcie/portdrv_pci.c > =================================================================== > --- linux-pm.orig/drivers/pci/pcie/portdrv_pci.c > +++ linux-pm/drivers/pci/pcie/portdrv_pci.c > @@ -185,14 +185,6 @@ static const struct dev_pm_ops pcie_port > #endif /* !PM */ > > /* > - * PCIe port runtime suspend is broken for some chipsets, so use a > - * black list to disable runtime PM for these chipsets. > - */ > -static const struct pci_device_id port_runtime_pm_black_list[] = { > - { /* end: all zeroes */ } > -}; > - > -/* > * pcie_portdrv_probe - Probe PCI-Express port devices > * @dev: PCI-Express port device being probed > * > @@ -225,16 +217,11 @@ static int pcie_portdrv_probe(struct pci > * it by default. > */ > dev->d3cold_allowed = false; > - if (!pci_match_id(port_runtime_pm_black_list, dev)) > - pm_runtime_put_noidle(&dev->dev); > - > return 0; > } > > static void pcie_portdrv_remove(struct pci_dev *dev) > { > - if (!pci_match_id(port_runtime_pm_black_list, dev)) > - pm_runtime_get_noresume(&dev->dev); > pcie_port_device_remove(dev); > pci_disable_device(dev); > } >