diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c index 86f656131ae57cc5c52e6d7ff87e24dd8825a533..2c0cf18cd37aadbef23a2eb94369307ade446e35 100644 --- a/drivers/power/qpnp-charger.c +++ b/drivers/power/qpnp-charger.c @@ -2421,7 +2421,11 @@ get_prop_current_now(struct qpnp_chg_chip *chip) if (chip->bms_psy) { chip->bms_psy->get_property(chip->bms_psy, POWER_SUPPLY_PROP_CURRENT_NOW, &ret); - return ret.intval; + /* + * qpnp-charger's sign of ibat convention + * is opposite of power_supply's CURRENT_NOW + */ + return -1 * ret.intval; } else { pr_debug("No BMS supply registered return 0\n"); } @@ -2693,7 +2697,8 @@ qpnp_batt_power_get_property(struct power_supply *psy, val->intval = get_prop_capacity(chip); break; case POWER_SUPPLY_PROP_CURRENT_NOW: - val->intval = get_prop_current_now(chip); + /* positive value indicate current entering battery */ + val->intval = -1 * get_prop_current_now(chip); break; case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: val->intval = get_prop_full_design(chip);