Hi Dmitry, Thank you for your reply. On 24/05/2012, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > 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? 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. > >> >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html