power: supply: cpcap-charger: Drop internal state and use generic stats
authorTony Lindgren <tony@atomide.com>
Sun, 10 Jan 2021 19:53:55 +0000 (21:53 +0200)
committerSebastian Reichel <sre@kernel.org>
Thu, 14 Jan 2021 22:42:42 +0000 (23:42 +0100)
We currently have both state and status, get rid of state and use
generic status instead.

Cc: Arthur Demchenkov <spinal.by@gmail.com>
Cc: Carl Philipp Klemm <philipp@uvos.xyz>
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/cpcap-charger.c

index 81270edfd10663ce2acd42b4da89cb639c81984b..8baa39b8afc27627f09dfcbace8d5e7ed22ff7cd 100644 (file)
@@ -140,7 +140,6 @@ struct cpcap_charger_ddata {
        atomic_t active;
 
        int status;
-       int state;
        int voltage;
        int limit_current;
 };
@@ -386,6 +385,39 @@ static void cpcap_charger_set_inductive_path(struct cpcap_charger_ddata *ddata,
        gpiod_set_value(ddata->gpio[1], enabled);
 }
 
+static void cpcap_charger_update_state(struct cpcap_charger_ddata *ddata,
+                                      int state)
+{
+       const char *status;
+
+       if (state > POWER_SUPPLY_STATUS_FULL) {
+               dev_warn(ddata->dev, "unknown state: %i\n", state);
+
+               return;
+       }
+
+       ddata->status = state;
+
+       switch (state) {
+       case POWER_SUPPLY_STATUS_DISCHARGING:
+               status = "DISCONNECTED";
+               break;
+       case POWER_SUPPLY_STATUS_NOT_CHARGING:
+               status = "DETECTING";
+               break;
+       case POWER_SUPPLY_STATUS_CHARGING:
+               status = "CHARGING";
+               break;
+       case POWER_SUPPLY_STATUS_FULL:
+               status = "DONE";
+               break;
+       default:
+               return;
+       }
+
+       dev_dbg(ddata->dev, "state: %s\n", status);
+}
+
 static int cpcap_charger_set_state(struct cpcap_charger_ddata *ddata,
                                   int max_voltage, int charge_current,
                                   int trickle_current)
@@ -402,11 +434,13 @@ static int cpcap_charger_set_state(struct cpcap_charger_ddata *ddata,
                                           CPCAP_REG_CRM_FET_OVRD |
                                           CPCAP_REG_CRM_FET_CTRL);
                if (error) {
-                       ddata->status = POWER_SUPPLY_STATUS_UNKNOWN;
+                       cpcap_charger_update_state(ddata,
+                                                  POWER_SUPPLY_STATUS_UNKNOWN);
                        goto out_err;
                }
 
-               ddata->status = POWER_SUPPLY_STATUS_DISCHARGING;
+               cpcap_charger_update_state(ddata,
+                                          POWER_SUPPLY_STATUS_DISCHARGING);
 
                return 0;
        }
@@ -419,11 +453,13 @@ static int cpcap_charger_set_state(struct cpcap_charger_ddata *ddata,
                                   max_voltage |
                                   charge_current);
        if (error) {
-               ddata->status = POWER_SUPPLY_STATUS_UNKNOWN;
+               cpcap_charger_update_state(ddata,
+                                          POWER_SUPPLY_STATUS_UNKNOWN);
                goto out_err;
        }
 
-       ddata->status = POWER_SUPPLY_STATUS_CHARGING;
+       cpcap_charger_update_state(ddata,
+                                  POWER_SUPPLY_STATUS_CHARGING);
 
        return 0;
 
@@ -555,39 +591,6 @@ static int cpcap_charger_get_ints_state(struct cpcap_charger_ddata *ddata,
        return 0;
 }
 
-static void cpcap_charger_update_state(struct cpcap_charger_ddata *ddata,
-                                      int state)
-{
-       const char *status;
-
-       if (state > POWER_SUPPLY_STATUS_FULL) {
-               dev_warn(ddata->dev, "unknown state: %i\n", state);
-
-               return;
-       }
-
-       ddata->state = state;
-
-       switch (state) {
-       case POWER_SUPPLY_STATUS_DISCHARGING:
-               status = "DISCONNECTED";
-               break;
-       case POWER_SUPPLY_STATUS_NOT_CHARGING:
-               status = "DETECTING";
-               break;
-       case POWER_SUPPLY_STATUS_CHARGING:
-               status = "CHARGING";
-               break;
-       case POWER_SUPPLY_STATUS_FULL:
-               status = "DONE";
-               break;
-       default:
-               return;
-       }
-
-       dev_dbg(ddata->dev, "state: %s\n", status);
-}
-
 static int cpcap_charger_voltage_to_regval(int voltage)
 {
        int offset;
@@ -662,7 +665,7 @@ static void cpcap_usb_detect(struct work_struct *work)
        }
 
        /* Throttle chrgcurr2 interrupt for charger done and retry */
-       switch (ddata->state) {
+       switch (ddata->status) {
        case POWER_SUPPLY_STATUS_CHARGING:
                if (s.chrgcurr2)
                        break;