On Tue, 1 Mar 2016, Daniel Fraga wrote:
> On Tue, 1 Mar 2016 15:55:00 -0500 (EST)
> Alan Stern <[email protected]> wrote:
>
> > No messages about "usbhid_start urb" or "no input endpoint!" or
> > "usbhid_start fail urb"? That means usbhid_start() isn't getting
> > called. Which means the device in question probably isn't being used
> > at all.
> > Do you know what this device is? What does
> > /sys/kernel/debug/usb/devices show?
>
> I attached the output of /sys/kernel/debug/usb/devices.
>
> It's probably this one:
>
> T: Bus=03 Lev=02 Prnt=02 Port=05 Cnt=04 Dev#= 6 Spd=12 MxCh= 0
> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=04f3 ProdID=0034 Rev= 0.12
> S: Manufacturer=ELAN
> S: Product=Touchscreen
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
> E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms
> E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=10ms
Yes, that's right.
> In fact this seems to be the touchscreen "Elan" on the display,
> but since I'm using this laptop with an external monitor, I didn't even
> mind to use it (since I don't even use touchscreen at all).
>
> Do you want me to load the module for the Elan driver or is it
> irrelevant?
For now it's irrelevant. Try loading it if you want; it might make the
problem disappear. But we still have to fix the problem.
> > Let's make sure this is really what's happening. Please try this
> > patch.
>
> Ok, with this patch I got before suspend:
>
> [ 3.558767] usb 3-1.6: new full-speed USB device number 6 using ehci-pci
> [ 3.651808] usbhid 3-1.6:1.0: usbhid_probe -> 0
Okay, as I thought -- usbhid_start() isn't getting called.
> As far as I know, this shouldn't happen even if the Elan driver module
> isn't loaded,
> right? But if you ask me to load the Elan driver module, ok, I can do it and
> test with the
> driver loaded...
Don't worry about the Elan driver. Instead, let's see if this patch
fixes the problem.
Alan Stern
Index: usb-4.4/drivers/hid/usbhid/hid-core.c
===================================================================
--- usb-4.4.orig/drivers/hid/usbhid/hid-core.c
+++ usb-4.4/drivers/hid/usbhid/hid-core.c
@@ -83,6 +83,7 @@ static int hid_start_in(struct hid_devic
spin_lock_irqsave(&usbhid->lock, flags);
if ((hid->open > 0 || hid->quirks & HID_QUIRK_ALWAYS_POLL) &&
+ usbhid->urbin &&
!test_bit(HID_DISCONNECTED, &usbhid->iofl) &&
!test_bit(HID_SUSPENDED, &usbhid->iofl) &&
!test_and_set_bit(HID_IN_RUNNING, &usbhid->iofl)) {
@@ -1457,10 +1458,13 @@ static int hid_post_reset(struct usb_int
clear_bit(HID_RESET_PENDING, &usbhid->iofl);
spin_unlock_irq(&usbhid->lock);
hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0);
- status = hid_start_in(hid);
- if (status < 0)
- hid_io_error(hid);
- usbhid_restart_queues(usbhid);
+
+ if (test_bit(HID_STARTED, &usbhid->iofl)) {
+ status = hid_start_in(hid);
+ if (status < 0)
+ hid_io_error(hid);
+ usbhid_restart_queues(usbhid);
+ }
return 0;
}
--
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