OESF Portables Forum
Everything Else => Zaurus Distro Support and Discussion => Distros, Development, and Model Specific Forums => Archived Forums => Android => Topic started by: joey on January 28, 2008, 11:16:50 pm
-
Hello all,
I am porting android to my ARM9 device and am having problems getting
the touchscreen to work. On my device the touchpanel driver passes
absolute X/Y co-ordinate values to the kernel input subsystem. When i
touch the screen, more often than not , nothing happens. But on rare
occassions the main screen left/right scroll button might move or the
browser "google search" button might get pressed - but even for this i
have to give a real good thumb press, a firm tap is not enough.
I ran open source program evtest (which is an input event tester) and
it reported the co-ordinates of all my touches.
I then ran strace for the zygote process - i noticed that all of my
taps/touches/presses are read() by some thread which opens the /dev/
input/event1 device, but no action is taken on the reported events.
I also modified the (touchpanel) hardware reported raw X/Y co-ordinate
values so that they correspond to the screen size (640x480 landscape)
and then passed these values to the kernel input subsytem, but there
was no change in behaviour.
I have read on some posts about "porting tslib" - what is this for ?
Is it required here ? Also some posts mention "normarlization of the
coordination" and "auto calibration using sysfs" - what do they
mean ?
Any pointers/help would be appreciated
Regards
Joey
-
My touchscreen driver was incorrectly initialising the ABS_X [MIN/MAX], ABS_Y [MIN/MAX] values - these were supposed to be initialised according to the dimensions of the VGA panel (640x480) i am using. Also i had to calibrate the hardware reported X/Y values according to the 640 x 480 screen - i now pass these calibrated values (alongwith pressure value) to the input subsystem. My touch screen works fairly well now.
-
My touchscreen driver was incorrectly initialising the ABS_X [MIN/MAX], ABS_Y [MIN/MAX] values - these were supposed to be initialised according to the dimensions of the VGA panel (640x480) i am using. Also i had to calibrate the hardware reported X/Y values according to the 640 x 480 screen - i now pass these calibrated values (alongwith pressure value) to the input subsystem. My touch screen works fairly well now.
Sounds great! How did you pass the calibrated values to the subsystem exactly?