I've hit the same issue with the scaling problem - the balloon3 board and UCB1400 touchscreen driver give erroneous positions for the coordinates in X but work perfectly in the tslib test programs.
I'd estimate that only 25% of the screen is usable - 50% horizontal, 50%
vertical.
Whilst I don't doubt that it works on some platforms, this bug does make
xf86-input-tslib unusable on other systems, which is an important bug.
# cat /etc/pointercal
47304 105 -3453232 -1882 -52108 47463896 65536
Bottom right:
1218048546.736937: 450 604 549
1218048546.796972: 446 630 0
Cursor position when stylus is at bottom right:
1218048591.786899: 195 389 515
1218048591.816937: 192 389 533
1218048591.846896: 192 388 557
1218048591.876903: 193 386 551
1218048591.936970: 196 422 0
Bottom left:
1218048613.386881: 69 616 431
1218048613.446964: 44 627 0
Cursor position when stylus is bottom left:
1218048637.006940: 60 400 590
1218048637.006940: 60 400 590
1218048637.036923: 60 397 578
1218048637.066965: 60 395 0
Top right:
1218048657.816908: 453 22 461
1218048657.876973: 456 -2 0
Cursor position when stylus is top right:
1218048684.427122: 198 63 488
1218048684.477000: 197 65 0
Top Left:
1218048701.016910: 12 52 579
1218048701.076984: 46 31 0
1218048703.076905: 58 51 563
1218048703.106952: 51 46 575
1218048703.136971: 47 42 0
1218048705.856917: 61 47 546
1218048705.916977: 30 48 0
1218048706.616904: 39 87 558
1218048706.676978: 36 49 0
1218048707.686902: 46 67 522
1218048707.717011: 46 67 0
Cursor position with stylus at top left:
1218048751.136910: 56 84 552
1218048751.166915: 53 83 538
1218048751.227088: 51 56 0
I've tested by making this simple change in src/tslib.c:
--- xf86-input-tslib-0.0.4.orig/src/tslib.c
+++ xf86-input-tslib-0.0.4/src/tslib.c
@@ -224,12 +224,12 @@
return !Success;
}
- InitValuatorAxisStruct(device, 0, 0, /* min val */ 1023,
/* max val */
+ InitValuatorAxisStruct(device, 0, 0, /* min val */ 480, /* max
val */
1024, /* resolution */
0, /* min_res */
1024); /* max_res */
- InitValuatorAxisStruct(device, 1, 0, /* min val */ 1023,
/* max val */
+ InitValuatorAxisStruct(device, 1, 0, /* min val */ 680, /* max
val */
1024, /* resolution */
0, /* min_res */
1024); /* max_res */
This gives me an almost perfectly operational X server and touchscreen.
--
Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/
signature.asc
Description: This is a digitally signed message part

