diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index d5a9ced5..e4f0b354 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -327,7 +327,8 @@ Status queryNonCompliantChargerStatus(std::vector *currentPortStatus continue; } } - if ((*currentPortStatus)[i].complianceWarnings.size() > 0) { + if ((*currentPortStatus)[i].complianceWarnings.size() > 0 && + (*currentPortStatus)[i].currentPowerRole == PortPowerRole::NONE) { (*currentPortStatus)[i].currentMode = PortMode::UFP; (*currentPortStatus)[i].currentPowerRole = PortPowerRole::SINK; (*currentPortStatus)[i].currentDataRole = PortDataRole::NONE;