aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Kenna <cjk@cs.unc.edu>2012-09-19 18:12:15 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2012-09-20 13:09:07 -0400
commit5dd038629bdedef22d5ecad2d5e75ad81f4dc694 (patch)
treea3686ea620775e4c5a906247b5ae87a0e6ee66ea
parent59fdf8ef050568becc50ea4da5d6709130536e82 (diff)
Apply RTC-TWL patches.
rtc: twl: Use threaded IRQ, remove IRQ enable in interrupt handler twl: add missing IRQF_ONESHOT
-rw-r--r--drivers/rtc/rtc-twl.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
index f9a2799c44d..9d51b40f164 100644
--- a/drivers/rtc/rtc-twl.c
+++ b/drivers/rtc/rtc-twl.c
@@ -362,14 +362,6 @@ static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
362 int res; 362 int res;
363 u8 rd_reg; 363 u8 rd_reg;
364 364
365#ifdef CONFIG_LOCKDEP
366 /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
367 * we don't want and can't tolerate. Although it might be
368 * friendlier not to borrow this thread context...
369 */
370 local_irq_enable();
371#endif
372
373 res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG); 365 res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
374 if (res) 366 if (res)
375 goto out; 367 goto out;
@@ -462,9 +454,9 @@ static int __devinit twl_rtc_probe(struct platform_device *pdev)
462 if (ret < 0) 454 if (ret < 0)
463 goto out1; 455 goto out1;
464 456
465 ret = request_irq(irq, twl_rtc_interrupt, 457 ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
466 IRQF_TRIGGER_RISING, 458+ IRQF_TRIGGER_RISING | IRQF_ONESHOT,
467 dev_name(&rtc->dev), rtc); 459 dev_name(&rtc->dev), rtc);
468 if (ret < 0) { 460 if (ret < 0) {
469 dev_err(&pdev->dev, "IRQ is not free.\n"); 461 dev_err(&pdev->dev, "IRQ is not free.\n");
470 goto out1; 462 goto out1;