mirror of
https://github.com/Evolution-X-Devices/device_google_redfin
synced 2026-02-01 05:34:34 +00:00
Write the pullup value only if new value applied
Also, remove the non-existing paths and set the initial value of mUsbDataEnabled. Bug: 221009551 Test: build, boot Signed-off-by: Jimmy Hu <hhhuuu@google.com> Change-Id: Ia44923b13d7a6a381d0024df4e7af5ac0667f0ef
This commit is contained in:
@@ -61,40 +61,41 @@ ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable,
|
|||||||
int64_t in_transactionId) {
|
int64_t in_transactionId) {
|
||||||
bool result = true;
|
bool result = true;
|
||||||
std::vector<PortStatus> currentPortStatus;
|
std::vector<PortStatus> currentPortStatus;
|
||||||
|
string pullup;
|
||||||
|
|
||||||
ALOGI("Userspace turn %s USB data signaling. opID:%ld", in_enable ? "on" : "off",
|
ALOGI("Userspace turn %s USB data signaling. opID:%ld", in_enable ? "on" : "off",
|
||||||
in_transactionId);
|
in_transactionId);
|
||||||
|
|
||||||
if (in_enable) {
|
if (in_enable) {
|
||||||
|
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("1", USB_DATA_PATH)) {
|
if (!WriteStringToFile("1", USB_DATA_PATH)) {
|
||||||
ALOGE("Not able to turn on usb connection notification");
|
ALOGE("Not able to turn on usb connection notification");
|
||||||
result = false;
|
result = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) {
|
|
||||||
ALOGE("Gadget cannot be pulled up");
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (!WriteStringToFile("1", ID_PATH)) {
|
if (ReadFileToString(PULLUP_PATH, &pullup)) {
|
||||||
ALOGE("Not able to turn off host mode");
|
pullup = Trim(pullup);
|
||||||
result = false;
|
if (pullup == kGadgetName) {
|
||||||
}
|
if (!WriteStringToFile("none", PULLUP_PATH)) {
|
||||||
|
ALOGE("Gadget cannot be pulled down");
|
||||||
if (!WriteStringToFile("0", VBUS_PATH)) {
|
result = false;
|
||||||
ALOGE("Not able to set Vbus state");
|
}
|
||||||
result = false;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!WriteStringToFile("0", USB_DATA_PATH)) {
|
if (!WriteStringToFile("0", USB_DATA_PATH)) {
|
||||||
ALOGE("Not able to turn on usb connection notification");
|
ALOGE("Not able to turn on usb connection notification");
|
||||||
result = false;
|
result = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!WriteStringToFile("none", PULLUP_PATH)) {
|
|
||||||
ALOGE("Gadget cannot be pulled down");
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
@@ -367,7 +368,8 @@ Usb::Usb()
|
|||||||
: mLock(PTHREAD_MUTEX_INITIALIZER),
|
: mLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
|
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
mPartnerLock(PTHREAD_MUTEX_INITIALIZER),
|
mPartnerLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
mPartnerUp(false) {
|
mPartnerUp(false),
|
||||||
|
mUsbDataEnabled(true) {
|
||||||
pthread_condattr_t attr;
|
pthread_condattr_t attr;
|
||||||
if (pthread_condattr_init(&attr)) {
|
if (pthread_condattr_init(&attr)) {
|
||||||
ALOGE("pthread_condattr_init failed: %s", strerror(errno));
|
ALOGE("pthread_condattr_init failed: %s", strerror(errno));
|
||||||
@@ -612,7 +614,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb,
|
|||||||
} else {
|
} else {
|
||||||
(*currentPortStatus)[i].usbDataStatus.push_back(UsbDataStatus::ENABLED);
|
(*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 "
|
ALOGI("%d:%s connected:%d canChangeMode:%d canChagedata:%d canChangePower:%d "
|
||||||
"usbDataEnabled:%d",
|
"usbDataEnabled:%d",
|
||||||
@@ -627,6 +629,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb,
|
|||||||
done:
|
done:
|
||||||
return Status::ERROR;
|
return Status::ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status queryPowerTransferStatus(std::vector<PortStatus> *currentPortStatus) {
|
Status queryPowerTransferStatus(std::vector<PortStatus> *currentPortStatus) {
|
||||||
string enabled;
|
string enabled;
|
||||||
|
|
||||||
|
|||||||
@@ -43,11 +43,9 @@ using ::std::shared_ptr;
|
|||||||
using ::std::string;
|
using ::std::string;
|
||||||
|
|
||||||
constexpr char kGadgetName[] = "a600000.dwc3";
|
constexpr char kGadgetName[] = "a600000.dwc3";
|
||||||
#define ID_PATH SOC_PATH "id"
|
|
||||||
#define PULLUP_PATH "/config/usb_gadget/g1/UDC"
|
#define PULLUP_PATH "/config/usb_gadget/g1/UDC"
|
||||||
#define SOC_PATH "/sys/devices/platform/soc/a600000.ssusb/"
|
#define SOC_PATH "/sys/devices/platform/soc/a600000.ssusb/"
|
||||||
#define USB_DATA_PATH SOC_PATH "usb_data_enabled"
|
#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 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"
|
#define SINK_CURRENT_LIMIT_PATH USB_POWER_LIMIT_PATH "usb_limit_sink_current"
|
||||||
|
|||||||
Reference in New Issue
Block a user