On Friday, December 14, 2012 01:11:31 PM Richard Yang wrote: > On Fri, Dec 14, 2012 at 10:52:11AM +0800, Huang Ying wrote: > >In > > > > http://www.mail-archive.com/linux-usb@xxxxxxxxxxxxxxx/msg07976.html > > > >Ulrich reported that his USB3 cardreader does not work reliably when > >connected to the USB3 port. It turns out that USB3 controller failed > >to be waken up when plugging in the USB3 cardreader. Further > >experiment found that the USB3 host controller can only be waken up > >via polling, while not via PME interrupt. But if the PCIe port that > >the USB3 host controller is connected is suspended, we can not poll > >the USB3 host controller because its config space is not accessible if > >the PCIe port is put into low power state. > > > >To solve the issue, the PCIe port will not be suspended if any > >subordinate device need PME polling. > > > >Reported-by: Ulrich Eckhardt <usb@xxxxxxxxxxxxxxx> > >Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx> > >Tested-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx> > >Cc: stable@xxxxxxxxxxxxxxx # 3.6+ > >--- > > drivers/pci/pcie/portdrv_pci.c | 18 +++++++++++++++++- > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > >--- a/drivers/pci/pcie/portdrv_pci.c > >+++ b/drivers/pci/pcie/portdrv_pci.c > >@@ -134,10 +134,26 @@ static int pcie_port_runtime_resume(stru > > return 0; > > } > > > >+static int pci_dev_pme_poll(struct pci_dev *pdev, void *data) > >+{ > >+ int *pme_poll = data; > >+ *pme_poll = *pme_poll || pdev->pme_poll; > >+ return 0; > >+} > >+ > > static int pcie_port_runtime_idle(struct device *dev) > > { > >+ struct pci_dev *pdev = to_pci_dev(dev); > >+ int pme_poll = false; > > You want to use int or bool? > > I think bool is better? Well, bool would be nicer, but it's not a big deal. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html