aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/power/supply/bq24190_charger.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
index 5659b831720f..50171fd3cc6d 100644
--- a/drivers/power/supply/bq24190_charger.c
+++ b/drivers/power/supply/bq24190_charger.c
@@ -1175,29 +1175,6 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
1175 goto out; 1175 goto out;
1176 } 1176 }
1177 1177
1178 if (ss_reg != bdi->ss_reg) {
1179 /*
1180 * The device is in host mode so when PG_STAT goes from 1->0
1181 * (i.e., power removed) HIZ needs to be disabled.
1182 */
1183 if ((bdi->ss_reg & BQ24190_REG_SS_PG_STAT_MASK) &&
1184 !(ss_reg & BQ24190_REG_SS_PG_STAT_MASK)) {
1185 ret = bq24190_write_mask(bdi, BQ24190_REG_ISC,
1186 BQ24190_REG_ISC_EN_HIZ_MASK,
1187 BQ24190_REG_ISC_EN_HIZ_SHIFT,
1188 0);
1189 if (ret < 0)
1190 dev_err(bdi->dev, "Can't access ISC reg: %d\n",
1191 ret);
1192 }
1193
1194 if ((bdi->ss_reg & battery_mask_ss) != (ss_reg & battery_mask_ss))
1195 alert_battery = true;
1196 if ((bdi->ss_reg & ~battery_mask_ss) != (ss_reg & ~battery_mask_ss))
1197 alert_charger = true;
1198 bdi->ss_reg = ss_reg;
1199 }
1200
1201 i = 0; 1178 i = 0;
1202 do { 1179 do {
1203 ret = bq24190_read(bdi, BQ24190_REG_F, &f_reg); 1180 ret = bq24190_read(bdi, BQ24190_REG_F, &f_reg);
@@ -1224,6 +1201,29 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
1224 mutex_unlock(&bdi->f_reg_lock); 1201 mutex_unlock(&bdi->f_reg_lock);
1225 } 1202 }
1226 1203
1204 if (ss_reg != bdi->ss_reg) {
1205 /*
1206 * The device is in host mode so when PG_STAT goes from 1->0
1207 * (i.e., power removed) HIZ needs to be disabled.
1208 */
1209 if ((bdi->ss_reg & BQ24190_REG_SS_PG_STAT_MASK) &&
1210 !(ss_reg & BQ24190_REG_SS_PG_STAT_MASK)) {
1211 ret = bq24190_write_mask(bdi, BQ24190_REG_ISC,
1212 BQ24190_REG_ISC_EN_HIZ_MASK,
1213 BQ24190_REG_ISC_EN_HIZ_SHIFT,
1214 0);
1215 if (ret < 0)
1216 dev_err(bdi->dev, "Can't access ISC reg: %d\n",
1217 ret);
1218 }
1219
1220 if ((bdi->ss_reg & battery_mask_ss) != (ss_reg & battery_mask_ss))
1221 alert_battery = true;
1222 if ((bdi->ss_reg & ~battery_mask_ss) != (ss_reg & ~battery_mask_ss))
1223 alert_charger = true;
1224 bdi->ss_reg = ss_reg;
1225 }
1226
1227 if (alert_charger) 1227 if (alert_charger)
1228 power_supply_changed(bdi->charger); 1228 power_supply_changed(bdi->charger);
1229 if (alert_battery) 1229 if (alert_battery)