Messages in this thread | | | From | David Brownell <> | Subject | Re: Threaded interrupts for synaptic touchscreen in HTC dream | Date | Wed, 22 Jul 2009 10:34:04 -0700 |
| |
On Wednesday 22 July 2009, Thomas Gleixner wrote: > > > Can that be cleaned up a bit, so that the handle_level_oneshot_irq() > > and unmask_oneshot_irq() stuff kicks in automatically when needed, > > instead of requiring board-specific (or driver-specific) code to get > > that stuff right? > > The only way I can see is to set a special trigger flag like > IRQF_TRIGGER_RISING & Co. > > i.e. IRQF_TRIGGER_LEVEL | IRQF_TRIGGER_ONESHOT > > That might work.
That direction, yes ... request_threaded_irq() can't infer ONESHOT from IRQF_TRIGGER_{LOW,HIGH} since the hardirq handler might be able to get Real Work (tm) done in some non-I2C/non-SPI cases.
Another alternative syntax: magic cookies for the hardirq handler. Example, pass NULL to get a default punt-to-irqthread behavior, with ONESHOT set up if it sees IRQF_TRIGGER_HIGH or IRQF_TRIGGER_LOW.
| |