Re: Reg. kernel crash while using pixcir touchscreen driver
From: Sachin Kamat <hidden>
Date: 2012-05-24 08:11:28
Hi Dmitry, Thank you for your reply. On 24/05/2012, Dmitry Torokhov [off-list ref] wrote:
Hi Sachin, On Thu, May 24, 2012 at 11:20:01AM +0530, Sachin Kamat wrote:quoted
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?
Yes, i did provide the implementation for it. In fact even a simplest implementation where I return a positive integer (for testing) results in the above crash.
quoted
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
-- With warm regards, Sachin