diff --git a/google_battery.c b/google_battery.c
index 4543540..05a41bd 100644
--- a/google_battery.c
+++ b/google_battery.c
@@ -3618,7 +3618,6 @@
 	return false;
 }
 
-
 /*
  * for logging, userspace should use
  *   deadline == 0 on fast replug (leave initial deadline ok)
@@ -3628,6 +3627,7 @@
  * return true if there was a change
  */
 static bool batt_health_set_chg_deadline(struct batt_chg_health *chg_health,
+					 long long ttf_with_margin,
 					 long long deadline_s)
 {
 	enum chg_health_state rest_state = chg_health->rest_state;
@@ -3659,10 +3659,15 @@
 
 	} else { /* enabled from any previous state */
 		const ktime_t rest_deadline = get_boot_sec() + deadline_s;
+		enum chg_health_state new_rest_state = CHG_HEALTH_ENABLED;
 
 		/* ->always_on SOC overrides the deadline */
 		new_deadline = chg_health->rest_deadline != rest_deadline;
-		chg_health->rest_state = CHG_HEALTH_ENABLED;
+
+		if (rest_deadline < ttf_with_margin)
+			new_rest_state = CHG_HEALTH_DISABLED;
+
+		chg_health->rest_state = new_rest_state;
 		chg_health->rest_deadline = rest_deadline;
 	}
 
@@ -3682,7 +3687,7 @@
 	const ktime_t now = get_boot_sec();
 	int fv_uv = -1, cc_max = -1;
 	bool changed = false;
-	ktime_t ttf = 0;
+	ktime_t ttf = 0, safety_margin = 0;
 	int ret;
 
 	/* move to ENABLED if INACTIVE when aon_enabled is set */
@@ -3733,6 +3738,9 @@
 		goto done_exit;
 	}
 
+	if (batt_drv->health_safety_margin > 0)
+		safety_margin = batt_drv->health_safety_margin;
+
 	/*
 	 * rest_state here is either ENABLED or ACTIVE, transition to DISABLED
 	 * when the deadline cannot be met with the current rate. set a new
@@ -3743,8 +3751,9 @@
 	 * from CHG_HEALTH_USER_DISABLED.
 	 * TODO: consider adding a margin or debounce it.
 	 */
-	if (aon_enabled == false && rest_state == CHG_HEALTH_ACTIVE &&
-	    deadline > 0 && ttf != -1 && now + ttf > deadline) {
+	if (aon_enabled == false &&
+	    (rest_state == CHG_HEALTH_ACTIVE || rest_state == CHG_HEALTH_ENABLED) &&
+	    deadline > 0 && ttf != -1 && now + ttf + safety_margin > deadline) {
 		rest_state = CHG_HEALTH_DISABLED;
 		goto done_exit;
 	}
@@ -7128,6 +7137,7 @@
 	struct power_supply *psy = container_of(dev, struct power_supply, dev);
 	struct batt_drv *batt_drv =(struct batt_drv *)
 					power_supply_get_drvdata(psy);
+	ktime_t ttf_with_margin = 0;
 	long long deadline_s;
 	bool changed;
 
@@ -7141,7 +7151,12 @@
 		return -EINVAL;
 	}
 
-	changed = batt_health_set_chg_deadline(&batt_drv->chg_health,
+	if (batt_ttf_estimate(&ttf_with_margin, batt_drv) < 0)
+		ttf_with_margin = LLONG_MAX;
+	else if (batt_drv->health_safety_margin > 0)
+		ttf_with_margin += batt_drv->health_safety_margin;
+
+	changed = batt_health_set_chg_deadline(&batt_drv->chg_health, (long long)ttf_with_margin,
 					       deadline_s);
 	mutex_unlock(&batt_drv->chg_lock);
 
diff --git a/max1720x_battery.c b/max1720x_battery.c
index f85e030..4833bad 100644
--- a/max1720x_battery.c
+++ b/max1720x_battery.c
@@ -2754,11 +2754,11 @@
 
 		} else if (ce->cable_in) {
 			if (ce->estimate_state == ESTIMATE_PENDING)
-				cancel_delayed_work_sync(&ce->settle_timer);
+				cancel_delayed_work(&ce->settle_timer);
 
 			/* race with batt_ce_capacityfiltered_work() */
-			batt_ce_stop_estimation(ce, ESTIMATE_NONE);
 			batt_ce_dump_data(ce, chip->ce_log);
+			batt_ce_stop_estimation(ce, ESTIMATE_NONE);
 			ce->cable_in = false;
 		}
 		mutex_unlock(&ce->batt_ce_lock);
diff --git a/max77779_fg.c b/max77779_fg.c
index 61e60b8..e3f26b0 100644
--- a/max77779_fg.c
+++ b/max77779_fg.c
@@ -1722,11 +1722,11 @@
 
 		} else if (ce->cable_in) {
 			if (ce->estimate_state == ESTIMATE_PENDING)
-				cancel_delayed_work_sync(&ce->settle_timer);
+				cancel_delayed_work(&ce->settle_timer);
 
 			/* race with batt_ce_capacityfiltered_work() */
-			batt_ce_stop_estimation(ce, ESTIMATE_NONE);
 			batt_ce_dump_data(ce, chip->ce_log);
+			batt_ce_stop_estimation(ce, ESTIMATE_NONE);
 			ce->cable_in = false;
 		}
 		mutex_unlock(&ce->batt_ce_lock);
