RE: [PATCH] rtc-pm8xxx: Clear Alarm register on resume

From: maggarwa
Date: Wed Mar 18 2020 - 05:56:53 EST


Comments inline.

-----Original Message-----
From: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
Sent: Tuesday, March 17, 2020 5:25 PM
To: maggarwa@xxxxxxxxxxxxxx
Cc: a.zummo@xxxxxxxxxxxx; linux-rtc@xxxxxxxxxxxxxxx;
linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH] rtc-pm8xxx: Clear Alarm register on resume

On 17/03/2020 10:20:36+0530, maggarwa@xxxxxxxxxxxxxx wrote:
> Hi,
>
> Comments inline.
>
>
> Thanks & Regards,
> Mohit
>
> -----Original Message-----
> From: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
> Sent: Monday, March 16, 2020 3:59 PM
> To: Mohit Aggarwal <maggarwa@xxxxxxxxxxxxxx>
> Cc: a.zummo@xxxxxxxxxxxx; linux-rtc@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] rtc-pm8xxx: Clear Alarm register on resume
>
> Hi,
>
> On 16/03/2020 12:41:28+0530, Mohit Aggarwal wrote:
> > Currently, alarm register is not cleared on resume leading to reboot
> > during power off charging mode.
> >
> > Change-Id: Ie2e6bbab8aa46e4e9b9cc984181ffab557cbbdae
>
> No Change-Id upstream please.
> [Mohit]: Will fix in next patch.
>
> > Signed-off-by: Mohit Aggarwal <maggarwa@xxxxxxxxxxxxxx>
> > ---
> > drivers/rtc/rtc-pm8xxx.c | 13 ++++++++++++-
> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c
> > index
> > bbe013f..96e7985 100644
> > --- a/drivers/rtc/rtc-pm8xxx.c
> > +++ b/drivers/rtc/rtc-pm8xxx.c
> > @@ -1,5 +1,5 @@
> > // SPDX-License-Identifier: GPL-2.0-only
> > -/* Copyright (c) 2010-2011, 2019, The Linux Foundation. All rights
> > reserved. */
> > +/* Copyright (c) 2010-2011, 2019-2020, The Linux Foundation. All
> > +rights reserved. */
> >
> > #include <linux/of.h>
> > #include <linux/module.h>
> > @@ -301,6 +301,7 @@ static int pm8xxx_rtc_alarm_irq_enable(struct
> > device
> *dev, unsigned int enable)
> > struct pm8xxx_rtc *rtc_dd = dev_get_drvdata(dev);
> > const struct pm8xxx_rtc_regs *regs = rtc_dd->regs;
> > unsigned int ctrl_reg;
> > + u8 value[NUM_8_BIT_RTC_REGS] = {0};
> >
> > spin_lock_irqsave(&rtc_dd->ctrl_reg_lock, irq_flags);
> >
> > @@ -319,6 +320,16 @@ static int pm8xxx_rtc_alarm_irq_enable(struct
> > device
> *dev, unsigned int enable)
> > goto rtc_rw_fail;
> > }
> >
> > + /* Clear Alarm register */
> > + if (!enable) {
> > + rc = regmap_bulk_write(rtc_dd->regmap, regs->alarm_rw,
> value,
> > + sizeof(value));
>
> This is not properly aligned.
> [Mohit]: I don't see any alignment issue at my end. I can see proper
> tabs are present.
>

The alignment should match the opening parenthesis.
[Mohit]: Thanks for clarification. Uploaded new patch.

> > + if (rc) {
> > + dev_err(dev, "Write to RTC ALARM register
> failed\n");
>
> Is that error message necessary? What would be the user action after
> seeing that in the logs? Will the logs actually be seen?
> [Mohit]: In case issue in question reproduces even after this change
> then for debugging purposes user can look out for this error log in
> kernel logs which can help to triage the issue.
>

Who in the field on the final product will see this error message? For
debugging purposes, regmap already provides plenty of tracing facilities.
[Mohit]: This is mostly for debugging issues reported during internal tests
using kernel logs. Also added the debug error log to remain in-line with
other error logs in file.


--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com