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. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html