Re: Reg. kernel crash while using pixcir touchscreen driver
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2012-05-24 07:47:10
Hi Sachin, On Thu, May 24, 2012 at 11:20:01AM +0530, Sachin Kamat wrote:
Hi,
I encountered a kernel crash while integrating Pixcir touchscreen
driver with one of our hardware. The log is attached at the end of the
mail (inline).
The following ISR code:
while (!tsdata->exiting) {
pixcir_ts_poscheck(tsdata);
if (tsdata->chip->attb_read_val())
break;
msleep(20);
}
seems to run until the if condition is false. However, when it exits
the loop (when the condition becomes true), it crashes saying "exiting
task "irq/438-pixcir_" (1011) is an active IRQ thread".It actually crashes earlier, in pixcir_ts_isr() itself. The message is coming from do_exit() when ISR thread dies. Did you porvide attb_read_val implementation?
I have 2 questions here: 1. Do we need such a loop and the if condition. In my case it worked with the isr just doing pixcir_ts_poscheck(tsdata); 2. What exactly is expected by attb_read_val() function.
I believe it is supposed to indicate if touch is detected so we can keep polling. Thanks. -- Dmitry