X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=drivers%2Fi2c%2Fchips%2Ftwl4030-madc.c;h=c17c7fe9d6dad152b3141376863e30798ed5a7be;hb=baae8496943a8a2cb141f28c005ee5e6d6b19bbc;hp=bff2554ed2fb965934a30f1092a0a393c5f45fbc;hpb=85c0074e097432263d4ad5bba44b9026aa7bda4b;p=linux-2.6-omap-h63xx.git diff --git a/drivers/i2c/chips/twl4030-madc.c b/drivers/i2c/chips/twl4030-madc.c index bff2554ed2f..c17c7fe9d6d 100644 --- a/drivers/i2c/chips/twl4030-madc.c +++ b/drivers/i2c/chips/twl4030-madc.c @@ -148,6 +148,14 @@ static irqreturn_t twl4030_madc_irq_handler(int irq, void *_madc) u8 isr_val, imr_val; int i; +#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 + /* Use COR to ack interrupts since we have no shared IRQs in ISRx */ isr_val = twl4030_madc_read(madc, madc->isr); imr_val = twl4030_madc_read(madc, madc->imr); @@ -451,7 +459,7 @@ static int __init twl4030_madc_probe(struct platform_device *pdev) regval, TWL4030_BCI_BCICTL1); ret = request_irq(TWL4030_MODIRQ_MADC, twl4030_madc_irq_handler, - IRQF_DISABLED, "twl4030_madc", madc); + 0, "twl4030_madc", madc); if (ret) { dev_dbg(&pdev->dev, "could not request irq\n"); goto err_irq;