diff --git a/drivers/power/qpnp-bms.c b/drivers/power/qpnp-bms.c
index 36026cead3325ba3c4248ad6b467ba1d5811f91b..29e69e55dc73de47603de43386dfdc01bbce2937 100644
--- a/drivers/power/qpnp-bms.c
+++ b/drivers/power/qpnp-bms.c
@@ -2095,7 +2095,7 @@ static int report_cc_based_soc(struct qpnp_bms_chip *chip)
 	backup_soc_and_iavg(chip, batt_temp, chip->last_soc);
 	pr_debug("Reported SOC = %d\n", chip->last_soc);
 	mutex_unlock(&chip->last_soc_mutex);
-	if ((chip->last_soc >= 99) && (chip->calculated_soc >= 98) && (time_since_last_change_sec <= 60)
+	if ((chip->calculated_soc >= 98) && (time_since_last_change_sec <= 60)
 		&& (get_battery_status(chip) == POWER_SUPPLY_STATUS_DISCHARGING) && charge_full == true)
 		return soc_temp;
 	else {
diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c
index 6613305ef63dac5382ecfb7a70c2c76eecfb086e..6f7990d11d79124c4474f02a6841b29064edbce6 100644
--- a/drivers/power/qpnp-charger.c
+++ b/drivers/power/qpnp-charger.c
@@ -2143,7 +2143,7 @@ qpnp_chg_chgr_chg_failed_irq_handler(int irq, void *_chip)
 	u8 chg_led = 0; //ASUS_BSP +
 
 	printk("chg_failed triggered\n");
-
+	chip->chg_done = true;
 	qpnp_chg_write(chip, &chg_led, 0x104D, 1);//ASUS_BSP +
 
 	rc = qpnp_chg_masked_write(chip,