diff options
| author | Ingo Molnar <mingo@elte.hu> | 2011-02-16 13:33:35 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-02-16 13:33:41 +0100 | 
| commit | a3ec4a603faf4244e275bf11b467aad092dfbd8a (patch) | |
| tree | 1c15009716b37629070ea221a00eb9fe2303a317 /drivers/rtc/rtc-at91sam9.c | |
| parent | 51563cd53c4b1c1790fccd2e0af0e2b756589af9 (diff) | |
| parent | 85e2efbb1db9a18d218006706d6e4fbeb0216213 (diff) | |
| download | olio-linux-3.10-a3ec4a603faf4244e275bf11b467aad092dfbd8a.tar.xz olio-linux-3.10-a3ec4a603faf4244e275bf11b467aad092dfbd8a.zip  | |
Merge commit 'v2.6.38-rc5' into core/locking
Merge reason: pick up upstream fixes.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/rtc/rtc-at91sam9.c')
| -rw-r--r-- | drivers/rtc/rtc-at91sam9.c | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c index f677e0710ca..c36749e4c92 100644 --- a/drivers/rtc/rtc-at91sam9.c +++ b/drivers/rtc/rtc-at91sam9.c @@ -229,12 +229,6 @@ static int at91_rtc_ioctl(struct device *dev, unsigned int cmd,  	dev_dbg(dev, "ioctl: cmd=%08x, arg=%08lx, mr %08x\n", cmd, arg, mr);  	switch (cmd) { -	case RTC_AIE_OFF:		/* alarm off */ -		rtt_writel(rtc, MR, mr & ~AT91_RTT_ALMIEN); -		break; -	case RTC_AIE_ON:		/* alarm on */ -		rtt_writel(rtc, MR, mr | AT91_RTT_ALMIEN); -		break;  	case RTC_UIE_OFF:		/* update off */  		rtt_writel(rtc, MR, mr & ~AT91_RTT_RTTINCIEN);  		break; @@ -249,6 +243,19 @@ static int at91_rtc_ioctl(struct device *dev, unsigned int cmd,  	return ret;  } +static int at91_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) +{ +	struct sam9_rtc *rtc = dev_get_drvdata(dev); +	u32 mr = rtt_readl(rtc, MR); + +	dev_dbg(dev, "alarm_irq_enable: enabled=%08x, mr %08x\n", enabled, mr); +	if (enabled) +		rtt_writel(rtc, MR, mr | AT91_RTT_ALMIEN); +	else +		rtt_writel(rtc, MR, mr & ~AT91_RTT_ALMIEN); +	return 0; +} +  /*   * Provide additional RTC information in /proc/driver/rtc   */ @@ -302,6 +309,7 @@ static const struct rtc_class_ops at91_rtc_ops = {  	.read_alarm	= at91_rtc_readalarm,  	.set_alarm	= at91_rtc_setalarm,  	.proc		= at91_rtc_proc, +	.alarm_irq_enabled = at91_rtc_alarm_irq_enable,  };  /*  |