Guys, I use this eGalax on my ICS RC1. It works but it's vertically reversed. Can anyone tell me which is the configuration/calibration file for touchscreen? I have no problem in froyo & gb since it has ts_cal in it.
TIA
---------------
salam
-iggy
Sent using charming phone for charming people.
On 21 Mar 2012 04:57, "Chris Bagwell" <ch...@cnpbagwell.com> wrote:On Mar 20, 7:24 am, Joseph Hayhoe <fnj00m...@gmail.com> wrote:
> Ive pulled some pertinent information from the touchscreen using the
> info provided in the 3M top...
When you see eGalax HW reporting ABS_Z and ABS_RX, it means you need
to add a quirk to hid-core driver for it to work. What happens is the
USB HW's HID report declares 2 interfaces on 1 device and each has its
own X/Y report. hid-core merges them both onto a single /dev/input
device, gets confused by the duplicate X/Y's, and maps second set to
ABS_Z/ABS_RX since those are first unused events right after ABS_X/
ABS_Y . See:
http://git.android-x86.org/?p=kernel/common.git;a=blob;f=drivers/hid/usbhid/hid-quirks.c;h=cfbd11913bb240695bb0758d2b364314fc91f160;hb=refs/heads/android-3.0.x
Look at this sample line for another eGalax device:
36 { USB_VENDOR_ID_DWAV,
USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER, HID_QUIRK_MULTI_INPUT |
HID_QUIRK_NOGET },
Add a line for 0xeef:0001 that has the HID_QUIRK_MULTI_INPUT. This
will cause 2 /dev/input's to be created each with a ABS_X/ABS_Y
instead of 1 /dev/input with ABS_X/ABS_Y/ABS_Z/ABS_RX. The first
device will never send events but the second one will. Probably
BTN_LEFT will stay as BTN_LEFT though.
If this happens to be a multi-touch eGalax (probably not) then there
maybe issues beyond above.
Chris
--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
...
{ 0x0eef, 0x0001, HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
Chris
> --
> You received this message because you are subscribed to the Google Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.
>
If BTN_LEFT, is it working with out needing those BTN_LEFT patches
from the other thread?
Chris
Chris
You can use getevent, the built-in debug tool of android
getevent -p (show how many input queues you have)
getevent -l /dev/input/eventX (show events from queue eventX)
--
Chih-Wei
Android-x86 project
http://www.android-x86.org
I think you can just use tslib to calibrate it,
no need to hack the kernel.
The eeepc iso of 4.0-RC1 has ts_calibrate. Try
stop zygote
mkdir /data/system/tslib
ts_calibrate
start zygote
If you create your own target, remember to add the
following line to your product definition file to enable tslib.
$(call inherit-product-if-exists,external/tslib/tslib.mk)
then add BOARD_USES_TSLIB=true
to initrd script (refer to
device/asus/common/asus_info )
I think you can just use tslib to calibrate it,
no need to hack the kernel.The eeepc iso of 4.0-RC1 has ts_calibrate. Try
stop zygote
mkdir /data/system/tslib
ts_calibrate
start zygoteIf you create your own target, remember to add the
following line to your product definition file to enable tslib.$(call inherit-product-if-exists,external/tslib/tslib.mk)
then add BOARD_USES_TSLIB=true
to initrd script (refer to
device/asus/common/asus_info )--
Chih-Wei
Android-x86 project
http://www.android-x86.org
When did you try it?
The tslib calibration was integrated on Feb 23.
(see my post of announcement)
Of course it won't work if you try before that date.
> Just tried it tho and it worked on the stock eeepc iso like you said, and
> seems to give me better Y axis resolution. Might try and ditch the patch now
--
http://www.youtube.com/watch?v=ce8xi4D0qIM&feature=email&email=comment_received
I'm soo glad the touchscreen finally works. My carpc is near complete.
--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-x86/-/6_OacEsAqwIJ.
--- a/drivers/input/touchscreen/usbtouchscreen.c+++ b/drivers/input/touchscreen/usbtouchscreen.c@@ -156,8 +156,8 @@ enum {static const struct usb_device_id usbtouch_devices[] = {#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},+ {USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = DEVTYPE_EGALAX},+ {USB_DEVICE_HID_CLASS(0x0eef, 0x0002), .driver_info = DEVTYPE_EGALAX},/* normal device IDs */{USB_DEVICE(0x3823, 0x0001), .driver_info = DEVTYPE_EGALAX},@@ -303,13 +303,42 @@ static int e2i_read_data(struct usbtouch_usb *dev, unsigned char *pkt)#define EGALAX_PKT_TYPE_REPT 0x80#define EGALAX_PKT_TYPE_DIAG 0x0A+#define EGALAX_PKT_TYPE_SIZE 0x06+#define EGALAX_PKT_TYPE_11BITS 0x00+#define EGALAX_PKT_TYPE_12BITS 0x02+#define EGALAX_PKT_TYPE_13BITS 0x04+#define EGALAX_PKT_TYPE_14BITS 0x06+static int egalax_read_data(struct usbtouch_usb *dev, unsigned char *pkt){+ int mask;if ((pkt[0] & EGALAX_PKT_TYPE_MASK) != EGALAX_PKT_TYPE_REPT)return 0;- dev->x = ((pkt[3] & 0x0F) << 7) | (pkt[4] & 0x7F);- dev->y = ((pkt[1] & 0x0F) << 7) | (pkt[2] & 0x7F);+ switch(pkt[0] & EGALAX_PKT_TYPE_SIZE)+ {+ case EGALAX_PKT_TYPE_11BITS :+ mask = 0x07FF;+ break;+ case EGALAX_PKT_TYPE_12BITS :+ mask = 0x0FFF;+ break;+ case EGALAX_PKT_TYPE_13BITS :+ mask = 0x1FFF;+ break;+ case EGALAX_PKT_TYPE_14BITS :+ mask = 0x3FFF;+ break;+ default :+ mask = 0x7FFF;+ break;+ }++ dev->x = (((pkt[4] & 0x7F) << 7) | (pkt[3] & 0x7F)) & mask;+ dev->y = (((pkt[2] & 0x7F) << 7) | (pkt[1] & 0x7F)) & mask;+// printk( KERN_INFO "PFO : x = %d, y = %d", dev->x, dev->y );+// printk( KERN_INFO "PFO : %X %X %X %X %X %X", pkt[0], pkt[1], pkt[2], pkt[3], pkt[4], pkt[5] );+dev->touch = pkt[0] & 0x01;return 1;