Re: Reg. kernel crash while using pixcir touchscreen driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux