diff options
-rw-r--r-- | drivers/power/supply/bq24190_charger.c | 46 |
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) |