linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: ET1602 Touchscreen doesn't work
       [not found] <BANLkTikX9njth-jP6PpQuwL9sTUciu1nQA@mail.gmail.com>
@ 2011-06-02 14:41 ` Thadeu Lima de Souza Cascardo
  2011-06-03  4:02   ` Chih-Wei Huang
  0 siblings, 1 reply; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-02 14:41 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 1056 bytes --]

On Thu, Jun 02, 2011 at 04:49:19PM +0800, Chih-Wei Huang wrote:
> Hi,
> I have an ASUS EeeTop ET1602, with touchscreen id (1bfd:1688).
> Originally it works fine with kernel 2.6.32,
> but now it doesn't work since kernel 2.6.35 (maybe?).
> 
> I made some investigation.
> I think it's related to this patch:
> 
> commit c2c3489c5b0fdb8fbf0f5e9424905c2994ab5660
> Author: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
> Date:   Thu Feb 4 13:36:24 2010 -0200
> 
>     HID: use multi input quirk for TouchPack touchscreen
> 
>     This device generates ABS_Z and ABS_RX events, while it should be
>     generating ABS_X and ABS_Y instead. Using the MULTI_INPUT quirk solves
>     this issue.
> 
> 
> Could you explain what's the patch intend to do,
> and how could I solve the problem?
> 
> Regards,
> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

It depends on your userspace. It should work properly with X.org drivers
evdev and evtouch. Are you trying this with Android?

Regards,
Cascardo.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-02 14:41 ` ET1602 Touchscreen doesn't work Thadeu Lima de Souza Cascardo
@ 2011-06-03  4:02   ` Chih-Wei Huang
  2011-06-03 12:44     ` Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 12+ messages in thread
From: Chih-Wei Huang @ 2011-06-03  4:02 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo; +Cc: Jiri Kosina, linux-input

2011/6/2 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> It depends on your userspace. It should work properly with X.org drivers
> evdev and evtouch. Are you trying this with Android?

Yes, exactly.

Actually the touchscreen is detected, but it appears twice:

[    3.408922] input: HID TOUCH HID Touch Panel as
/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input6
[    3.412345] input: HID TOUCH HID Touch Panel as
/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input7
[    3.415386] generic-usb 0003:1BFD:1688.0003: input: USB HID v1.01
Mouse [HID TOUCH HID Touch Panel] on usb-0000:00:1d.3-2/input0

I tried to use getevent, a debug tool of android,
to get the touch events.
I found touch events appear in /dev/event7,
not in /dev/event6.
Is it the desired behavior?

But the Android framework seems only detect
/dev/event6 and ignore /dev/event7,
probably because they have the same name.

Any suggestion how to solve the problem?

Regards,
-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-03  4:02   ` Chih-Wei Huang
@ 2011-06-03 12:44     ` Thadeu Lima de Souza Cascardo
  2011-06-08 10:33       ` Chih-Wei Huang
  0 siblings, 1 reply; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-03 12:44 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 1371 bytes --]

On Fri, Jun 03, 2011 at 12:02:09PM +0800, Chih-Wei Huang wrote:
> 2011/6/2 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> > It depends on your userspace. It should work properly with X.org drivers
> > evdev and evtouch. Are you trying this with Android?
> 
> Yes, exactly.
> 
> Actually the touchscreen is detected, but it appears twice:
> 
> [    3.408922] input: HID TOUCH HID Touch Panel as
> /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input6
> [    3.412345] input: HID TOUCH HID Touch Panel as
> /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input7
> [    3.415386] generic-usb 0003:1BFD:1688.0003: input: USB HID v1.01
> Mouse [HID TOUCH HID Touch Panel] on usb-0000:00:1d.3-2/input0
> 
> I tried to use getevent, a debug tool of android,
> to get the touch events.
> I found touch events appear in /dev/event7,
> not in /dev/event6.
> Is it the desired behavior?
> 
> But the Android framework seems only detect
> /dev/event6 and ignore /dev/event7,
> probably because they have the same name.
> 
> Any suggestion how to solve the problem?
> 
> Regards,
> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

You should use the device capabilities, like what events it does
generate. If it does generate X and Y axis events, that's the right
device.

Best regards,
Cascardo.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-03 12:44     ` Thadeu Lima de Souza Cascardo
@ 2011-06-08 10:33       ` Chih-Wei Huang
  2011-06-08 11:31         ` Benjamin Tissoires
  0 siblings, 1 reply; 12+ messages in thread
From: Chih-Wei Huang @ 2011-06-08 10:33 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo; +Cc: Jiri Kosina, linux-input

2011/6/3 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> You should use the device capabilities, like what events it does
> generate. If it does generate X and Y axis events, that's the right
> device.

Did you mean ABS_X and ABS_Y? Actually it is.
The android framework detects the touch device by:

    // Is this an old style single-touch driver?
     if (test_bit(BTN_TOUCH, key_bitmask)
             && test_bit(ABS_X, abs_bitmask) && test_bit(ABS_Y, abs_bitmask)) {
         device->classes |= CLASS_TOUCHSCREEN;
     }

However, the output of getevent -p shows

add device 2: /dev/input/event7
  name:     "HID TOUCH HID Touch Panel"
  events:
    SYN (0000): 0000  0001  0003  0004
    KEY (0001): 0110  0111  0112
    ABS (0003): 0000  value 1428, min 0, max 4095, fuzz 0 flat 0
                0001  value 1066, min 0, max 4095, fuzz 0 flat 0
    MSC (0004): 0004

add device 3: /dev/input/event6
  name:     "HID TOUCH HID Touch Panel"
  events:
    SYN (0000): 0000  0001  0003  0004
    KEY (0001): 0140  014a  014b
    ABS (0003): 0000  value 0, min 0, max 4095, fuzz 0 flat 0
                0001  value 0, min 0, max 4095, fuzz 0 flat 0
    MSC (0004): 0004

Only event6 supports BTN_TOUCH, so it is detected
as the touch device. However, that's wrong --
event7 is the right touch device.

By removing the check test_bit(BTN_TOUCH, key_bitmask),
event7 is correctly detected and touchscreen now works.

But I still have questions:

* Is it intended to NOT support BTN_TOUCH in event7?
* Why two devices are detected by the kernel,
  while there is only one touchscreen?

-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-08 10:33       ` Chih-Wei Huang
@ 2011-06-08 11:31         ` Benjamin Tissoires
  2011-06-08 12:57           ` Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 12+ messages in thread
From: Benjamin Tissoires @ 2011-06-08 11:31 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Thadeu Lima de Souza Cascardo, Jiri Kosina, linux-input

Hi Chih-Wei and Cascardo,

Sorry for coming late in the discussion, but I think I can add some ideas to it.

Most of the time, when we (the multitouch guys) saw a device that
sends ABS_Z and ABS_RX, and that the problem is worked around by
adding the MULTI_INPUT quirk, that means to us that the device is a
multitouch Win7 compatible one. So hid-multitouch must be able to
handle it.

Chih-Wei, if you are running android-x86 2.6.38 kernel, then removing
the quirk should tell the generic hid layer not to handle it.
Then adding it to the list of the devices handled by hid-multitouch
should do the job: insert in mt_device the following


+	/* TouchPack touchscreen */
+	{ .driver_data = MT_CLS_DEFAULT,
+		HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK,
+			USB_DEVICE_ID_TOUCHPACK_RTS) },
+

For a proper kernel integration, we'll also need to add it to the
hid_have_special_driver list in hid-core, but android-x86 kernel
doesn't need it currently.

On Wed, Jun 8, 2011 at 12:33, Chih-Wei Huang <cwhuang@android-x86.org> wrote:
> 2011/6/3 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
>> You should use the device capabilities, like what events it does
>> generate. If it does generate X and Y axis events, that's the right
>> device.
>
> Did you mean ABS_X and ABS_Y? Actually it is.
> The android framework detects the touch device by:
>
>    // Is this an old style single-touch driver?
>     if (test_bit(BTN_TOUCH, key_bitmask)
>             && test_bit(ABS_X, abs_bitmask) && test_bit(ABS_Y, abs_bitmask)) {
>         device->classes |= CLASS_TOUCHSCREEN;
>     }
>
> However, the output of getevent -p shows
>
> add device 2: /dev/input/event7
>  name:     "HID TOUCH HID Touch Panel"
>  events:
>    SYN (0000): 0000  0001  0003  0004
>    KEY (0001): 0110  0111  0112
>    ABS (0003): 0000  value 1428, min 0, max 4095, fuzz 0 flat 0
>                0001  value 1066, min 0, max 4095, fuzz 0 flat 0
>    MSC (0004): 0004
>
> add device 3: /dev/input/event6
>  name:     "HID TOUCH HID Touch Panel"
>  events:
>    SYN (0000): 0000  0001  0003  0004
>    KEY (0001): 0140  014a  014b
>    ABS (0003): 0000  value 0, min 0, max 4095, fuzz 0 flat 0
>                0001  value 0, min 0, max 4095, fuzz 0 flat 0
>    MSC (0004): 0004
>
> Only event6 supports BTN_TOUCH, so it is detected
> as the touch device. However, that's wrong --
> event7 is the right touch device.
>
> By removing the check test_bit(BTN_TOUCH, key_bitmask),
> event7 is correctly detected and touchscreen now works.
>
> But I still have questions:
>
> * Is it intended to NOT support BTN_TOUCH in event7?
> * Why two devices are detected by the kernel,
>  while there is only one touchscreen?

That's the MULTI_INPUT quirk purpose, when the generic hid layer is
not able to understand the report descriptors, one way to handle the
different collections (i.e. touches) that contains the same fields is
to split the device in several ones, one per touch.

Cheers,
Benjamin

PS: Chih-Wei and Cascardo, if you need a patch instead of my awful
English, don't hesitate to ask... ;-)


>
> --
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-08 11:31         ` Benjamin Tissoires
@ 2011-06-08 12:57           ` Thadeu Lima de Souza Cascardo
  2011-06-08 14:56             ` Chih-Wei Huang
  0 siblings, 1 reply; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-08 12:57 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Chih-Wei Huang, Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 4063 bytes --]

On Wed, Jun 08, 2011 at 01:31:26PM +0200, Benjamin Tissoires wrote:
> Hi Chih-Wei and Cascardo,
> 
> Sorry for coming late in the discussion, but I think I can add some ideas to it.
> 
> Most of the time, when we (the multitouch guys) saw a device that
> sends ABS_Z and ABS_RX, and that the problem is worked around by
> adding the MULTI_INPUT quirk, that means to us that the device is a
> multitouch Win7 compatible one. So hid-multitouch must be able to
> handle it.
> 
> Chih-Wei, if you are running android-x86 2.6.38 kernel, then removing
> the quirk should tell the generic hid layer not to handle it.
> Then adding it to the list of the devices handled by hid-multitouch
> should do the job: insert in mt_device the following
> 
> 
> +	/* TouchPack touchscreen */
> +	{ .driver_data = MT_CLS_DEFAULT,
> +		HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK,
> +			USB_DEVICE_ID_TOUCHPACK_RTS) },
> +
> 
> For a proper kernel integration, we'll also need to add it to the
> hid_have_special_driver list in hid-core, but android-x86 kernel
> doesn't need it currently.
> 
> On Wed, Jun 8, 2011 at 12:33, Chih-Wei Huang <cwhuang@android-x86.org> wrote:
> > 2011/6/3 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> >> You should use the device capabilities, like what events it does
> >> generate. If it does generate X and Y axis events, that's the right
> >> device.
> >
> > Did you mean ABS_X and ABS_Y? Actually it is.
> > The android framework detects the touch device by:
> >
> >    // Is this an old style single-touch driver?
> >     if (test_bit(BTN_TOUCH, key_bitmask)
> >             && test_bit(ABS_X, abs_bitmask) && test_bit(ABS_Y, abs_bitmask)) {
> >         device->classes |= CLASS_TOUCHSCREEN;
> >     }
> >
> > However, the output of getevent -p shows
> >
> > add device 2: /dev/input/event7
> >  name:     "HID TOUCH HID Touch Panel"
> >  events:
> >    SYN (0000): 0000  0001  0003  0004
> >    KEY (0001): 0110  0111  0112
> >    ABS (0003): 0000  value 1428, min 0, max 4095, fuzz 0 flat 0
> >                0001  value 1066, min 0, max 4095, fuzz 0 flat 0
> >    MSC (0004): 0004
> >
> > add device 3: /dev/input/event6
> >  name:     "HID TOUCH HID Touch Panel"
> >  events:
> >    SYN (0000): 0000  0001  0003  0004
> >    KEY (0001): 0140  014a  014b
> >    ABS (0003): 0000  value 0, min 0, max 4095, fuzz 0 flat 0
> >                0001  value 0, min 0, max 4095, fuzz 0 flat 0
> >    MSC (0004): 0004
> >
> > Only event6 supports BTN_TOUCH, so it is detected
> > as the touch device. However, that's wrong --
> > event7 is the right touch device.
> >
> > By removing the check test_bit(BTN_TOUCH, key_bitmask),
> > event7 is correctly detected and touchscreen now works.
> >
> > But I still have questions:
> >
> > * Is it intended to NOT support BTN_TOUCH in event7?
> > * Why two devices are detected by the kernel,
> >  while there is only one touchscreen?
> 
> That's the MULTI_INPUT quirk purpose, when the generic hid layer is
> not able to understand the report descriptors, one way to handle the
> different collections (i.e. touches) that contains the same fields is
> to split the device in several ones, one per touch.
> 
> Cheers,
> Benjamin
> 
> PS: Chih-Wei and Cascardo, if you need a patch instead of my awful
> English, don't hesitate to ask... ;-)
> 

Thanks, Benjamin. That clarifies a lot and points what the real fix
should be for this device.

Chih-Wei, could you send us the results of your tests? I don't have the
device available right now. I could get it next week, perhaps, if my
client still gets it.

Regards,
Cascardo.

> 
> >
> > --
> > Chih-Wei
> > Android-x86 project
> > http://www.android-x86.org
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-input" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-08 12:57           ` Thadeu Lima de Souza Cascardo
@ 2011-06-08 14:56             ` Chih-Wei Huang
  2011-06-08 15:31               ` Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 12+ messages in thread
From: Chih-Wei Huang @ 2011-06-08 14:56 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo
  Cc: Benjamin Tissoires, Jiri Kosina, linux-input

Thanks, Benjamin and Cascardo.

2011/6/8 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> Thanks, Benjamin. That clarifies a lot and points what the real fix
> should be for this device.
> Chih-Wei, could you send us the results of your tests? I don't have the
> device available right now. I could get it next week, perhaps, if my
> client still gets it.

I'm glad to do so.
But what test results did you want me to show exactly?

Let me clarify my situation:
* Device under test: ASUS ET1602, touchscreen id (1bfd:1688).
* Kernel: 2.6.38, with android patches (from Google)
* Android version: 2.2.2 (froyo)

By the previous observation from getevent, I added
the following patch to android framework:

diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
index 0e11823..6ef9da1 100755
--- a/libs/ui/EventHub.cpp
+++ b/libs/ui/EventHub.cpp
@@ -670,7 +671,7 @@ int EventHub::open_device(const char *deviceName)
         device->classes |= CLASS_TOUCHSCREEN | CLASS_TOUCHSCREEN_MT;

     // Is this an old style single-touch driver?
-    } else if (test_bit(BTN_TOUCH, key_bitmask)
+    } else if ((test_bit(BTN_TOUCH, key_bitmask) ||
test_bit(BTN_MOUSE, key_bitmask))
             && test_bit(ABS_X, abs_bitmask) && test_bit(ABS_Y, abs_bitmask)) {
         device->classes |= CLASS_TOUCHSCREEN;
     }

Then the touch device (event7) is correctly recognized by
the android framework and works fine.

Without this patch, event7 is ignored and only event6 is detected,
but no touch event generated from it.

Let me know if you need more details.

I'll try Benjamin's suggestion tomorrow.

Regards,
-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-08 14:56             ` Chih-Wei Huang
@ 2011-06-08 15:31               ` Thadeu Lima de Souza Cascardo
  2011-06-09 11:26                 ` Chih-Wei Huang
  0 siblings, 1 reply; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-08 15:31 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Benjamin Tissoires, Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 2129 bytes --]

On Wed, Jun 08, 2011 at 10:56:29PM +0800, Chih-Wei Huang wrote:
> Thanks, Benjamin and Cascardo.
> 
> 2011/6/8 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> > Thanks, Benjamin. That clarifies a lot and points what the real fix
> > should be for this device.
> > Chih-Wei, could you send us the results of your tests? I don't have the
> > device available right now. I could get it next week, perhaps, if my
> > client still gets it.
> 
> I'm glad to do so.
> But what test results did you want me to show exactly?
> 
> Let me clarify my situation:
> * Device under test: ASUS ET1602, touchscreen id (1bfd:1688).
> * Kernel: 2.6.38, with android patches (from Google)
> * Android version: 2.2.2 (froyo)
> 
> By the previous observation from getevent, I added
> the following patch to android framework:
> 
> diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
> index 0e11823..6ef9da1 100755
> --- a/libs/ui/EventHub.cpp
> +++ b/libs/ui/EventHub.cpp
> @@ -670,7 +671,7 @@ int EventHub::open_device(const char *deviceName)
>          device->classes |= CLASS_TOUCHSCREEN | CLASS_TOUCHSCREEN_MT;
> 
>      // Is this an old style single-touch driver?
> -    } else if (test_bit(BTN_TOUCH, key_bitmask)
> +    } else if ((test_bit(BTN_TOUCH, key_bitmask) ||
> test_bit(BTN_MOUSE, key_bitmask))
>              && test_bit(ABS_X, abs_bitmask) && test_bit(ABS_Y, abs_bitmask)) {
>          device->classes |= CLASS_TOUCHSCREEN;
>      }
> 
> Then the touch device (event7) is correctly recognized by
> the android framework and works fine.
> 
> Without this patch, event7 is ignored and only event6 is detected,
> but no touch event generated from it.
> 
> Let me know if you need more details.
> 
> I'll try Benjamin's suggestion tomorrow.
> 
> Regards,
> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

I was referring to Benjamin's multi-touch solution, perhaps, reverting
the multi-device patch already. By the way, did you test it without the
multi-device patch and did it work, or did you test it only with 2.6.32?

Regards,
Cascardo.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-08 15:31               ` Thadeu Lima de Souza Cascardo
@ 2011-06-09 11:26                 ` Chih-Wei Huang
  2011-06-09 13:39                   ` Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 12+ messages in thread
From: Chih-Wei Huang @ 2011-06-09 11:26 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo
  Cc: Benjamin Tissoires, Jiri Kosina, linux-input

2011/6/8 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> I was referring to Benjamin's multi-touch solution, perhaps, reverting
> the multi-device patch already. By the way, did you test it without the
> multi-device patch and did it work, or did you test it only with 2.6.32?

I'm not sure if I understood you correctly.
I did these:
* remove the quirk for touchpack in hid-quirks.c
* change hid-multitouch.c as suggested by Benjamin.

Test results:
* The touchscreen is detected by hid-core.
  (only one device is detected)
* Manually modprobe hid-multitouch,
  it didn't detect the touch device.
* The android framework correctly recognized
  the touchscreen and it works well.

The whole patch shows as below:

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index 0c5e9c3..fab373a 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -713,6 +713,11 @@ static const struct hid_device_id mt_devices[] = {
                HID_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
                        USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) },

+       /* TouchPack touchscreen */
+       { .driver_data = MT_CLS_DEFAULT,
+               HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK,
+                       USB_DEVICE_ID_TOUCHPACK_RTS) },
+
        /* Unitec panels */
        { .driver_data = MT_CLS_DEFAULT,
                HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 9a94b64..727f363 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -49,7 +49,7 @@ static const struct hid_blacklist {
        { USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH,
HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_PANTHERLORD,
USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK, HID_QUIRK_MULTI_INPUT |
HID_QUIRK_SKIP_OUTPUT_REPORTS },
        { USB_VENDOR_ID_PLAYDOTCOM,
USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
-       { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS,
HID_QUIRK_MULTI_INPUT },
+//     { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS,
HID_QUIRK_MULTI_INPUT },

        { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },


-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-09 11:26                 ` Chih-Wei Huang
@ 2011-06-09 13:39                   ` Thadeu Lima de Souza Cascardo
  2011-06-10  2:23                     ` Chih-Wei Huang
  0 siblings, 1 reply; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-09 13:39 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Benjamin Tissoires, Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 2901 bytes --]

On Thu, Jun 09, 2011 at 07:26:58PM +0800, Chih-Wei Huang wrote:
> 2011/6/8 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> > I was referring to Benjamin's multi-touch solution, perhaps, reverting
> > the multi-device patch already. By the way, did you test it without the
> > multi-device patch and did it work, or did you test it only with 2.6.32?
> 
> I'm not sure if I understood you correctly.
> I did these:
> * remove the quirk for touchpack in hid-quirks.c
> * change hid-multitouch.c as suggested by Benjamin.
> 
> Test results:
> * The touchscreen is detected by hid-core.
>   (only one device is detected)
> * Manually modprobe hid-multitouch,
>   it didn't detect the touch device.
> * The android framework correctly recognized
>   the touchscreen and it works well.
> 

Nice. That was one of the tests. But have you tested without the quirck
in hid-quirks and without the suggested change by Benjamin? Considering
the device would indicate it supports RX and Z axis, but not X and Y
axis, it should not work either in Android.

Regards,
Cascardo.

> The whole patch shows as below:
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index 0c5e9c3..fab373a 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -713,6 +713,11 @@ static const struct hid_device_id mt_devices[] = {
>                 HID_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
>                         USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) },
> 
> +       /* TouchPack touchscreen */
> +       { .driver_data = MT_CLS_DEFAULT,
> +               HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK,
> +                       USB_DEVICE_ID_TOUCHPACK_RTS) },
> +
>         /* Unitec panels */
>         { .driver_data = MT_CLS_DEFAULT,
>                 HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
> diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
> index 9a94b64..727f363 100644
> --- a/drivers/hid/usbhid/hid-quirks.c
> +++ b/drivers/hid/usbhid/hid-quirks.c
> @@ -49,7 +49,7 @@ static const struct hid_blacklist {
>         { USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH,
> HID_QUIRK_MULTI_INPUT },
>         { USB_VENDOR_ID_PANTHERLORD,
> USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK, HID_QUIRK_MULTI_INPUT |
> HID_QUIRK_SKIP_OUTPUT_REPORTS },
>         { USB_VENDOR_ID_PLAYDOTCOM,
> USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
> -       { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS,
> HID_QUIRK_MULTI_INPUT },
> +//     { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS,
> HID_QUIRK_MULTI_INPUT },
> 
>         { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
>         { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },
> 
> 
> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-09 13:39                   ` Thadeu Lima de Souza Cascardo
@ 2011-06-10  2:23                     ` Chih-Wei Huang
  2011-06-13 15:09                       ` Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 12+ messages in thread
From: Chih-Wei Huang @ 2011-06-10  2:23 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo
  Cc: Benjamin Tissoires, Jiri Kosina, linux-input

2011/6/9 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> Nice. That was one of the tests. But have you tested without the quirck
> in hid-quirks and without the suggested change by Benjamin? Considering
> the device would indicate it supports RX and Z axis, but not X and Y
> axis, it should not work either in Android.

Did you mean just remove this line in hid-quirks.c?

{ USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },

That's what I've tried (with and without Benjamin's change) .
Yes, it works in Android 2.2.

-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: ET1602 Touchscreen doesn't work
  2011-06-10  2:23                     ` Chih-Wei Huang
@ 2011-06-13 15:09                       ` Thadeu Lima de Souza Cascardo
  0 siblings, 0 replies; 12+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2011-06-13 15:09 UTC (permalink / raw)
  To: Chih-Wei Huang; +Cc: Benjamin Tissoires, Jiri Kosina, linux-input

[-- Attachment #1: Type: text/plain, Size: 1214 bytes --]

On Fri, Jun 10, 2011 at 10:23:06AM +0800, Chih-Wei Huang wrote:
> 2011/6/9 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>:
> > Nice. That was one of the tests. But have you tested without the quirck
> > in hid-quirks and without the suggested change by Benjamin? Considering
> > the device would indicate it supports RX and Z axis, but not X and Y
> > axis, it should not work either in Android.
> 
> Did you mean just remove this line in hid-quirks.c?
> 
> { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
> 
> That's what I've tried (with and without Benjamin's change) .
> Yes, it works in Android 2.2.
> 

Yes, that's what I meant. The problem is: without the patch, X.org won't
work with the drivers I've tested it with; with the patch, Android won't
work. I am curious, because the code you've sent only checked for X and
Y axis and without the patch, the single device would not send events in
these axis, IIRC. I will check if I have this particular device
available and do some tests with current Linux (2.6.39.1) and more
recent X.org drivers.

Regards,
Cascardo.

> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-06-13 15:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <BANLkTikX9njth-jP6PpQuwL9sTUciu1nQA@mail.gmail.com>
2011-06-02 14:41 ` ET1602 Touchscreen doesn't work Thadeu Lima de Souza Cascardo
2011-06-03  4:02   ` Chih-Wei Huang
2011-06-03 12:44     ` Thadeu Lima de Souza Cascardo
2011-06-08 10:33       ` Chih-Wei Huang
2011-06-08 11:31         ` Benjamin Tissoires
2011-06-08 12:57           ` Thadeu Lima de Souza Cascardo
2011-06-08 14:56             ` Chih-Wei Huang
2011-06-08 15:31               ` Thadeu Lima de Souza Cascardo
2011-06-09 11:26                 ` Chih-Wei Huang
2011-06-09 13:39                   ` Thadeu Lima de Souza Cascardo
2011-06-10  2:23                     ` Chih-Wei Huang
2011-06-13 15:09                       ` Thadeu Lima de Souza Cascardo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).