I wrote an applet to detect touch events, and found that the Dalvik VM only received "move" events. There was no action of touch pen up detected. So I modified the corgi-ts driver and added codes in function "ts_interrupt_main()".
@@ -215,6 +220,10 @@
/* Enable Falling Edge */
set_irq_type(corgi_ts->irq_gpio, IRQT_FALLING);
corgi_ts->pendown = 0;
+ /* 2008(R) */
+ input_report_key(corgi_ts->input, BTN_TOUCH, corgi_ts->pendown);
+ input_sync(corgi_ts->input);
This patch works on my C3000, too. Now touchscreen works all the time. Fortunately, I don't need much calibrations for now.
It seems Android wants to know not only pressure becomes zero but also pendown becomes zero. Only two lines but very precious lines.
Again, thank you very much, Rebecca! Your contribution is just great!