Hi Dmitry, >-----Original Message----- >From: Dmitry Torokhov [mailto:dmitry.torokhov@xxxxxxxxx] >> >> +static irqreturn_t ske_keypad_irq(int irq, void *dev_id) >> (...) >> + /* >> + * if KPASON is not ready, we cannot read data registers >> + * so wait for a debounce period; if still not settled, >> + * we fire a timer and exit the IRQ >> + */ >> + while ((readl(keypad->reg_base + SKE_CR) & SKE_KPASON) && timeout--) >> + cpu_relax(); >> >> Active polling. Surely you want this to be preemptible? Thus -> >> threaded handler. >> > >Actually I'd like that form of active polling not be there at all. > Hmm. Could you please help me out on how I can proceed with the following two HW constraints: 1. KPASON polling needs to be waited in case of a multi key press so that the keypad registers can stabilize. This is what the TRM states. 2. If I move enabling the interrupts to the timer snippet, I end up breaking multi-key detection. Regards, Sundar -- 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