On Mon, 28 Mar 2011, Lukasz.Rymanowski@xxxxxxxxx wrote: > >> +/** > >> + * cts_interrupt() - Called to handle CTS interrupt. > >> + * @irq: Interrupt that occurred. > >> + * @dev_id: Device ID where interrupt occurred. > >> + * > >> + * The cts_interrupt() function is called if interrupt on CTS occurred. > >> + * It disables the interrupt and starts a new work thread to handle > >> + * the interrupt. > >> + */ > >> +static irqreturn_t cts_interrupt(int irq, void *dev_id) { > >> + struct uart_info *uart_info = dev_get_drvdata(dev_id); #ifdef > >> +CONFIG_PM > >> + disable_irq_wake(irq); > >> +#endif > >> + disable_irq_nosync(irq); > >> + > >> + /* Create work and leave IRQ context. */ > >> + (void)create_work_item(uart_info, handle_cts_irq); > >> + > >> + return IRQ_HANDLED; > >> +} > > >Have you thought about using a threaded interrupt handler? That would make all this work cruft go away. > > Good point. > To be honest we did think about it but in the time we where we were busy with other issues. > Anyway, shall we resend patches now or we can push patch for it once driver gets in the tree ? Up to Greg. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html