Commit 0a53a167 authored by Alexandre Belloni's avatar Alexandre Belloni

rtc: vr41xx: make alarms useful

Currently, the IRQs are disabled when the rtc character device is closed.
This means that the device needs to stay open to get alarms while the usual
use case will open the device, set the alarm and close the device.

Keep the alarms functional on character device release. Note that the PIE
are never enabled and would anyway be disabled by the core.
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
parent 512053a4
...@@ -119,23 +119,6 @@ static inline void write_elapsed_second(unsigned long sec) ...@@ -119,23 +119,6 @@ static inline void write_elapsed_second(unsigned long sec)
spin_unlock_irq(&rtc_lock); spin_unlock_irq(&rtc_lock);
} }
static void vr41xx_rtc_release(struct device *dev)
{
spin_lock_irq(&rtc_lock);
rtc1_write(ECMPLREG, 0);
rtc1_write(ECMPMREG, 0);
rtc1_write(ECMPHREG, 0);
rtc1_write(RTCL1LREG, 0);
rtc1_write(RTCL1HREG, 0);
spin_unlock_irq(&rtc_lock);
disable_irq(aie_irq);
disable_irq(pie_irq);
}
static int vr41xx_rtc_read_time(struct device *dev, struct rtc_time *time) static int vr41xx_rtc_read_time(struct device *dev, struct rtc_time *time)
{ {
unsigned long epoch_sec, elapsed_sec; unsigned long epoch_sec, elapsed_sec;
...@@ -272,7 +255,6 @@ static irqreturn_t rtclong1_interrupt(int irq, void *dev_id) ...@@ -272,7 +255,6 @@ static irqreturn_t rtclong1_interrupt(int irq, void *dev_id)
} }
static const struct rtc_class_ops vr41xx_rtc_ops = { static const struct rtc_class_ops vr41xx_rtc_ops = {
.release = vr41xx_rtc_release,
.ioctl = vr41xx_rtc_ioctl, .ioctl = vr41xx_rtc_ioctl,
.read_time = vr41xx_rtc_read_time, .read_time = vr41xx_rtc_read_time,
.set_time = vr41xx_rtc_set_time, .set_time = vr41xx_rtc_set_time,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment