diff mbox series

rtc: isl1208: Fix incorrect logic in isl1208_set_xtoscb()

Message ID 20230817161038.407960-1-biju.das.jz@bp.renesas.com
State Accepted
Headers show
Series rtc: isl1208: Fix incorrect logic in isl1208_set_xtoscb() | expand

Commit Message

Biju Das Aug. 17, 2023, 4:10 p.m. UTC
The XTOSCB bit is not bit 0, but xtosb_val is either 0 or 1. If it is 1,
test will never succeed. Fix this issue by using double negation.

While at it, remove unnecessary blank line from probe().

Reported-by: Pavel Machek <pavel@denx.de>
Closes: https://lore.kernel.org/all/ZN4BgzG2xmzOzdFZ@duo.ucw.cz/
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
 drivers/rtc/rtc-isl1208.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Pavel Machek Aug. 18, 2023, 7:02 a.m. UTC | #1
On Thu 2023-08-17 17:10:38, Biju Das wrote:
> The XTOSCB bit is not bit 0, but xtosb_val is either 0 or 1. If it is 1,
> test will never succeed. Fix this issue by using double negation.
> 
> While at it, remove unnecessary blank line from probe().

Reviewed-by: Pavel Machek <pavel@denx.de>

Thank you!

Best regards,
								Pavel

> +++ b/drivers/rtc/rtc-isl1208.c
> @@ -188,7 +188,7 @@ isl1208_i2c_validate_client(struct i2c_client *client)
>  static int isl1208_set_xtoscb(struct i2c_client *client, int sr, int xtosb_val)
>  {
>  	/* Do nothing if bit is already set to desired value */
> -	if ((sr & ISL1208_REG_SR_XTOSCB) == xtosb_val)
> +	if (!!(sr & ISL1208_REG_SR_XTOSCB) == xtosb_val)
>  		return 0;
>  
>  	if (xtosb_val)
> @@ -944,7 +944,6 @@ isl1208_probe(struct i2c_client *client)
>  		rc = isl1208_setup_irq(client, client->irq);
>  		if (rc)
>  			return rc;
> -
>  	} else {
>  		clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, isl1208->rtc->features);
>  	}
Alexandre Belloni Aug. 27, 2023, 9:49 p.m. UTC | #2
On Thu, 17 Aug 2023 17:10:38 +0100, Biju Das wrote:
> The XTOSCB bit is not bit 0, but xtosb_val is either 0 or 1. If it is 1,
> test will never succeed. Fix this issue by using double negation.
> 
> While at it, remove unnecessary blank line from probe().
> 
> 

Applied, thanks!

[1/1] rtc: isl1208: Fix incorrect logic in isl1208_set_xtoscb()
      commit: f45d32d2cd183c09b6c9aa8689a91d6f2760b557

Best regards,
diff mbox series

Patch

diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index 712ca652d6d3..e50c23ee1646 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -188,7 +188,7 @@  isl1208_i2c_validate_client(struct i2c_client *client)
 static int isl1208_set_xtoscb(struct i2c_client *client, int sr, int xtosb_val)
 {
 	/* Do nothing if bit is already set to desired value */
-	if ((sr & ISL1208_REG_SR_XTOSCB) == xtosb_val)
+	if (!!(sr & ISL1208_REG_SR_XTOSCB) == xtosb_val)
 		return 0;
 
 	if (xtosb_val)
@@ -944,7 +944,6 @@  isl1208_probe(struct i2c_client *client)
 		rc = isl1208_setup_irq(client, client->irq);
 		if (rc)
 			return rc;
-
 	} else {
 		clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, isl1208->rtc->features);
 	}