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

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



On Sat, 7 Jul 2012, Octavio Alvarez wrote:

> > If you build a kernel with CONFIG_USB_DEBUG enabled, what
> > shows up in /sys/kernel/debug/usb/ohci/*/registers?
> 
> [Sat Jul 07 12:49:27 -0700 -- alvarezp@octavio:/sys/kernel/debug/usb]
> $ grep . ohci/*/registers
> bus pci, device 0000:00:0b.0
> OHCI Host Controller
> ohci_hcd
> OHCI 1.0, NO legacy support registers, rh state running
> control 0x68f RWE RWC HCFS=operational IE PLE CBSR=3
> cmdstatus 0x00000 SOC=0
> intrstatus 0x00000024 FNO SF
> intrenable 0x8000004a MIE RHSC RD WDH
> ed_controlhead 2edac040
> hcca frame 0x5fce
> fmintvl 0xa7782edf FIT FSMPS=0xa778 FI=0x2edf
> fmremaining 0x80002e53 FRT FR=0x2e53
> periodicstart 0x2a2f
> lsthresh 0x0628
> hub poll timer off
> roothub.a 01000208 POTPGT=1 NPS NDP=8(8)
> roothub.b 00000000 PPCM=0000 DR=0000
> roothub.status 00008000 DRWE
> roothub.portstatus [0] 0x00000100 PPS
> roothub.portstatus [1] 0x00000100 PPS
> roothub.portstatus [2] 0x00000100 PPS
> roothub.portstatus [3] 0x00000100 PPS
> roothub.portstatus [4] 0x00000303 LSDA PPS PES CCS
> roothub.portstatus [5] 0x00000303 LSDA PPS PES CCS
> roothub.portstatus [6] 0x00000101 PPS CCS
> roothub.portstatus [7] 0x00000100 PPS

That's normal, except for the status of port 6 (which actually is port
7, since we normally count ports starting from 1).  The port shows
Current Connect Status, so something is connected to it -- but what?

Can you post a complete dmesg log showing bootup with CONFIG_USB_DEBUG 
enabled?

> > And what shows up in /sys/kernel/debug/usb/devices?
> 
> [Sat Jul 07 12:49:54 -0700 -- alvarezp@octavio:/sys/kernel/debug/usb]
> $ cat devices
...

Pretty much normal.

> > Also, what does the "lspci -vv" output show for the controller if you
> > run it with superuser permissions?
> 
> [Sat Jul 07 12:50:10 -0700 -- alvarezp@octavio:/sys/kernel/debug/usb]
> $ sudo lspci -vv -s 0000:00:0b.1

0b.1 is the EHCI controller.  We want to see the OHCI controller, 0b.0.

> I also bisected the "3.2 doesn't sleep due to ohci" problem and found this:
> 
> commit a6eeeb9f45b5a417f574f3bc799b7122270bf59b
> Author: Alan Stern <stern@rowland.harvard.edu>
> Date:   Mon Sep 26 11:23:38 2011 -0400
> 
>      USB: Update USB default wakeup settings

Yes, that commit enables wakeup for USB host controllers by default.  
Before that, you had to enable wakeup by hand.  The question is: Why
does the controller think it needs to wake up the system?

Can you also post a dmesg log showing a full suspend/immediate-resume 
cycle with CONFIG_USB_DEBUG enabled?

> > And yet the PC doesn't lock up if you unbind ohci-hcd before
> > suspending?
> 
> It suspends but it locks-up while waking up.
> 
> > Maybe you can do a git bisection to find what changed between 3.2 and
> > 3.4 to cause this behavior.
> 
> commit 2feec47d4c5f80b05f1650f5a24865718978eea4
> Author: Bob Moore <robert.moore@intel.com>
> Date:   Tue Feb 14 15:00:53 2012 +0800
> 
>      ACPICA: ACPI 5: Support for new FADT SleepStatus, SleepControl  
> registers
> 
>      Adds sleep and wake support for systems with these registers.
>      One new file, hwxfsleep.c
> 
>      Signed-off-by: Bob Moore <robert.moore@intel.com>
>      Signed-off-by: Len Brown <len.brown@intel.com>

Yes, okay, that is indeed totally separate.  You should bring that 
issue up with Bob Moore and Len Brown on the linux-acpi mailing list.

Alan Stern




Reply to: