Commit eb8d9420 authored by Alexandre Belloni's avatar Alexandre Belloni

rtc: sa1100: switch to rtc_time64_to_tm/rtc_tm_to_time64

Call the 64bit versions of rtc_tm time conversion.

Link: https://lore.kernel.org/r/20200306010146.39762-3-alexandre.belloni@bootlin.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent e877ab73
...@@ -111,20 +111,17 @@ static int sa1100_rtc_read_time(struct device *dev, struct rtc_time *tm) ...@@ -111,20 +111,17 @@ static int sa1100_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ {
struct sa1100_rtc *info = dev_get_drvdata(dev); struct sa1100_rtc *info = dev_get_drvdata(dev);
rtc_time_to_tm(readl_relaxed(info->rcnr), tm); rtc_time64_to_tm(readl_relaxed(info->rcnr), tm);
return 0; return 0;
} }
static int sa1100_rtc_set_time(struct device *dev, struct rtc_time *tm) static int sa1100_rtc_set_time(struct device *dev, struct rtc_time *tm)
{ {
struct sa1100_rtc *info = dev_get_drvdata(dev); struct sa1100_rtc *info = dev_get_drvdata(dev);
unsigned long time;
int ret;
ret = rtc_tm_to_time(tm, &time); writel_relaxed(rtc_tm_to_time64(tm), info->rcnr);
if (ret == 0)
writel_relaxed(time, info->rcnr); return 0;
return ret;
} }
static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
...@@ -141,24 +138,18 @@ static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) ...@@ -141,24 +138,18 @@ static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
static int sa1100_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) static int sa1100_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{ {
struct sa1100_rtc *info = dev_get_drvdata(dev); struct sa1100_rtc *info = dev_get_drvdata(dev);
unsigned long time;
int ret;
spin_lock_irq(&info->lock); spin_lock_irq(&info->lock);
ret = rtc_tm_to_time(&alrm->time, &time);
if (ret != 0)
goto out;
writel_relaxed(readl_relaxed(info->rtsr) & writel_relaxed(readl_relaxed(info->rtsr) &
(RTSR_HZE | RTSR_ALE | RTSR_AL), info->rtsr); (RTSR_HZE | RTSR_ALE | RTSR_AL), info->rtsr);
writel_relaxed(time, info->rtar); writel_relaxed(rtc_tm_to_time64(&alrm->time), info->rtar);
if (alrm->enabled) if (alrm->enabled)
writel_relaxed(readl_relaxed(info->rtsr) | RTSR_ALE, info->rtsr); writel_relaxed(readl_relaxed(info->rtsr) | RTSR_ALE, info->rtsr);
else else
writel_relaxed(readl_relaxed(info->rtsr) & ~RTSR_ALE, info->rtsr); writel_relaxed(readl_relaxed(info->rtsr) & ~RTSR_ALE, info->rtsr);
out:
spin_unlock_irq(&info->lock); spin_unlock_irq(&info->lock);
return ret; return 0;
} }
static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq) static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
......
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