|
@@ -253,14 +253,6 @@ static irqreturn_t do_kp_irq(int irq, void *_kp)
|
|
|
u8 reg;
|
|
|
int ret;
|
|
|
|
|
|
-#ifdef CONFIG_LOCKDEP
|
|
|
- /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
|
|
|
- * we don't want and can't tolerate. Although it might be
|
|
|
- * friendlier not to borrow this thread context...
|
|
|
- */
|
|
|
- local_irq_enable();
|
|
|
-#endif
|
|
|
-
|
|
|
/* Read & Clear TWL4030 pending interrupt */
|
|
|
ret = twl4030_kpread(kp, ®, KEYP_ISR1, 1);
|
|
|
|
|
@@ -403,7 +395,8 @@ static int __devinit twl4030_kp_probe(struct platform_device *pdev)
|
|
|
*
|
|
|
* NOTE: we assume this host is wired to TWL4040 INT1, not INT2 ...
|
|
|
*/
|
|
|
- error = request_irq(kp->irq, do_kp_irq, 0, pdev->name, kp);
|
|
|
+ error = request_threaded_irq(kp->irq, NULL, do_kp_irq,
|
|
|
+ 0, pdev->name, kp);
|
|
|
if (error) {
|
|
|
dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n",
|
|
|
kp->irq);
|