解决方法
On EVMs we pass the calibrated values(or let us say hardcoded values
for Xmin/max,Ymin/max and XY resolution) from the driver to the user
space.
…Raw events are handled here
frameworks/base/libs/ui/InputReader.cpp
SingletouchInputMapper::process(const RawEvent* rawEvent)
will process
raw events for a Single touch device. ABS_X and ABS_Y are the values
passed from driver and these are the absolute coordinates in our
case as I told you in my earlier mail.Correct me if I’m wrong,afaik Android phones have no mechanism to do
calibration from user space. It is a sort of standard in Android
phones to send the calibrated values from driver itself.What I suggest is,use tslib to calibrate and let it store values in /etc/pointercal. In
SingletouchInputMapper::sync(nsecs_t when)
calculate the absolute coordinates by parsing the values from /etc/pointercal file.