100872541e
- when moving the stylus, the cursor was updated only when the screen was released - when moving the stylus for too long, the kernel crashed This was caused by improper delays in SSP read and write, and by interrupt hammering while the screen is touched). Both led to the machine handling interrupts all the time and been unable to schedule the X server, therefore the lack of cursor refresh. The problem is fixed by - masking touchpanel interrupts as soon as we are already handling them - creating a kernel thread (j720ssp) that takes care of keyboard and touchpanel I/O, instead of doing it in a softintr. - reducing delays in j720ssp_readwrite operations from 5ms to 0.1ms. NB: If the delay in j720ssp_readwrite operation is lowered to 0.1, then switching on the screen using the power key pushes brightness to maximum. In order to avoid this, we introduce a wait argument to j720ssp_readwrite, which specify how many microseconds we have to wait. j720ssp_readwrite is called with wait = 100 everywhere except in j720lcdparam where it is called with wait = 500. That way it works. |
||
---|---|---|
.. | ||
ipaq_atmel.h | ||
ipaq_atmelgpio.c | ||
ipaq_atmelvar.h | ||
ipaq_gpioreg.h | ||
ipaq_lcd.c | ||
ipaq_lcdreg.h | ||
ipaq_lcdvar.h | ||
ipaq_pcic.c | ||
ipaq_pcicreg.h | ||
ipaq_saip.c | ||
ipaq_saipvar.h | ||
j720kbdmap.c | ||
j720ssp.c | ||
sed1356var.h | ||
sed_saip.c | ||
uda1341.c | ||
uda1341.h |