[BUG] ohci-pci: devices not detected after hibernate

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

 



Last working release: 3.10
Bisected earliest broken: c1117afb85
Broken in: 3.11-rc1, 3.11-rc6, bd479f2933 (the current usb-next)

Once my PC has been hibernated and resumed, some devices plugged
in to the on-motherboard ports stop working, and don't show up in
lsusb.  The pattern seems to be that ports with USB 1.1 devices
are affected, but ports with USB 2.0 devices are not.

It's an x86-amd64 desktop, with an MSI motherboard based on the
AMD 970 chipset.  Ports in USB 1.1 mode use the ohci-pci driver.

I've bisected the problem to c1117afb85, included in v3.11-rc1.
c1117afb85 USB: OHCI: make ohci-pci a separate driver

If the PC is booted without a resume image, everything works.

It's running Debian unstable with a local kernel build, and to
hibernate I'm using the "pm-hibernate" script from pm-utils.

For a sanity check of my local builds, I've seen the same
behaviour in the Debian archive's build of 3.11-rc4.


Using an optical mouse as my main test device:

The mouse doesn't show up in lsusb, and the light (optical mouse)
is off.  It doesn't sent any input to X11.

Plugging the mouse in to a different USB port on the motherboard
will show brief activity in usbmon, but again it doesn't work,
doesn't show in lsusb and doesn't light up.

Once the mouse has been plugged in to a USB port, no device will
be detected in that physical port again until the PC is rebooted.
Nothing will show in dmesg or usbmon when another device is
plugged or unplugged (even with CONFIG_USB_DEBUG).

USB 2.0 devices still work (but not in ports that a 1.1 device
has previously been plugged in to).  An external USB 2.0 hub does
still show up after hibernation, and the same USB 1.1 mouse works
if plugged in to this hub.


Attached are logs from bd479f2933 with CONFIG_USB_DEBUG.  There's
no physical movement of plugs in this log, just hibernating and
resuming with the same devices plugged in.  The keyboard is PS/2,
not USB.

Affected devices in the log:
046d:c03d Logitech, Inc. M-BT96a Pilot Optical Mouse
04b8:0101 Seiko Epson Corp. GT-7000U [Perfection 636]
046d:c216 Logitech, Inc. Dual Action Gamepad

Unaffected devices in the log:
0424:2514 Standard Microsystems Corp. USB 2.0 Hub
04cb:01c1 Fuji Photo Film Co., Ltd FinePix F31fd (PTP)
04e8:681c Samsung Electronics Co., Ltd Galaxy Portal/Spica/S
04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone

In the lsusb output, the USB 1.1 root hubs' power settings change
(diff of before and after hibernation):

 Hub Descriptor:
   bLength               9
   bDescriptorType      41
   nNbrPorts             5
-  wHubCharacteristic 0x0012
-    No power switching (usb 1.0)
+  wHubCharacteristic 0x0011
+    Per-port power switching
     No overcurrent protection
   bPwrOn2PwrGood        2 * 2 milli seconds
   bHubContrCurrent      0 milli Ampere
   DeviceRemovable    0x00
   PortPwrCtrlMask    0xff
  Hub Port Status:
-   Port 1: 0000.0100 power
-   Port 2: 0000.0100 power
-   Port 3: 0000.0303 lowspeed power enable connect
-   Port 4: 0000.0100 power
-   Port 5: 0000.0100 power
+   Port 1: 0000.0000
+   Port 2: 0000.0000
+   Port 3: 0000.0000
+   Port 4: 0000.0000
+   Port 5: 0000.0000
 Device Status:     0x0001
   Self Powered

Attachment: usb_next_bd479f2__no_x11.tar.bz2
Description: Binary data


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

  Powered by Linux