diff options
Diffstat (limited to 'common/usb_pd_protocol.c')
-rw-r--r-- | common/usb_pd_protocol.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 4370835fe1..3ea1dbf723 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -659,9 +659,16 @@ static int pd_send_request_msg(int port, int always_send_request) */ return -1; - /* Don't re-request the same voltage */ - if (!always_send_request && pd[port].prev_request_mv == supply_voltage) - return EC_SUCCESS; + if (!always_send_request) { + /* Don't re-request the same voltage */ + if (pd[port].prev_request_mv == supply_voltage) + return EC_SUCCESS; +#ifdef CONFIG_CHARGE_MANAGER + /* Limit current to PD_MIN_MA during transition */ + else + charge_manager_force_ceil(port, PD_MIN_MA); +#endif + } CPRINTF("Req C%d [%d] %dmV %dmA", port, RDO_POS(rdo), supply_voltage, curr_limit); |