All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] rtc: rx8111: demote warnings to debug level
@ 2024-04-17 19:19 alexandre.belloni
  2024-04-17 19:19 ` [PATCH 2/2] rtc: rx8111: handle VLOW flag alexandre.belloni
  2024-04-19 11:02 ` [PATCH 1/2] rtc: rx8111: demote warnings to debug level Waqar Hameed
  0 siblings, 2 replies; 4+ messages in thread
From: alexandre.belloni @ 2024-04-17 19:19 UTC (permalink / raw)
  To: Alexandre Belloni; +Cc: Waqar Hameed, linux-rtc, linux-kernel

From: Alexandre Belloni <alexandre.belloni@bootlin.com>

The proper way for userspace to react on a read time error is to have a
look at the voltage low information. There is no point in cluttering dmesg
as it is often not even visible to the end user.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
---
 drivers/rtc/rtc-rx8111.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/rtc/rtc-rx8111.c b/drivers/rtc/rtc-rx8111.c
index 62d2352de102..4a35bd921b33 100644
--- a/drivers/rtc/rtc-rx8111.c
+++ b/drivers/rtc/rtc-rx8111.c
@@ -170,14 +170,14 @@ static int rx8111_read_time(struct device *dev, struct rtc_time *tm)
 	}
 
 	if (FIELD_GET(RX8111_FLAG_XST_BIT, regval)) {
-		dev_warn(data->dev,
-			 "Crystal oscillation stopped, time is not reliable\n");
+		dev_dbg(data->dev,
+			"Crystal oscillation stopped, time is not reliable\n");
 		return -EINVAL;
 	}
 
 	if (FIELD_GET(RX8111_FLAG_VLF_BIT, regval)) {
-		dev_warn(data->dev,
-			 "Low voltage detected, time is not reliable\n");
+		dev_dbg(data->dev,
+			"Low voltage detected, time is not reliable\n");
 		return -EINVAL;
 	}
 
@@ -188,7 +188,7 @@ static int rx8111_read_time(struct device *dev, struct rtc_time *tm)
 	}
 
 	if (regval) {
-		dev_warn(data->dev, "Clock stopped, time is not reliable\n");
+		dev_dbg(data->dev, "Clock stopped, time is not reliable\n");
 		return -EINVAL;
 	}
 
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] rtc: rx8111: handle VLOW flag
  2024-04-17 19:19 [PATCH 1/2] rtc: rx8111: demote warnings to debug level alexandre.belloni
@ 2024-04-17 19:19 ` alexandre.belloni
  2024-04-19 11:04   ` Waqar Hameed
  2024-04-19 11:02 ` [PATCH 1/2] rtc: rx8111: demote warnings to debug level Waqar Hameed
  1 sibling, 1 reply; 4+ messages in thread
From: alexandre.belloni @ 2024-04-17 19:19 UTC (permalink / raw)
  To: Alexandre Belloni; +Cc: Waqar Hameed, linux-rtc, linux-kernel

From: Alexandre Belloni <alexandre.belloni@bootlin.com>

Allow userspace to get battery status information and be able to warn when
battery is low and has to be replaced.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
---
 drivers/rtc/rtc-rx8111.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/rtc/rtc-rx8111.c b/drivers/rtc/rtc-rx8111.c
index 4a35bd921b33..8450d9f0b566 100644
--- a/drivers/rtc/rtc-rx8111.c
+++ b/drivers/rtc/rtc-rx8111.c
@@ -95,6 +95,9 @@ enum rx8111_regfield {
 	RX8111_REGF_INIEN,
 	RX8111_REGF_CHGEN,
 
+	/* RX8111_REG_STATUS_MON. */
+	RX8111_REGF_VLOW,
+
 	/* Sentinel value. */
 	RX8111_REGF_MAX
 };
@@ -129,6 +132,8 @@ static const struct reg_field rx8111_regfields[] = {
 	[RX8111_REGF_SWSEL1] = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 3, 3),
 	[RX8111_REGF_INIEN]  = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 6, 6),
 	[RX8111_REGF_CHGEN]  = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 7, 7),
+
+	[RX8111_REGF_VLOW]  = REG_FIELD(RX8111_REG_STATUS_MON, 1, 1),
 };
 
 static const struct regmap_config rx8111_regmap_config = {
@@ -276,6 +281,13 @@ static int rx8111_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
 
 		vlval = regval ? RTC_VL_DATA_INVALID : 0;
 
+		ret = regmap_field_read(data->regfields[RX8111_REGF_VLOW],
+					&regval);
+		if (ret)
+			return ret;
+
+		vlval |= regval ? RTC_VL_BACKUP_LOW : 0;
+
 		return put_user(vlval, (typeof(vlval) __user *)arg);
 	default:
 		return -ENOIOCTLCMD;
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] rtc: rx8111: demote warnings to debug level
  2024-04-17 19:19 [PATCH 1/2] rtc: rx8111: demote warnings to debug level alexandre.belloni
  2024-04-17 19:19 ` [PATCH 2/2] rtc: rx8111: handle VLOW flag alexandre.belloni
@ 2024-04-19 11:02 ` Waqar Hameed
  1 sibling, 0 replies; 4+ messages in thread
From: Waqar Hameed @ 2024-04-19 11:02 UTC (permalink / raw)
  To: alexandre.belloni; +Cc: linux-rtc, linux-kernel

On Wed, Apr 17, 2024 at 21:19 +0200 alexandre.belloni@bootlin.com wrote:

> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
>
> The proper way for userspace to react on a read time error is to have a
> look at the voltage low information. There is no point in cluttering dmesg
> as it is often not even visible to the end user.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> ---
>  drivers/rtc/rtc-rx8111.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/rtc/rtc-rx8111.c b/drivers/rtc/rtc-rx8111.c
> index 62d2352de102..4a35bd921b33 100644
> --- a/drivers/rtc/rtc-rx8111.c
> +++ b/drivers/rtc/rtc-rx8111.c
> @@ -170,14 +170,14 @@ static int rx8111_read_time(struct device *dev, struct rtc_time *tm)
>  	}
>  
>  	if (FIELD_GET(RX8111_FLAG_XST_BIT, regval)) {
> -		dev_warn(data->dev,
> -			 "Crystal oscillation stopped, time is not reliable\n");
> +		dev_dbg(data->dev,
> +			"Crystal oscillation stopped, time is not reliable\n");
>  		return -EINVAL;
>  	}
>  
>  	if (FIELD_GET(RX8111_FLAG_VLF_BIT, regval)) {
> -		dev_warn(data->dev,
> -			 "Low voltage detected, time is not reliable\n");
> +		dev_dbg(data->dev,
> +			"Low voltage detected, time is not reliable\n");
>  		return -EINVAL;
>  	}
>  
> @@ -188,7 +188,7 @@ static int rx8111_read_time(struct device *dev, struct rtc_time *tm)
>  	}
>  
>  	if (regval) {
> -		dev_warn(data->dev, "Clock stopped, time is not reliable\n");
> +		dev_dbg(data->dev, "Clock stopped, time is not reliable\n");
>  		return -EINVAL;
>  	}

There are several other drivers that uses `dev_warn()` in these cases,
and it was just followed here as well. I agree with you here though!

Reviewed-by: Waqar Hameed <waqar.hameed@axis.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] rtc: rx8111: handle VLOW flag
  2024-04-17 19:19 ` [PATCH 2/2] rtc: rx8111: handle VLOW flag alexandre.belloni
@ 2024-04-19 11:04   ` Waqar Hameed
  0 siblings, 0 replies; 4+ messages in thread
From: Waqar Hameed @ 2024-04-19 11:04 UTC (permalink / raw)
  To: alexandre.belloni; +Cc: linux-rtc, linux-kernel

On Wed, Apr 17, 2024 at 21:19 +0200 alexandre.belloni@bootlin.com wrote:

> From: Alexandre Belloni <alexandre.belloni@bootlin.com>
>
> Allow userspace to get battery status information and be able to warn when
> battery is low and has to be replaced.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> ---
>  drivers/rtc/rtc-rx8111.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/rtc/rtc-rx8111.c b/drivers/rtc/rtc-rx8111.c
> index 4a35bd921b33..8450d9f0b566 100644
> --- a/drivers/rtc/rtc-rx8111.c
> +++ b/drivers/rtc/rtc-rx8111.c
> @@ -95,6 +95,9 @@ enum rx8111_regfield {
>  	RX8111_REGF_INIEN,
>  	RX8111_REGF_CHGEN,
>  
> +	/* RX8111_REG_STATUS_MON. */
> +	RX8111_REGF_VLOW,
> +
>  	/* Sentinel value. */
>  	RX8111_REGF_MAX
>  };
> @@ -129,6 +132,8 @@ static const struct reg_field rx8111_regfields[] = {
>  	[RX8111_REGF_SWSEL1] = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 3, 3),
>  	[RX8111_REGF_INIEN]  = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 6, 6),
>  	[RX8111_REGF_CHGEN]  = REG_FIELD(RX8111_REG_PWR_SWITCH_CTRL, 7, 7),
> +
> +	[RX8111_REGF_VLOW]  = REG_FIELD(RX8111_REG_STATUS_MON, 1, 1),
>  };
>  
>  static const struct regmap_config rx8111_regmap_config = {
> @@ -276,6 +281,13 @@ static int rx8111_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
>  
>  		vlval = regval ? RTC_VL_DATA_INVALID : 0;
>  
> +		ret = regmap_field_read(data->regfields[RX8111_REGF_VLOW],
> +					&regval);
> +		if (ret)
> +			return ret;
> +
> +		vlval |= regval ? RTC_VL_BACKUP_LOW : 0;
> +
>  		return put_user(vlval, (typeof(vlval) __user *)arg);
>  	default:
>  		return -ENOIOCTLCMD;

Looks good to me!

Tested-by: Waqar Hameed <waqar.hameed@axis.com>
Reviewed-by: Waqar Hameed <waqar.hameed@axis.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-19 11:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-17 19:19 [PATCH 1/2] rtc: rx8111: demote warnings to debug level alexandre.belloni
2024-04-17 19:19 ` [PATCH 2/2] rtc: rx8111: handle VLOW flag alexandre.belloni
2024-04-19 11:04   ` Waqar Hameed
2024-04-19 11:02 ` [PATCH 1/2] rtc: rx8111: demote warnings to debug level Waqar Hameed

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.