| From b98bc40758126e47e8cceaebeeac1440cdcb6a5c Mon Sep 17 00:00:00 2001 |
| From: Guy Shapiro <guy.shapiro@mobi-wize.com> |
| Date: Sun, 29 Jan 2017 11:57:19 +0200 |
| Subject: rtc: snvs: add a missing write sync |
| |
| [ Upstream commit 7bb633b1a9812a6b9f3e49d0cf17f60a633914e5 ] |
| |
| The clear of the LPTA_EN flag should be synced before writing to the |
| alarm register. Omitting this synchronization creates a race when |
| trying to change existing alarm. |
| |
| Signed-off-by: Guy Shapiro <guy.shapiro@mobi-wize.com> |
| Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/rtc/rtc-snvs.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/rtc/rtc-snvs.c b/drivers/rtc/rtc-snvs.c |
| index a161fbf6f172..af131682dbc9 100644 |
| --- a/drivers/rtc/rtc-snvs.c |
| +++ b/drivers/rtc/rtc-snvs.c |
| @@ -187,6 +187,7 @@ static int snvs_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) |
| rtc_tm_to_time(alrm_tm, &time); |
| |
| regmap_update_bits(data->regmap, data->offset + SNVS_LPCR, SNVS_LPCR_LPTA_EN, 0); |
| + rtc_write_sync_lp(data); |
| regmap_write(data->regmap, data->offset + SNVS_LPTAR, time); |
| |
| /* Clear alarm interrupt status bit */ |
| -- |
| 2.19.1 |
| |