Messages in this thread | | | Date | Wed, 4 Feb 2009 22:59:42 +0100 | From | Max Weninger <> | Subject | Re: SOLVED support of touchscreen reported as eGalax but is not working |
| |
Hi
On Wed, 4 Feb 2009 00:44:11 +0100 Daniel Ritz <daniel.ritz-ml@swissonline.ch> 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@gmail.com> 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@gmx.ch> > > 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, \ > > [unhandled content-type:application/pgp-signature] | |