Re: Bug#677472: [3.1->3.2 regression] Immediate wake on suspend, associated with OHCI on MCP51

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

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux