OSDN Git Service

power: supply: bq25890: Fix initial setting of the F_CONV_RATE field
authorHans de Goede <hdegoede@redhat.com>
Sat, 30 Oct 2021 18:28:04 +0000 (20:28 +0200)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 2 Nov 2021 15:48:47 +0000 (16:48 +0100)
The code doing the initial setting of the F_CONV_RATE field based
on the bq->state.online flag. In order for this to work properly,
this must be done after the initial bq25890_get_chip_state() call.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/bq25890_charger.c

index 42d82be..34ec186 100644 (file)
@@ -682,16 +682,16 @@ static int bq25890_hw_init(struct bq25890_device *bq)
                }
        }
 
-       /* Configure ADC for continuous conversions when charging */
-       ret = bq25890_field_write(bq, F_CONV_RATE, !!bq->state.online);
+       ret = bq25890_get_chip_state(bq, &bq->state);
        if (ret < 0) {
-               dev_dbg(bq->dev, "Config ADC failed %d\n", ret);
+               dev_dbg(bq->dev, "Get state failed %d\n", ret);
                return ret;
        }
 
-       ret = bq25890_get_chip_state(bq, &bq->state);
+       /* Configure ADC for continuous conversions when charging */
+       ret = bq25890_field_write(bq, F_CONV_RATE, !!bq->state.online);
        if (ret < 0) {
-               dev_dbg(bq->dev, "Get state failed %d\n", ret);
+               dev_dbg(bq->dev, "Config ADC failed %d\n", ret);
                return ret;
        }