Skip to content

Commit

Permalink
rtc/spear: fix for RTC_AIE_ON and RTC_AIE_OFF ioctl errors
Browse files Browse the repository at this point in the history
Define API for '.alarm_irq_enable' to enable and disable alarm irq. This
is required by the framework else RTC_AIE_ON and RTC_AIE_OFF ioctls
return errors.

Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Cc: Deepak Sikri <deepak.sikri@st.com>
Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Shiraz Hashim authored and Linus Torvalds committed Mar 23, 2012
1 parent cd0e08a commit 131f8b7
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions drivers/rtc/rtc-spear.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,11 +327,39 @@ static int spear_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)

return 0;
}

static int spear_alarm_irq_enable(struct device *dev, unsigned int enabled)
{
struct platform_device *pdev = to_platform_device(dev);
struct rtc_device *rtc = platform_get_drvdata(pdev);
struct spear_rtc_config *config = dev_get_drvdata(&rtc->dev);
int ret = 0;

spear_rtc_clear_interrupt(config);

switch (enabled) {
case 0:
/* alarm off */
spear_rtc_disable_interrupt(config);
break;
case 1:
/* alarm on */
spear_rtc_enable_interrupt(config);
break;
default:
ret = -EINVAL;
break;
}

return ret;
}

static struct rtc_class_ops spear_rtc_ops = {
.read_time = spear_rtc_read_time,
.set_time = spear_rtc_set_time,
.read_alarm = spear_rtc_read_alarm,
.set_alarm = spear_rtc_set_alarm,
.alarm_irq_enable = spear_alarm_irq_enable,
};

static int __devinit spear_rtc_probe(struct platform_device *pdev)
Expand Down

0 comments on commit 131f8b7

Please sign in to comment.