Am 21.12.2012 01:59, schrieb Alan Stern:
> On Thu, 20 Dec 2012, Frank Schäfer wrote:
>
>>> Yes runtime suspend works (tested with a mouse) and lspci -vv doesn't
>>> change.
>>>
>>> With
>>> /sys/devices/pci0000:00/0000:00:02.0/usb2/2-9/power:
>>> control = on
>>> runtime_status = active
>>>
>>> 00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev
>>> a2) (prog-if 10 [OHCI])
>>> Subsystem: ASUSTeK Computer Inc. Device 8234
>>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>>> ParErr- Stepping- SERR- FastB2B- DisINTx-
>>> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
>>> <TAbort- <MAbort- >SERR- <PERR- INTx-
>>> Latency: 0 (750ns min, 250ns max)
>>> Interrupt: pin A routed to IRQ 23
>>> Region 0: Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
>>> Capabilities: [44] 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
>>>
>>>
>>> => set control to 'auto'
>>>
>>> runtime_status = active
>>>
>>> 00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev
>>> a2) (prog-if 10 [OHCI])
>>> Subsystem: ASUSTeK Computer Inc. Device 8234
>>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>>> ParErr- Stepping- SERR- FastB2B- DisINTx-
>>> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
>>> <TAbort- <MAbort- >SERR- <PERR- INTx-
>>> Latency: 0 (750ns min, 250ns max)
>>> Interrupt: pin A routed to IRQ 23
>>> Region 0: Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
>>> Capabilities: [44] 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
>>>
>>>
>>> => after ~2s the device suspends
>>>
>>> runtime_status = suspended
>>>
>>> 00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev
>>> a2) (prog-if 10 [OHCI])
>>> Subsystem: ASUSTeK Computer Inc. Device 8234
>>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>>> ParErr- Stepping- SERR- FastB2B- DisINTx-
>>> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
>>> <TAbort- <MAbort- >SERR- <PERR- INTx-
>>> Latency: 0 (750ns min, 250ns max)
>>> Interrupt: pin A routed to IRQ 23
>>> Region 0: Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
>>> Capabilities: [44] 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
>>>
>> Of course I checked that the host controller suspends, too.
> The lspci output above shows that the host controller is _not_
> suspended. Or at least, that's what it looks like -- maybe for some
> reason the runtime suspend code didn't put the controller into D3.
Yes, but I checked
/sys/devices/pci0000:00/0000:00:02.0/power/runtime_status, and it
changed from 'active' to 'suspended'.
I double-checked the whole test.
But guess what ? Today lspci changes...
00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev
a2) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. Device 8234
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 23
Region 0: Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
Kernel driver in use: ohci_hcd
> It
> would help to see the dmesg output from a kernel with CONFIG_USB_DEBUG
> enabled.
...
[ 529.195045] hub 2-0:1.0: hub_suspend
[ 529.195054] usb usb2: bus auto-suspend, wakeup 1
[ 529.195058] ohci_hcd 0000:00:02.0: suspend root hub
[ 529.195081] ohci_hcd 0000:00:02.0: hcd_pci_runtime_suspend: 0
[ 538.361502] hub 1-0:1.0: state 7 ports 10 chg 0000 evt 0200
[ 538.361515] ehci_hcd 0000:00:02.1: GetStatus port:9 status 001403 0
ACK POWER sig=k CSC CONNECT
[ 538.361522] hub 1-0:1.0: port 9, status 0501, change 0001, 480 Mb/s
[ 538.465028] hub 1-0:1.0: debounce: port 9: total 100ms stable 100ms
status 0x501
[ 538.465038] ehci_hcd 0000:00:02.1: port 9 low speed --> companion
[ 538.476062] ohci_hcd 0000:00:02.0: setting latency timer to 64
[ 538.476069] ohci_hcd 0000:00:02.0: powerup ports
[ 538.497013] ohci_hcd 0000:00:02.0: hcd_pci_runtime_resume: 0
[ 538.497018] usb usb2: usb wakeup-resume
[ 538.497022] usb usb2: usb auto-resume
[ 538.497026] ohci_hcd 0000:00:02.0: wakeup root hub
[ 538.516029] ehci_hcd 0000:00:02.1: GetStatus port:9 status 003402 0
ACK POWER OWNER sig=k CSC
[ 538.516045] hub 1-0:1.0: state 7 ports 10 chg 0000 evt 0200
[ 538.516050] ehci_hcd 0000:00:02.1: GetStatus port:9 status 003402 0
ACK POWER OWNER sig=k CSC
[ 538.516055] hub 1-0:1.0: port 9, status 0100, change 0001, 12 Mb/s
[ 538.557013] hub 2-0:1.0: hub_resume
[ 538.557039] ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [8] =
0x00010301 CSC LSDA PPS CCS
[ 538.557042] hub 2-0:1.0: port 9: status 0301 change 0001
[ 538.620043] hub 1-0:1.0: debounce: port 9: total 100ms stable 100ms
status 0x100
[ 538.658027] hub 2-0:1.0: state 7 ports 10 chg 0200 evt 0000
[ 538.658036] hub 2-0:1.0: port 9, status 0301, change 0000, 1.5 Mb/s
[ 538.764028] ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [8] =
0x00100303 PRSC LSDA PPS PES CCS
[ 538.815026] usb 2-9: new low-speed USB device number 5 using ohci_hcd
[ 538.923049] ohci_hcd 0000:00:02.0: GetStatus roothub.portstatus [8] =
0x00100303 PRSC LSDA PPS PES CCS
[ 538.996031] usb 2-9: skipped 1 descriptor after interface
[ 538.999031] usb 2-9: default language 0x0409
[ 539.002031] usb 2-9: udev 5, busnum 2, minor = 132
[ 539.002033] usb 2-9: New USB device found, idVendor=15d9, idProduct=0a37
[ 539.002036] usb 2-9: New USB device strings: Mfr=0, Product=1,
SerialNumber=0
[ 539.002038] usb 2-9: Product: USB Mouse
[ 539.002133] usb 2-9: usb_probe_device
[ 539.002137] usb 2-9: configuration #1 chosen from 1 choice
[ 539.005057] usb 2-9: adding 2-9:1.0 (config #1, interface 0)
[ 539.005101] usbhid 2-9:1.0: usb_probe_interface
[ 539.005104] usbhid 2-9:1.0: usb_probe_interface - got id
[ 539.012505] input: USB Mouse as
/devices/pci0000:00/0000:00:02.0/usb2/2-9/2-9:1.0/input/input7
[ 539.012766] hid-generic 0003:15D9:0A37.0002: input,hidraw0: USB HID
v1.10 Mouse [USB Mouse] on usb-0000:00:02.0-9/input0
[ 539.012812] hub 2-0:1.0: state 7 ports 10 chg 0000 evt 0200
[ 557.827054] ohci_hcd 0000:00:02.0: urb ea022c00 path 9 ep1in 7b160000
cc 7 --> status -71
[ 649.707158] ohci_hcd 0000:00:02.0: urb ea022c00 path 9 ep1in 1f160000
cc 1 --> status -84
[ 679.812204] usb 2-9: usb auto-suspend, wakeup 1
[ 682.008063] hub 2-0:1.0: hub_suspend
[ 682.008072] usb usb2: bus auto-suspend, wakeup 1
[ 682.008076] ohci_hcd 0000:00:02.0: suspend root hub
[ 682.008098] ohci_hcd 0000:00:02.0: hcd_pci_runtime_suspend: 0
> What do you get in /sys/devices/pci0000:00/0000:00:02.0/power/ ?
async = enabled
autosuspend_delay_ms = [I/O error]
control = auto
runtime_active_kids = 0
runtime_active_time = 503003
runtime_enabled = enabled
runtime_status = suspended
runtime_suspended_time = 287507
runtime_usage = 0
wakeup = enabled
wakeup_abort_count = 0
wakeup_active = 0
wakeup_active_count = 3
wakeup_count = 3
wakeup_expire_count = 3
wakeup_last_time_ms = 538565
wakeup_max_time_ms = 101
wakeup_total_time_ms = 300
The only thing I've changed is updating from kernel 3.6.10 to 3.6.11,
but that shouldn't matter, right ?
I also noticed that today auto-suspend is enabled by default while I had
to enable it before.
No idea what happened :(
Anyway, system still wakes up from S3 immediately.
Regards,
Frank
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html