Thread (5 messages) flat view 5 messages, 2 authors, 2012-05-24

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help