If the alarm is triggered before the driver gets probed, the alarm
interrupt will be missed and it won't be detected, so clear the
stale interrupt in probe.
Changes in v3:
*clear the interrupt in driver probe
Changes in v2:
*Adapt the V1 patch according to the newest rtc-pm8xxx
link to v2: https://lore.kernel.org/linux-rtc/[email protected]/
Changes in v1:
*During driver probe: read ALARM_EN, read ALARM_DATA, read RTC_RDATA,
if (ALARM_DATA < RTC_DATA), Trigger the alarm event and clear the alarm settins
Link to v1:https://lore.kernel.org/linux-rtc/[email protected]/
Changes in original:
link to original: https://lore.kernel.org/linux-rtc/[email protected]/
Signed-off-by: jianbinz <[email protected]>
---
drivers/rtc/rtc-pm8xxx.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c
index f6b779c12ca7..1b5a96924e57 100644
--- a/drivers/rtc/rtc-pm8xxx.c
+++ b/drivers/rtc/rtc-pm8xxx.c
@@ -527,6 +527,10 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev)
if (rc)
return rc;
+ rc = regmap_update_bits(rtc_dd->regmap, rtc_dd->regs->alarm_ctrl2, PM8xxx_RTC_ALARM_CLEAR, 1);
+ if (rc)
+ return rc;
+
return 0;
}
--
2.17.1
On Thu, Mar 14, 2024 at 11:33:44AM +0800, jianbinz wrote:
> If the alarm is triggered before the driver gets probed, the alarm
> interrupt will be missed and it won't be detected, so clear the
> stale interrupt in probe.
>
> Changes in v3:
The change log goes below the '---' line below.
> *clear the interrupt in driver probe
>
> Changes in v2:
> *Adapt the V1 patch according to the newest rtc-pm8xxx
> link to v2: https://lore.kernel.org/linux-rtc/[email protected]/
>
> Changes in v1:
> *During driver probe: read ALARM_EN, read ALARM_DATA, read RTC_RDATA,
> if (ALARM_DATA < RTC_DATA), Trigger the alarm event and clear the alarm settins
> Link to v1:https://lore.kernel.org/linux-rtc/[email protected]/
>
> Changes in original:
> link to original: https://lore.kernel.org/linux-rtc/[email protected]/
>
> Signed-off-by: jianbinz <[email protected]>
Please use your full name, both for authorship and signed-off.
Your two patches are not sent as a series, and you don't have a
cover-letter, which is expected.
Please read through go/upstream, and start using b4 for preparing your
patches, as this will help you with the practicalities.
> ---
> drivers/rtc/rtc-pm8xxx.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c
> index f6b779c12ca7..1b5a96924e57 100644
> --- a/drivers/rtc/rtc-pm8xxx.c
> +++ b/drivers/rtc/rtc-pm8xxx.c
> @@ -527,6 +527,10 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev)
> if (rc)
> return rc;
>
> + rc = regmap_update_bits(rtc_dd->regmap, rtc_dd->regs->alarm_ctrl2, PM8xxx_RTC_ALARM_CLEAR, 1);
Unless I'm mistaken, this line is over 100 characters, please wrap it.
Please also Cc: [email protected] on your next version.
Regards,
Bjorn
> + if (rc)
> + return rc;
> +
> return 0;
> }
>
> --
> 2.17.1
>