summaryrefslogtreecommitdiff
path: root/driver/charger
diff options
context:
space:
mode:
Diffstat (limited to 'driver/charger')
-rw-r--r--driver/charger/bd99955.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/driver/charger/bd99955.c b/driver/charger/bd99955.c
index 2f0af04145..68ebc0f77d 100644
--- a/driver/charger/bd99955.c
+++ b/driver/charger/bd99955.c
@@ -343,11 +343,12 @@ static int bd99955_get_vbus_detect_interrupts(int port)
static void usb_charger_process(enum bd99955_charge_port port)
{
- int vbus_provided = bd99955_is_vbus_provided(port);
+ int chg_port = bd99955_pd_port_to_chg_port(port);
+ int vbus_provided = bd99955_is_vbus_provided(port) &&
+ !usb_charger_port_is_sourcing_vbus(chg_port);
/* Inform other modules about VBUS level */
- usb_charger_vbus_change(bd99955_pd_port_to_chg_port(port),
- vbus_provided);
+ usb_charger_vbus_change(chg_port, vbus_provided);
/* Do BC1.2 detection */
if (vbus_provided) {