Hi Barry, On Wed, Jul 15, 2009 at 06:01:49PM +0800, Song, Barry wrote: > > + > > + /* Start workqueue for defer message transfer */ > > + INIT_WORK(&data->work, ad7142_work); > > + > > + if (client->irq > 0) { > > + rc = request_irq(client->irq, ad7142_interrupt, > > + IRQF_TRIGGER_LOW, "ad7142_joystick", > data); > > > Let's use threaded IRQs, they are so nice for devices like this one. > Do you mean use request_threaded_irq to request irq and return > IRQ_THREAD_WAKE in hardware interrupt to wake-up thread_fn in process > context? But there is almost no device using this way after a grep. > Or just create a single-thread workqueue? Or just create a thread to > handle bottom-half? > I was talking about request_threaded_irq(). It is very new but fits this driver usage and takes care of proper and raceless shutting down interrupt/worker pair. -- Dmitry -- 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