git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rtc-at91sam9 fixes
[sfrench/cifs-2.6.git]
/
drivers
/
rtc
/
rtc-at91sam9.c
diff --git
a/drivers/rtc/rtc-at91sam9.c
b/drivers/rtc/rtc-at91sam9.c
index bbf10ecf416cb1330415280cb8961bf7a5398ace..56728a2a3385f84b8ac9dffe35f9501066a58a7a 100644
(file)
--- a/
drivers/rtc/rtc-at91sam9.c
+++ b/
drivers/rtc/rtc-at91sam9.c
@@
-274,7
+274,7
@@
static irqreturn_t at91_rtc_interrupt(int irq, void *_rtc)
* SR clears it, so we must only read it in this irq handler!
*/
mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN);
* SR clears it, so we must only read it in this irq handler!
*/
mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN);
- sr = rtt_readl(rtc, SR) &
mr
;
+ sr = rtt_readl(rtc, SR) &
(mr >> 16)
;
if (!sr)
return IRQ_NONE;
if (!sr)
return IRQ_NONE;
@@
-321,6
+321,10
@@
static int __init at91_rtc_probe(struct platform_device *pdev)
if (!rtc)
return -ENOMEM;
if (!rtc)
return -ENOMEM;
+ /* platform setup code should have handled this; sigh */
+ if (!device_can_wakeup(&pdev->dev))
+ device_init_wakeup(&pdev->dev, 1);
+
platform_set_drvdata(pdev, rtc);
rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS);
rtc->rtt += r->start;
platform_set_drvdata(pdev, rtc);
rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS);
rtc->rtt += r->start;