From 66f3f5b10eaa08d9b3d3b516cff1b2b72dffa885 Mon Sep 17 00:00:00 2001 From: TeYuan Wang Date: Thu, 2 Dec 2021 11:01:37 +0800 Subject: [PATCH 1/4] dumpstate: add more cooling device debug info Bug: 221369360 Test: check dumpstate_board.txt Change-Id: Ice04536c321d35553a948cdea2e6a1add207c2c7 (cherry picked from commit 125d1d5833a8153eabddf5f1bc608efaa7605bd2) --- dumpstate/DumpstateDevice.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp index 7b98f75b..711b9e82 100644 --- a/dumpstate/DumpstateDevice.cpp +++ b/dumpstate/DumpstateDevice.cpp @@ -487,6 +487,10 @@ void DumpstateDevice::dumpThermalSection(int fd) { "for f in /sys/class/thermal/cooling* ; do " "type=`cat $f/type` ; temp=`cat $f/cur_state` ; echo \"$type: $temp\" ; " "done"}); + RunCommandToFd(fd, "Cooling Device Time in State", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; " + "do type=`cat $f/type` ; temp=`cat $f/stats/time_in_state_ms` ; echo \"$type:\n$temp\" ; done"}); + RunCommandToFd(fd, "Cooling Device Trans Table", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; " + "do type=`cat $f/type` ; temp=`cat $f/stats/trans_table` ; echo \"$type:\n$temp\" ; done"}); RunCommandToFd(fd, "Cooling Device State2Power Table", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; do " "type=`cat $f/type` ; state2power_table=`cat $f/state2power_table` ; echo \"$type: $state2power_table\" ; " From 775721627a4e2190c5a87d002128994926190df5 Mon Sep 17 00:00:00 2001 From: TeYuan Wang Date: Thu, 2 Dec 2021 11:01:37 +0800 Subject: [PATCH 2/4] dumpstate: add more cooling device debug info Bug: 221369360 Test: check dumpstate_board.txt Change-Id: Ice04536c321d35553a948cdea2e6a1add207c2c7 (cherry picked from commit 125d1d5833a8153eabddf5f1bc608efaa7605bd2) --- dumpstate/DumpstateDevice.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp index f5d5862c..813d1861 100644 --- a/dumpstate/DumpstateDevice.cpp +++ b/dumpstate/DumpstateDevice.cpp @@ -487,6 +487,10 @@ void DumpstateDevice::dumpThermalSection(int fd) { "for f in /sys/class/thermal/cooling* ; do " "type=`cat $f/type` ; temp=`cat $f/cur_state` ; echo \"$type: $temp\" ; " "done"}); + RunCommandToFd(fd, "Cooling Device Time in State", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; " + "do type=`cat $f/type` ; temp=`cat $f/stats/time_in_state_ms` ; echo \"$type:\n$temp\" ; done"}); + RunCommandToFd(fd, "Cooling Device Trans Table", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; " + "do type=`cat $f/type` ; temp=`cat $f/stats/trans_table` ; echo \"$type:\n$temp\" ; done"}); RunCommandToFd(fd, "Cooling Device State2Power Table", {"/vendor/bin/sh", "-c", "for f in /sys/class/thermal/cooling* ; do " "type=`cat $f/type` ; state2power_table=`cat $f/state2power_table` ; echo \"$type: $state2power_table\" ; " From a6530a8bf61270c8f4836980f0fd2636673ea41b Mon Sep 17 00:00:00 2001 From: Alessio Balsini Date: Fri, 25 Feb 2022 16:28:54 +0000 Subject: [PATCH 3/4] Revert "Use FUSE BPF by default" This reverts commit fb8a0383e3837a49a79ff01f4c2aef63ae655fd6. Reason for revert: b/221093504 Change-Id: I808f9dd315ec7b57916385c64435808d3467a244 --- device.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/device.mk b/device.mk index 917e88c3..d5b7065c 100644 --- a/device.mk +++ b/device.mk @@ -830,10 +830,6 @@ PRODUCT_USE_DYNAMIC_PARTITIONS := true PRODUCT_PRODUCT_PROPERTIES += \ persist.sys.fuse.passthrough.enable=true -# Use FUSE BPF -PRODUCT_PRODUCT_PROPERTIES += \ - persist.sys.fuse.bpf.enable=true - # Use /product/etc/fstab.postinstall to mount system_other PRODUCT_PRODUCT_PROPERTIES += \ ro.postinstall.fstab.prefix=/product From 31fb8913986e1d2f5852cf06b5f1fb52eae98dc8 Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Thu, 24 Feb 2022 23:52:52 -0800 Subject: [PATCH 4/4] Implement callbacks for limitPowerTransfer Implements limiting the source current when limitPowerTransfer is invoked. Bug: 200993386 Signed-off-by: Badhri Jagan Sridharan Change-Id: Ia34dc127c1eb20254caa932db882e26e6092b945 --- usb/usb/Usb.cpp | 25 ++++++++++++++++++------- usb/usb/android.hardware.usb-service.rc | 4 ++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index c93cdb5f..b8ad7c5f 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -62,6 +62,7 @@ constexpr char kI2CPath[] = "/sys/devices/platform/10d50000.hsi2c/i2c-"; constexpr char kContaminantDetectionPath[] = "i2c-max77759tcpc/contaminant_detection"; constexpr char kStatusPath[] = "i2c-max77759tcpc/contaminant_detection_status"; constexpr char kSinkLimitEnable[] = "i2c-max77759tcpc/usb_limit_sink_enable"; +constexpr char kSourceLimitEnable[] = "i2c-max77759tcpc/usb_limit_source_enable"; constexpr char kSinkLimitCurrent[] = "i2c-max77759tcpc/usb_limit_sink_current"; constexpr char kTypecPath[] = "/sys/class/typec"; constexpr char kDisableContatminantDetection[] = "vendor.usb.contaminantdisable"; @@ -471,30 +472,40 @@ ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role ScopedAStatus Usb::limitPowerTransfer(const string& in_portName, bool in_limit, int64_t in_transactionId) { - bool success = false; + bool sessionFail = false, success; std::vector currentPortStatus; - string path, limitEnablePath, currentLimitPath; + string path, sinkLimitEnablePath, currentLimitPath, sourceLimitEnablePath; getI2cBusHelper(&path); - limitEnablePath = kI2CPath + path + "/" + kSinkLimitEnable; + sinkLimitEnablePath = kI2CPath + path + "/" + kSinkLimitEnable; + sourceLimitEnablePath = kI2CPath + path + "/" + kSourceLimitEnable; currentLimitPath = kI2CPath + path + "/" + kSinkLimitCurrent; + pthread_mutex_lock(&mLock); if (in_limit) { success = WriteStringToFile("0", currentLimitPath); if (!success) { ALOGE("Failed to set sink current limit"); + sessionFail = true; } } - success = WriteStringToFile(in_limit ? "1" : "0", limitEnablePath); + success = WriteStringToFile(in_limit ? "1" : "0", sinkLimitEnablePath); if (!success) { ALOGE("Failed to %s sink current limit: %s", in_limit ? "enable" : "disable", - limitEnablePath.c_str()); + sinkLimitEnablePath.c_str()); + sessionFail = true; + } + success = WriteStringToFile(in_limit ? "1" : "0", sourceLimitEnablePath); + if (!success) { + ALOGE("Failed to %s source current limit: %s", in_limit ? "enable" : "disable", + sourceLimitEnablePath.c_str()); + sessionFail = true; } ALOGI("limitPowerTransfer limit:%c opId:%ld", in_limit ? 'y' : 'n', in_transactionId); - pthread_mutex_lock(&mLock); if (mCallback != NULL && in_transactionId >= 0) { ScopedAStatus ret = mCallback->notifyLimitPowerTransferStatus( - in_portName, in_limit, success ? Status::SUCCESS : Status::ERROR, in_transactionId); + in_portName, in_limit, sessionFail ? Status::ERROR : Status::SUCCESS, + in_transactionId); if (!ret.isOk()) ALOGE("limitPowerTransfer error %s", ret.getDescription().c_str()); } else { diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc index 236c67c6..017cbe23 100644 --- a/usb/usb/android.hardware.usb-service.rc +++ b/usb/usb/android.hardware.usb-service.rc @@ -14,6 +14,8 @@ on post-fs chown root system /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_current chown root system /sys/devices/platform/10d50000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_enable chown root system /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_enable + chown root system /sys/devices/platform/10d50000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_source_enable + chown root system /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_source_enable chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id chown root system /sys/devices/platform/11110000.usb/usb_data_enabled @@ -30,4 +32,6 @@ on post-fs chmod 664 /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_current chmod 664 /sys/devices/platform/10d50000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_enable chmod 664 /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_enable + chmod 664 /sys/devices/platform/10d50000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_source_enable + chmod 664 /sys/devices/platform/10d50000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_source_enable chmod 664 /sys/devices/platform/google,pogo/move_data_to_usb