summaryrefslogtreecommitdiff
path: root/common/charge_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/charge_manager.c')
-rw-r--r--common/charge_manager.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/common/charge_manager.c b/common/charge_manager.c
index 3455c8e3f6..fa3a16c321 100644
--- a/common/charge_manager.c
+++ b/common/charge_manager.c
@@ -480,6 +480,7 @@ static void charge_manager_refresh(void)
int updated_new_port = CHARGE_PORT_NONE;
int updated_old_port = CHARGE_PORT_NONE;
int ceil;
+ int power_changed = 0;
/* Hunt for an acceptable charge port */
while (1) {
@@ -570,8 +571,7 @@ static void charge_manager_refresh(void)
new_charge_current_uncapped);
#endif /* HAS_TASK_CHG_RAMP */
- /* notify host of power info change */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
+ power_changed = 1;
CPRINTS("CL: p%d s%d i%d v%d", new_port, new_supplier,
new_charge_current, new_charge_voltage);
@@ -630,6 +630,10 @@ static void charge_manager_refresh(void)
pd_set_new_power_request(updated_new_port);
if (updated_old_port != CHARGE_PORT_NONE)
pd_set_new_power_request(updated_old_port);
+
+ if (power_changed)
+ /* notify host of power info change */
+ pd_send_host_event(PD_EVENT_POWER_CHANGE);
}
DECLARE_DEFERRED(charge_manager_refresh);