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.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
Родитель
e877ab7302
Коммит
eb8d942032
|
@ -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)
|
||||||
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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче