diff mbox series

[1/1] rtc: bbnsm: Enable RTC by default to fix time read failure

Message ID 20241115194858.3837298-1-Frank.Li@nxp.com
State Rejected
Headers show
Series [1/1] rtc: bbnsm: Enable RTC by default to fix time read failure | expand

Commit Message

Frank Li Nov. 15, 2024, 7:48 p.m. UTC
From: Jacky Bai <ping.bai@nxp.com>

Enable the RTC by default even when no valid time is set to ensure the
RTC's time read and alarm functions work properly. Without this, running
hwclock results in the following error:

hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument

Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support")
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 drivers/rtc/rtc-nxp-bbnsm.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Alexandre Belloni Nov. 16, 2024, 7:36 p.m. UTC | #1
On 15/11/2024 14:48:58-0500, Frank Li wrote:
> From: Jacky Bai <ping.bai@nxp.com>
> 
> Enable the RTC by default even when no valid time is set to ensure the
> RTC's time read and alarm functions work properly. Without this, running
> hwclock results in the following error:
> 
> hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument
> 


What is providing your hwclock and which version does it have?


> Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support")
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
>  drivers/rtc/rtc-nxp-bbnsm.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
> index fa3b0328c7a25..6610db2f75125 100644
> --- a/drivers/rtc/rtc-nxp-bbnsm.c
> +++ b/drivers/rtc/rtc-nxp-bbnsm.c
> @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
>  	/* clear all the pending events */
>  	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
>  
> +	/* Enable the Real-Time counter */
> +	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
> +
>  	device_init_wakeup(&pdev->dev, true);
>  	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
>  
> -- 
> 2.34.1
>
Alexandre Belloni Nov. 17, 2024, 10:08 p.m. UTC | #2
On 16/11/2024 20:36:54+0100, Alexandre Belloni wrote:
> On 15/11/2024 14:48:58-0500, Frank Li wrote:
> > From: Jacky Bai <ping.bai@nxp.com>
> > 
> > Enable the RTC by default even when no valid time is set to ensure the
> > RTC's time read and alarm functions work properly. Without this, running
> > hwclock results in the following error:
> > 
> > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument
> > 
> 
> 
> What is providing your hwclock and which version does it have?


This is a bug in util-linux that needs to be fixed.
> 
> 
> > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support")
> > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> >  drivers/rtc/rtc-nxp-bbnsm.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
> > index fa3b0328c7a25..6610db2f75125 100644
> > --- a/drivers/rtc/rtc-nxp-bbnsm.c
> > +++ b/drivers/rtc/rtc-nxp-bbnsm.c
> > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
> >  	/* clear all the pending events */
> >  	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> >  
> > +	/* Enable the Real-Time counter */
> > +	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
> > +
> >  	device_init_wakeup(&pdev->dev, true);
> >  	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> >  
> > -- 
> > 2.34.1
> > 
> 
> -- 
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Frank Li Nov. 18, 2024, 7:25 p.m. UTC | #3
On Sun, Nov 17, 2024 at 11:08:43PM +0100, Alexandre Belloni wrote:
> On 16/11/2024 20:36:54+0100, Alexandre Belloni wrote:
> > On 15/11/2024 14:48:58-0500, Frank Li wrote:
> > > From: Jacky Bai <ping.bai@nxp.com>
> > >
> > > Enable the RTC by default even when no valid time is set to ensure the
> > > RTC's time read and alarm functions work properly. Without this, running
> > > hwclock results in the following error:
> > >
> > > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument
> > >
> >
> >
> > What is providing your hwclock and which version does it have?
>
>
> This is a bug in util-linux that needs to be fixed.

What's suposed/expected beheavor? I think rtc should be enable by default.

Frank

> >
> >
> > > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support")
> > > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> > >  drivers/rtc/rtc-nxp-bbnsm.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
> > > index fa3b0328c7a25..6610db2f75125 100644
> > > --- a/drivers/rtc/rtc-nxp-bbnsm.c
> > > +++ b/drivers/rtc/rtc-nxp-bbnsm.c
> > > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
> > >  	/* clear all the pending events */
> > >  	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> > >
> > > +	/* Enable the Real-Time counter */
> > > +	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
> > > +
> > >  	device_init_wakeup(&pdev->dev, true);
> > >  	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> > >
> > > --
> > > 2.34.1
> > >
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Frank Li Dec. 5, 2024, 5:20 p.m. UTC | #4
On Mon, Nov 18, 2024 at 02:25:13PM -0500, Frank Li wrote:
> On Sun, Nov 17, 2024 at 11:08:43PM +0100, Alexandre Belloni wrote:
> > On 16/11/2024 20:36:54+0100, Alexandre Belloni wrote:
> > > On 15/11/2024 14:48:58-0500, Frank Li wrote:
> > > > From: Jacky Bai <ping.bai@nxp.com>
> > > >
> > > > Enable the RTC by default even when no valid time is set to ensure the
> > > > RTC's time read and alarm functions work properly. Without this, running
> > > > hwclock results in the following error:
> > > >
> > > > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument
> > > >
> > >
> > >
> > > What is providing your hwclock and which version does it have?
> >
> >
> > This is a bug in util-linux that needs to be fixed.

Alexandre:

	I can't understand what your means. Why it is util-linux issue?
This driver return failure at read because check hardware bit RTC_EN.

	I suppose RTC should be always enable after probe?

Frank

>
> What's suposed/expected beheavor? I think rtc should be enable by default.
>
> Frank
>
> > >
> > >
> > > > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support")
> > > > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > > > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
> > > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > > ---
> > > >  drivers/rtc/rtc-nxp-bbnsm.c | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > >
> > > > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
> > > > index fa3b0328c7a25..6610db2f75125 100644
> > > > --- a/drivers/rtc/rtc-nxp-bbnsm.c
> > > > +++ b/drivers/rtc/rtc-nxp-bbnsm.c
> > > > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
> > > >  	/* clear all the pending events */
> > > >  	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> > > >
> > > > +	/* Enable the Real-Time counter */
> > > > +	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
> > > > +
> > > >  	device_init_wakeup(&pdev->dev, true);
> > > >  	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> > > >
> > > > --
> > > > 2.34.1
> > > >
> > >
> > > --
> > > Alexandre Belloni, co-owner and COO, Bootlin
> > > Embedded Linux and Kernel engineering
> > > https://bootlin.com
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
diff mbox series

Patch

diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
index fa3b0328c7a25..6610db2f75125 100644
--- a/drivers/rtc/rtc-nxp-bbnsm.c
+++ b/drivers/rtc/rtc-nxp-bbnsm.c
@@ -189,6 +189,9 @@  static int bbnsm_rtc_probe(struct platform_device *pdev)
 	/* clear all the pending events */
 	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
 
+	/* Enable the Real-Time counter */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
+
 	device_init_wakeup(&pdev->dev, true);
 	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);