Hi On Wed, 4 Feb 2009 00:44:11 +0100 Daniel Ritz <daniel.ritz-ml@xxxxxxxxxxxxxx> wrote: > On Tuesday 03 February 2009 07:59:29 Andrew Morton wrote: > > On Sat, 31 Jan 2009 23:09:01 +0100 Max Weninger > > <max.weninger@xxxxxxxxx> wrote: > [snip] > > > > > After comparing the usbtouchscreen.c sources between the > > > > > different versions I got it working by commenting the > > > > > follwoing lines > > > > > > > > > > ... > > > > > #ifdef CONFIG_TOUCHSCREEN_USB_EGALAX > > > > > /* ignore the HID capable devices, handled by usbhid > > > > > */ {USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = > > > > > DEVTYPE_IGNORE}, {USB_DEVICE_HID_CLASS(0x0eef, > > > > > 0x0002), .driver_info = DEVTYPE_IGNORE}, ... > > > > > > > > > > Now the entry in /proc/bus/input/devices is created as in the > > > > > older versions. > > > > > > > > > > So it seems that usbhid is not correctly handling my type > > > > > of touchscreen if I understand the comment there correctly > > > > > > > > > > > > > So... how do we fix this for real? > > > > > > Well I am really not an expert in kernel programming :-) > > > I found out that these lines where added based on this thread > > > from 2008 > > > > > > http://kerneltrap.org/mailarchive/linux-kernel/2008/6/28/2286264/thread > > > > > > So all I can do is to provide any help in testing if needed > > > > > > > (optimistically cc'ing Daniel). > > looks like it worked :) > > ermm, that ignoring code...seems like i was just a little bit stupid > when i wrote it... > > Max, please try the attached patch... I patched usbtouchscreen.c in my 2.6.28.2 kernel But if I look in /proc/bus/usb/devices the touchscreen is now managed from the usbhid driver so usbtouchscreen is again ignoring my device /proc/bus/input/devices is again empty and no entry exists for the touchscreen :-( This is the same behaviour that I had before copying back "my patched" version and everything is working again. Just to make sure I understand how this should work the entry must be there also if usbhid is managing the touchscreen right? BTW: dmesg contains a new line with the patched version generic-usb: probe of 0003:0EEF:0001.0002 failed with error -32 when initializing the touchscreen So sorry no success here But I have to say that I got this touchscreen very cheap second hand and maybe this is just some stupid problem only for this device. If your code works for all the other devices you tested I am fine doing my change for now and you should not waste more time on this :-) Thanks Max > rgds > -daniel > > -------- > > [PATCH] usbtouchscreen: fix eGalax/ETTI HID device ignoring > > Fix the eGalax/ETTI HID device ignoring by adding a match for the > protocol too. This is what the marco USB_DEVICE_HID_CLASS() was > supposed to do anyways. > > Devices confirmed to be real HID have the class set to HID and the > protocol set to 'mouse'. Some have HID class but protocol set to > 'none'. Those are not HID and should be driven by usbtouchscreen. > > Signed-off-by: Daniel Ritz <daniel.ritz@xxxxxx> > > diff --git a/drivers/input/touchscreen/usbtouchscreen.c > b/drivers/input/touchscreen/usbtouchscreen.c index 5080b26..ba6237a > 100644 --- a/drivers/input/touchscreen/usbtouchscreen.c > +++ b/drivers/input/touchscreen/usbtouchscreen.c > @@ -118,7 +118,8 @@ enum { > > #define USB_DEVICE_HID_CLASS(vend, prod) \ > .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS \ > - | USB_DEVICE_ID_MATCH_DEVICE, \ > + | USB_DEVICE_ID_MATCH_DEVICE \ > + | USB_DEVICE_ID_MATCH_DEV_PROTOCOL, \ > .idVendor = (vend), \ > .idProduct = (prod), \ > .bInterfaceClass = USB_INTERFACE_CLASS_HID, \ > >
Attachment:
signature.asc
Description: PGP signature