diff options
Diffstat (limited to 'drivers/rtc/rtc-bfin.c')
-rw-r--r-- | drivers/rtc/rtc-bfin.c | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/drivers/rtc/rtc-bfin.c b/drivers/rtc/rtc-bfin.c index b4b6087f223..ca9cff85ab8 100644 --- a/drivers/rtc/rtc-bfin.c +++ b/drivers/rtc/rtc-bfin.c | |||
@@ -240,40 +240,16 @@ static void bfin_rtc_int_set_alarm(struct bfin_rtc *rtc) | |||
240 | */ | 240 | */ |
241 | bfin_rtc_int_set(rtc->rtc_alarm.tm_yday == -1 ? RTC_ISTAT_ALARM : RTC_ISTAT_ALARM_DAY); | 241 | bfin_rtc_int_set(rtc->rtc_alarm.tm_yday == -1 ? RTC_ISTAT_ALARM : RTC_ISTAT_ALARM_DAY); |
242 | } | 242 | } |
243 | static int bfin_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long arg) | 243 | |
244 | static int bfin_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) | ||
244 | { | 245 | { |
245 | struct bfin_rtc *rtc = dev_get_drvdata(dev); | 246 | struct bfin_rtc *rtc = dev_get_drvdata(dev); |
246 | int ret = 0; | ||
247 | 247 | ||
248 | dev_dbg_stamp(dev); | 248 | dev_dbg_stamp(dev); |
249 | 249 | if (enabled) | |
250 | bfin_rtc_sync_pending(dev); | ||
251 | |||
252 | switch (cmd) { | ||
253 | case RTC_UIE_ON: | ||
254 | dev_dbg_stamp(dev); | ||
255 | bfin_rtc_int_set(RTC_ISTAT_SEC); | ||
256 | break; | ||
257 | case RTC_UIE_OFF: | ||
258 | dev_dbg_stamp(dev); | ||
259 | bfin_rtc_int_clear(~RTC_ISTAT_SEC); | ||
260 | break; | ||
261 | |||
262 | case RTC_AIE_ON: | ||
263 | dev_dbg_stamp(dev); | ||
264 | bfin_rtc_int_set_alarm(rtc); | 250 | bfin_rtc_int_set_alarm(rtc); |
265 | break; | 251 | else |
266 | case RTC_AIE_OFF: | ||
267 | dev_dbg_stamp(dev); | ||
268 | bfin_rtc_int_clear(~(RTC_ISTAT_ALARM | RTC_ISTAT_ALARM_DAY)); | 252 | bfin_rtc_int_clear(~(RTC_ISTAT_ALARM | RTC_ISTAT_ALARM_DAY)); |
269 | break; | ||
270 | |||
271 | default: | ||
272 | dev_dbg_stamp(dev); | ||
273 | ret = -ENOIOCTLCMD; | ||
274 | } | ||
275 | |||
276 | return ret; | ||
277 | } | 253 | } |
278 | 254 | ||
279 | static int bfin_rtc_read_time(struct device *dev, struct rtc_time *tm) | 255 | static int bfin_rtc_read_time(struct device *dev, struct rtc_time *tm) |
@@ -356,12 +332,12 @@ static int bfin_rtc_proc(struct device *dev, struct seq_file *seq) | |||
356 | } | 332 | } |
357 | 333 | ||
358 | static struct rtc_class_ops bfin_rtc_ops = { | 334 | static struct rtc_class_ops bfin_rtc_ops = { |
359 | .ioctl = bfin_rtc_ioctl, | ||
360 | .read_time = bfin_rtc_read_time, | 335 | .read_time = bfin_rtc_read_time, |
361 | .set_time = bfin_rtc_set_time, | 336 | .set_time = bfin_rtc_set_time, |
362 | .read_alarm = bfin_rtc_read_alarm, | 337 | .read_alarm = bfin_rtc_read_alarm, |
363 | .set_alarm = bfin_rtc_set_alarm, | 338 | .set_alarm = bfin_rtc_set_alarm, |
364 | .proc = bfin_rtc_proc, | 339 | .proc = bfin_rtc_proc, |
340 | .alarm_irq_enable = bfin_rtc_alarm_irq_enable, | ||
365 | }; | 341 | }; |
366 | 342 | ||
367 | static int __devinit bfin_rtc_probe(struct platform_device *pdev) | 343 | static int __devinit bfin_rtc_probe(struct platform_device *pdev) |