Re: Threaded interrupts for synaptic touchscreen in HTC dream

Trilok Soni
2009-07-21T12:18:40Z

Hi Mark,

On Tue, Jul 21, 2009 at 5:06 PM, Mark
Brown<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org> wrote:
> On Tue, Jul 21, 2009 at 12:59:25PM +0200, Pavel Machek wrote:
>
> This looks like an unrelated (but useful) change:
>
>>   *
>> + * http://www.synaptics.com/sites/default/files/511_000099_01F.pdf
>>   */
>
> This too:
>
>>  static void decode_report(struct synaptics_ts_data *ts, u8 *buf)
>>  {
>> +/*
>> + * This sensor sends two 6-byte absolute finger reports, an optional
>> + * 2-byte relative report followed by a status byte. This function
>> + * reads the two finger reports and transforms the coordinates
>
> Worth splitting them out?
>
>> +static irqreturn_t synaptics_ts_hardirq(int irq, void *dev_id)
>> +{
>> +     disable_irq_nosync(irq);
>> +     return IRQ_WAKE_THREAD;
>
> Are you sure that this is going to work?  The IRQ thread code will not
> call the thread function if the IRQ is marked as disabled so the thread
> won't actually get called and the interrupt will just stay disabled (see
> irq_thread() in kernel/irq/manage.c).  As far as I can see the threaded
> IRQ support can't be used for devices on interrupt driven buses that
> can't interact with the hardware in hardirq context but I might be
> missing something here.
>

I think threaded irqs are used in USB drivers too, I can't locate the
patches link for that.

--
---Trilok Soni