On Monday, September 26, 2011, Alan Stern wrote: > On Sun, 25 Sep 2011, Rafael J. Wysocki wrote: > > > Hi, > > > > On Thursday, September 22, 2011, Alan Stern wrote: > > > Rafael: > > > > > > I just tried testing the wakeup functionality of my OHCI USB > > > controller, something I haven't done in a long time. It's an add-on > > > PCI card, and it uses regular PCI PM: > > > > > > # lspci -vv -s 1:01.1 > > > 01:01.1 USB Controller: NEC Corporation USB (rev 43) (prog-if 10 [OHCI]) > > > Subsystem: NEC Corporation Hama USB 2.0 CardBus > > > Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- > > > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- > > > Latency: 32 (250ns min, 10500ns max), Cache Line Size: 32 bytes > > > Interrupt: pin B routed to IRQ 23 > > > Region 0: Memory at fe5de000 (32-bit, non-prefetchable) [size=4K] > > > Capabilities: [40] Power Management version 2 > > > Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-) > > > Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- > > > Kernel driver in use: ohci_hcd > > > > > > The tests were under 3.1-rc4. The device wakes up perfectly well from > > > runtime suspend, but it doesn't wake the computer from system suspend. > > > Perhaps something goes wrong when the PME# signal has to be routed > > > between PCI buses while the system is asleep, perhaps not -- I don't > > > know how to tell. > > > > > > Do you have any ideas for fixing this problem? > > > > To start with, I would add debug printk's to acpi_pci_sleep_wake() and > > acpi_pci_propagate_wakeup_enable() to see if the wakeup settings > > propagate to the bridge and possibly up. > > The test results are as follows. During late suspend: > > acpi_pci_sleep_wake() is called for the 0000:01:01.1 device > with enable set to 1. > > acpi_pci_can_wakeup() returns 0. > > acpi_pci_propagate_wakeup_enable() is called for the 0000:01 > bus device, also known as 0000:00:1e.0. > > acpi_pm_device_sleep_wake() is called for 0000:00:1e.0; it > prints out "pci 0000:00:1e.0: wake-up capability enabled by > ACPI" and returns 0. > > This causes acpi_pci_propagate_wakeup_enable() to return from > within the "while (bus->parent)" loop. > > There also are log messages stating "ohci_hcd 0000:01:01.1: PME# > enabled" and "ohci_hcd 0000:01:01.1: --> PCI D3hot". Nevertheless, it > doesn't wake up the system. What's there in /proc/acpi/wakeup ? Rafael -- 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