Loading drivers/power/supply/qcom/fg-memif.c +3 −0 Original line number Diff line number Diff line Loading @@ -1273,6 +1273,9 @@ static int fg_dma_init(struct fg_dev *fg) int fg_memif_init(struct fg_dev *fg) { if (fg->battery_missing) return 0; if (fg->use_dma) return fg_dma_init(fg); Loading drivers/power/supply/qcom/fg-util.c +22 −19 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ int fg_get_sram_prop(struct fg_dev *fg, enum fg_sram_param_id id, return -EINVAL; if (fg->battery_missing) return -ENODATA; return 0; rc = fg_sram_read(fg, fg->sp[id].addr_word, fg->sp[id].addr_byte, buf, fg->sp[id].len, FG_IMA_DEFAULT); Loading Loading @@ -353,6 +353,7 @@ void fg_notify_charger(struct fg_dev *fg) if (!fg->profile_available) return; if (fg->bp.float_volt_uv > 0) { prop.intval = fg->bp.float_volt_uv; rc = power_supply_set_property(fg->batt_psy, POWER_SUPPLY_PROP_VOLTAGE_MAX, &prop); Loading @@ -361,17 +362,19 @@ void fg_notify_charger(struct fg_dev *fg) rc); return; } } if (fg->bp.fastchg_curr_ma > 0) { prop.intval = fg->bp.fastchg_curr_ma * 1000; rc = power_supply_set_property(fg->batt_psy, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, &prop); POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, &prop); if (rc < 0) { pr_err("Error in setting constant_charge_current_max property on batt_psy, rc=%d\n", rc); return; } fg_dbg(fg, FG_STATUS, "Notified charger on float voltage and FCC\n"); } } bool batt_psy_initialized(struct fg_dev *fg) Loading Loading @@ -512,7 +515,7 @@ int fg_sram_write(struct fg_dev *fg, u16 address, u8 offset, return -ENXIO; if (fg->battery_missing) return -ENODATA; return 0; if (!fg_sram_address_valid(fg, address, len)) return -EFAULT; Loading Loading @@ -595,7 +598,7 @@ int fg_sram_read(struct fg_dev *fg, u16 address, u8 offset, return -ENXIO; if (fg->battery_missing) return -ENODATA; return 0; if (!fg_sram_address_valid(fg, address, len)) return -EFAULT; Loading drivers/power/supply/qcom/qpnp-fg-gen4.c +30 −1 Original line number Diff line number Diff line Loading @@ -2967,6 +2967,11 @@ static void status_change_work(struct work_struct *work) int rc, batt_soc, batt_temp; bool input_present, qnovo_en; if (fg->battery_missing) { pm_relax(fg->dev); return; } if (!chip->pl_disable_votable) chip->pl_disable_votable = find_votable("PL_DISABLE"); Loading Loading @@ -3093,6 +3098,13 @@ static int fg_sram_dump_sysfs(const char *val, const struct kernel_param *kp) chip = power_supply_get_drvdata(bms_psy); fg = &chip->fg; power_supply_put(bms_psy); if (fg->battery_missing) { pr_warn("Battery is missing\n"); return 0; } if (fg_sram_dump) schedule_delayed_work(&fg->sram_dump_work, msecs_to_jiffies(fg_sram_dump_period_ms)); Loading Loading @@ -3135,6 +3147,7 @@ static int fg_restart_sysfs(const char *val, const struct kernel_param *kp) chip = power_supply_get_drvdata(bms_psy); fg = &chip->fg; power_supply_put(bms_psy); rc = fg_restart(fg, SOC_READY_WAIT_TIME_MS); if (rc < 0) { pr_err("Error in restarting FG, rc=%d\n", rc); Loading Loading @@ -3175,6 +3188,8 @@ static int fg_esr_fast_cal_sysfs(const char *val, const struct kernel_param *kp) } chip = power_supply_get_drvdata(bms_psy); power_supply_put(bms_psy); if (!chip) return -ENODEV; Loading Loading @@ -3613,6 +3628,19 @@ static int fg_gen4_hw_init(struct fg_gen4_chip *chip) int rc; u8 buf[4], val, mask; rc = fg_read(fg, ADC_RR_INT_RT_STS(fg), &val, 1); if (rc < 0) { pr_err("failed to read addr=0x%04x, rc=%d\n", ADC_RR_INT_RT_STS(fg), rc); return rc; } fg->battery_missing = (val & ADC_RR_BT_MISS_BIT); if (fg->battery_missing) { pr_warn("Not initializing FG because of battery missing\n"); return 0; } fg_encode(fg->sp, FG_SRAM_CUTOFF_VOLT, chip->dt.cutoff_volt_mv, buf); rc = fg_sram_write(fg, fg->sp[FG_SRAM_CUTOFF_VOLT].addr_word, fg->sp[FG_SRAM_CUTOFF_VOLT].addr_byte, buf, Loading Loading @@ -4554,6 +4582,7 @@ static int fg_gen4_probe(struct platform_device *pdev) } device_init_wakeup(fg->dev, true); if (!fg->battery_missing) schedule_delayed_work(&fg->profile_load_work, 0); pr_debug("FG GEN4 driver probed successfully\n"); Loading Loading
drivers/power/supply/qcom/fg-memif.c +3 −0 Original line number Diff line number Diff line Loading @@ -1273,6 +1273,9 @@ static int fg_dma_init(struct fg_dev *fg) int fg_memif_init(struct fg_dev *fg) { if (fg->battery_missing) return 0; if (fg->use_dma) return fg_dma_init(fg); Loading
drivers/power/supply/qcom/fg-util.c +22 −19 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ int fg_get_sram_prop(struct fg_dev *fg, enum fg_sram_param_id id, return -EINVAL; if (fg->battery_missing) return -ENODATA; return 0; rc = fg_sram_read(fg, fg->sp[id].addr_word, fg->sp[id].addr_byte, buf, fg->sp[id].len, FG_IMA_DEFAULT); Loading Loading @@ -353,6 +353,7 @@ void fg_notify_charger(struct fg_dev *fg) if (!fg->profile_available) return; if (fg->bp.float_volt_uv > 0) { prop.intval = fg->bp.float_volt_uv; rc = power_supply_set_property(fg->batt_psy, POWER_SUPPLY_PROP_VOLTAGE_MAX, &prop); Loading @@ -361,17 +362,19 @@ void fg_notify_charger(struct fg_dev *fg) rc); return; } } if (fg->bp.fastchg_curr_ma > 0) { prop.intval = fg->bp.fastchg_curr_ma * 1000; rc = power_supply_set_property(fg->batt_psy, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, &prop); POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, &prop); if (rc < 0) { pr_err("Error in setting constant_charge_current_max property on batt_psy, rc=%d\n", rc); return; } fg_dbg(fg, FG_STATUS, "Notified charger on float voltage and FCC\n"); } } bool batt_psy_initialized(struct fg_dev *fg) Loading Loading @@ -512,7 +515,7 @@ int fg_sram_write(struct fg_dev *fg, u16 address, u8 offset, return -ENXIO; if (fg->battery_missing) return -ENODATA; return 0; if (!fg_sram_address_valid(fg, address, len)) return -EFAULT; Loading Loading @@ -595,7 +598,7 @@ int fg_sram_read(struct fg_dev *fg, u16 address, u8 offset, return -ENXIO; if (fg->battery_missing) return -ENODATA; return 0; if (!fg_sram_address_valid(fg, address, len)) return -EFAULT; Loading
drivers/power/supply/qcom/qpnp-fg-gen4.c +30 −1 Original line number Diff line number Diff line Loading @@ -2967,6 +2967,11 @@ static void status_change_work(struct work_struct *work) int rc, batt_soc, batt_temp; bool input_present, qnovo_en; if (fg->battery_missing) { pm_relax(fg->dev); return; } if (!chip->pl_disable_votable) chip->pl_disable_votable = find_votable("PL_DISABLE"); Loading Loading @@ -3093,6 +3098,13 @@ static int fg_sram_dump_sysfs(const char *val, const struct kernel_param *kp) chip = power_supply_get_drvdata(bms_psy); fg = &chip->fg; power_supply_put(bms_psy); if (fg->battery_missing) { pr_warn("Battery is missing\n"); return 0; } if (fg_sram_dump) schedule_delayed_work(&fg->sram_dump_work, msecs_to_jiffies(fg_sram_dump_period_ms)); Loading Loading @@ -3135,6 +3147,7 @@ static int fg_restart_sysfs(const char *val, const struct kernel_param *kp) chip = power_supply_get_drvdata(bms_psy); fg = &chip->fg; power_supply_put(bms_psy); rc = fg_restart(fg, SOC_READY_WAIT_TIME_MS); if (rc < 0) { pr_err("Error in restarting FG, rc=%d\n", rc); Loading Loading @@ -3175,6 +3188,8 @@ static int fg_esr_fast_cal_sysfs(const char *val, const struct kernel_param *kp) } chip = power_supply_get_drvdata(bms_psy); power_supply_put(bms_psy); if (!chip) return -ENODEV; Loading Loading @@ -3613,6 +3628,19 @@ static int fg_gen4_hw_init(struct fg_gen4_chip *chip) int rc; u8 buf[4], val, mask; rc = fg_read(fg, ADC_RR_INT_RT_STS(fg), &val, 1); if (rc < 0) { pr_err("failed to read addr=0x%04x, rc=%d\n", ADC_RR_INT_RT_STS(fg), rc); return rc; } fg->battery_missing = (val & ADC_RR_BT_MISS_BIT); if (fg->battery_missing) { pr_warn("Not initializing FG because of battery missing\n"); return 0; } fg_encode(fg->sp, FG_SRAM_CUTOFF_VOLT, chip->dt.cutoff_volt_mv, buf); rc = fg_sram_write(fg, fg->sp[FG_SRAM_CUTOFF_VOLT].addr_word, fg->sp[FG_SRAM_CUTOFF_VOLT].addr_byte, buf, Loading Loading @@ -4554,6 +4582,7 @@ static int fg_gen4_probe(struct platform_device *pdev) } device_init_wakeup(fg->dev, true); if (!fg->battery_missing) schedule_delayed_work(&fg->profile_load_work, 0); pr_debug("FG GEN4 driver probed successfully\n"); Loading