diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-11 15:26:21 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-11 15:26:21 +0000 |
commit | c372b786f09a3be7789c6c45d941ca45037d7e07 (patch) | |
tree | cc38afc91d20b917e2c0f474a44d70814286fdcf | |
parent | 7ec9bd94550f8f5938579e4c7cc5ea5424611f56 (diff) | |
parent | d9682477184cb590c85b76c5a094816ded072129 (diff) | |
download | redfin-t_frc_tz4_330443010.tar.gz |
Snap for 8712302 from d9682477184cb590c85b76c5a094816ded072129 to tm-frc-tzdata4-releaset_frc_tz4_330443010
Change-Id: I1ad4b9cd5df95409845fe6035bba0ab4fcf53d80
-rw-r--r-- | usb/usb/Usb.cpp | 43 | ||||
-rw-r--r-- | usb/usb/Usb.h | 2 |
2 files changed, 23 insertions, 22 deletions
diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 348d28e..ed358cd 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -61,40 +61,41 @@ ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, int64_t in_transactionId) { bool result = true; std::vector<PortStatus> currentPortStatus; + string pullup; ALOGI("Userspace turn %s USB data signaling. opID:%ld", in_enable ? "on" : "off", in_transactionId); if (in_enable) { - if (!WriteStringToFile("1", USB_DATA_PATH)) { - ALOGE("Not able to turn on usb connection notification"); - result = false; + if (ReadFileToString(PULLUP_PATH, &pullup)) { + pullup = Trim(pullup); + if (pullup != kGadgetName) { + if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) { + ALOGE("Gadget cannot be pulled up"); + result = false; + } + } } - if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) { - ALOGE("Gadget cannot be pulled up"); + if (!WriteStringToFile("1", USB_DATA_PATH)) { + ALOGE("Not able to turn on usb connection notification"); result = false; } } else { - if (!WriteStringToFile("1", ID_PATH)) { - ALOGE("Not able to turn off host mode"); - result = false; - } - - if (!WriteStringToFile("0", VBUS_PATH)) { - ALOGE("Not able to set Vbus state"); - result = false; + if (ReadFileToString(PULLUP_PATH, &pullup)) { + pullup = Trim(pullup); + if (pullup == kGadgetName) { + if (!WriteStringToFile("none", PULLUP_PATH)) { + ALOGE("Gadget cannot be pulled down"); + result = false; + } + } } if (!WriteStringToFile("0", USB_DATA_PATH)) { ALOGE("Not able to turn on usb connection notification"); result = false; } - - if (!WriteStringToFile("none", PULLUP_PATH)) { - ALOGE("Gadget cannot be pulled down"); - result = false; - } } if (result) { @@ -367,7 +368,8 @@ Usb::Usb() : mLock(PTHREAD_MUTEX_INITIALIZER), mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER), mPartnerLock(PTHREAD_MUTEX_INITIALIZER), - mPartnerUp(false) { + mPartnerUp(false), + mUsbDataEnabled(true) { pthread_condattr_t attr; if (pthread_condattr_init(&attr)) { ALOGE("pthread_condattr_init failed: %s", strerror(errno)); @@ -612,7 +614,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb, } else { (*currentPortStatus)[i].usbDataStatus.push_back(UsbDataStatus::ENABLED); } - (*currentPortStatus)[i].powerBrickStatus = PowerBrickStatus::UNKNOWN; + (*currentPortStatus)[i].powerBrickStatus = PowerBrickStatus::UNKNOWN; ALOGI("%d:%s connected:%d canChangeMode:%d canChagedata:%d canChangePower:%d " "usbDataEnabled:%d", @@ -627,6 +629,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb, done: return Status::ERROR; } + Status queryPowerTransferStatus(std::vector<PortStatus> *currentPortStatus) { string enabled; diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 94fbecb..36a23bc 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -43,11 +43,9 @@ using ::std::shared_ptr; using ::std::string; constexpr char kGadgetName[] = "a600000.dwc3"; -#define ID_PATH SOC_PATH "id" #define PULLUP_PATH "/config/usb_gadget/g1/UDC" #define SOC_PATH "/sys/devices/platform/soc/a600000.ssusb/" #define USB_DATA_PATH SOC_PATH "usb_data_enabled" -#define VBUS_PATH SOC_PATH "b_sess" #define USB_POWER_LIMIT_PATH "/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,usb-pdphy@1700/usbpd0/" #define SINK_CURRENT_LIMIT_PATH USB_POWER_LIMIT_PATH "usb_limit_sink_current" |