On Tue, 2010-10-12 at 15:17 -0400, Alan Stern wrote: > On Tue, 12 Oct 2010, Florian Echtler wrote: > > > Hello everyone, > > > > I've just installed Ubuntu 10.10 (64bit) with a 2.6.35 kernel on my > > Lenovo T410s. This laptop has a N-Trig DuoSense digitizer which works > > fine with hid_ntrig, however, as soon as this driver is loaded or was > > loaded previously, suspend stops working. > > > > When the driver is loaded, the laptop immediately wakes up again after > > the suspend attempt. When the driver has been unloaded, the laptop > > suspends properly, but hangs on wakeup. > > > > dmesg shows: > > > > usbhid 2-1.8:1.1: suspend error -5 > > pm_op(): usb_dev_suspend+0x0/0x20 returns -5 > > PM: Device 2-1.8 failed to suspend async: error -5 > > PM: Some devices failed to suspend > > > > The bug has already been reported to kernel bugzilla [1], however, there > > hasn't been any recent activity. I'd like to help pin this bug down, it's > > the only annoyance in an otherwise flawlessly working machine. Therefore, > > I'd be glad for some starting points as to how to debug this. > > It would be good to start by finding out where the -EIO error comes > from. One likely candidate is where > drivers/hid/usbhid/hid-core.c:hid_suspend() calls usbhid_wait_io(). Is > that the source of the error? Does the wait_event_timeout() call > actually time out? Since the posted dmesg log was made without > CONFIG_PRINTK_TIME, we can't see if there really was a 10-second delay. Sorry, my mistake: [ 226.288305] usbhid 2-1.8:1.1: suspend error -5 [ 226.288316] pm_op(): usb_dev_suspend+0x0/0x20 returns -5 [ 226.288321] PM: Device 2-1.8 failed to suspend async: error -5 [ 226.288426] PM: Some devices failed to suspend So no noticeable delay here. Interestingly, however, there's a significant delay when loading the driver: [ 895.253903] ntrig 0003:1B96:0001.0003: hidraw2: USB HID v1.10 Device [N-trig DuoSense] on usb-0000:00:1d.0-1.8/input0 [ 895.254142] ntrig 0003:1B96:0001.0003: Firmware version: 4.8.15.20.7 (2108 8fe2) [ 895.255956] /build/buildd/linux-2.6.35/drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0101 wIndex=0x0001 wLength=10 [ 905.228517] /build/buildd/linux-2.6.35/drivers/hid/usbhid/hid-core.c: timeout waiting for ctrl or out queue to clear [ 905.228719] /build/buildd/linux-2.6.35/drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0103 wIndex=0x0001 wLength=94 [ 905.228732] /build/buildd/linux-2.6.35/drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed [ 905.228754] ntrig 0003:1B96:0001.0004: timeout initializing reports [ 905.228868] input: N-trig DuoSense as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.1/input/input15 [ 905.229205] input: N-trig DuoSense as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.1/input/input16 [ 905.229403] input: N-trig DuoSense as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.1/input/input17 [ 905.229609] ntrig 0003:1B96:0001.0004: input,hidraw3: USB HID v1.10 Device [N-trig DuoSense] on usb-0000:00:1d.0-1.8/input1 > Or does the error come from the hid->driver->suspend() call instead? I'll try to find out. Florian -- 0666 - Filemode of the Beast -- 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