Re: PCI PME# routing problem?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux