Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c59a9fc7 authored by Alexandre Belloni's avatar Alexandre Belloni
Browse files

rtc: snvs: switch to rtc_time64_to_tm/rtc_tm_to_time64

Call the 64bit versions of rtc_tm time conversion now that the range is
enforced by the core.

Link: https://lore.kernel.org/r/20190828205056.31321-2-alexandre.belloni@bootlin.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 79610340
Loading
Loading
Loading
Loading
+4 −9
Original line number Original line Diff line number Diff line
@@ -151,7 +151,7 @@ static int snvs_rtc_read_time(struct device *dev, struct rtc_time *tm)
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	unsigned long time = rtc_read_lp_counter(data);
	unsigned long time = rtc_read_lp_counter(data);


	rtc_time_to_tm(time, tm);
	rtc_time64_to_tm(time, tm);


	return 0;
	return 0;
}
}
@@ -159,11 +159,9 @@ static int snvs_rtc_read_time(struct device *dev, struct rtc_time *tm)
static int snvs_rtc_set_time(struct device *dev, struct rtc_time *tm)
static int snvs_rtc_set_time(struct device *dev, struct rtc_time *tm)
{
{
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	unsigned long time;
	unsigned long time = rtc_tm_to_time64(tm);
	int ret;
	int ret;


	rtc_tm_to_time(tm, &time);

	/* Disable RTC first */
	/* Disable RTC first */
	ret = snvs_rtc_enable(data, false);
	ret = snvs_rtc_enable(data, false);
	if (ret)
	if (ret)
@@ -185,7 +183,7 @@ static int snvs_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
	u32 lptar, lpsr;
	u32 lptar, lpsr;


	regmap_read(data->regmap, data->offset + SNVS_LPTAR, &lptar);
	regmap_read(data->regmap, data->offset + SNVS_LPTAR, &lptar);
	rtc_time_to_tm(lptar, &alrm->time);
	rtc_time64_to_tm(lptar, &alrm->time);


	regmap_read(data->regmap, data->offset + SNVS_LPSR, &lpsr);
	regmap_read(data->regmap, data->offset + SNVS_LPSR, &lpsr);
	alrm->pending = (lpsr & SNVS_LPSR_LPTA) ? 1 : 0;
	alrm->pending = (lpsr & SNVS_LPSR_LPTA) ? 1 : 0;
@@ -207,12 +205,9 @@ static int snvs_rtc_alarm_irq_enable(struct device *dev, unsigned int enable)
static int snvs_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
static int snvs_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{
{
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	struct snvs_rtc_data *data = dev_get_drvdata(dev);
	struct rtc_time *alrm_tm = &alrm->time;
	unsigned long time = rtc_tm_to_time64(&alrm->time);
	unsigned long time;
	int ret;
	int ret;


	rtc_tm_to_time(alrm_tm, &time);

	regmap_update_bits(data->regmap, data->offset + SNVS_LPCR, SNVS_LPCR_LPTA_EN, 0);
	regmap_update_bits(data->regmap, data->offset + SNVS_LPCR, SNVS_LPCR_LPTA_EN, 0);
	ret = rtc_write_sync_lp(data);
	ret = rtc_write_sync_lp(data);
	if (ret)
	if (ret)