lkml.org 
[lkml]   [2009]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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]
\
 
 \ /
  Last update: 2009-02-04 23:03    [W:0.071 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site