Subject: CVS commit: syssrc/sys/arch/hpcarm/dev
To: None <source-changes@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: source-changes
Date: 09/14/2002 01:44:59
Module Name: syssrc
Committed By: manu
Date: Fri Sep 13 22:44:59 UTC 2002
Modified Files:
syssrc/sys/arch/hpcarm/dev: j720ssp.c
Log Message:
fix touchpanel broken behavior:
- 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.
To generate a diff of this commit:
cvs rdiff -r1.8 -r1.9 syssrc/sys/arch/hpcarm/dev/j720ssp.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.