On Wed, 25 Jan 2006, David Brownell wrote:

> > Some Intel motherboards have documentation indicating that system wakeup
> > can be enabled by setting some bits in the UHCI controller's PCI config
> > space.  Presumably that information is also present in the ACPI tables.
> 
> Well, the info that the controller can issue system wakeups, though
> not about those PCI bits.

Really?  How does one go about finding out (without wading through 
hundreds of pages of turgid ACPI prose) what sort of information the ACPI 
tables actually contain?

>  That would suggest that on those Intel
> boards (using southbridge detection?) you'd need to init the pci_dev
> wakeup bits in the UHCI driver.

The controller's PCI vendor and product IDs should be sufficient to 
determine if it's the right sort of board.

> > Beyond that, I haven't seen any indication either.  The only USB card I've
> > got with PCI PM support provides that support just for the EHCI
> > controller, not for the companion UHCI controllers.
> 
> ISTR some VIA parts have PCI PM attributes for UHCI.

Maybe some do.  Not this one (it's a 6202):

]# lspci -vv -s 1:0.0
01:00.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 
Controller (rev 50) (prog-if 00 [UHCI])
        Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- 
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32, Cache Line Size 08
        Interrupt: pin A routed to IRQ 11
        Region 4: I/O ports at d880 [size=32]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-


> > Unfortunately, for UHCI at least, there doesn't seem to be any simple way
> > to treat the two types of events differently.  Either the root hub always
> > responds to all events, or else it doesn't respond to any events when
> > wakeup-enabled is off.  Which way do you think it should behave?
> 
> I think what you're saying is that UHCI either responds to all three
> types of wakeup events (resume/disconnect/connect) or none of them;

Yes.  More precisely, there's only one hardware bit to control
wakeup-event interrupt generation while the root hub is suspended, so you
can enable interrupts for all three types of event or for none of them.  
It's possible to rely on polling instead of interrupts, but that's a
different story...

> and that the root hub can either use (runtime) suspend states and
> respond to all, or never suspend and not get the events.

Or suspend and not get the events.  That's about what you might expect to
happen after setting wakeup_enable to 0.  Of course in such situations the
driver wouldn't do an autosuspend; this would only be for a runtime
suspend explicitly requested by the user via sysfs.

> Keying that all off the wakeup enabled policy flag seems fine to me;
> that's how OHCI and EHCI are working now, in part to match what UHCI
> seemd capable of.

All right, I'll do it this way.  Any differences in the three HCD
implementations ought to end up sufficiently small and obscure not to
bother anyone.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to