From 833435e20a2c28bbfdbbf181085a5d7c55c2daed Mon Sep 17 00:00:00 2001 From: Adam Shih Date: Wed, 22 Mar 2023 11:24:35 +0800 Subject: [PATCH 01/29] Move pixel dumpstate to gs-common Bug: 240530709 Test: adb bugreport Change-Id: Ief9dc020bad3ab6a37c81161121f9424fd4ddff5 Merged-In: I70a1cd1a2a2b78b043f3c7fa8ff47f2fec75e078 (cherry picked from commit 72a8053cd61bacdcb4f8c6a72ddab2063a9c8d32) --- device.mk | 4 - dumpstate/Android.bp | 25 -- dumpstate/Dumpstate.cpp | 215 ------------------ dumpstate/Dumpstate.h | 53 ----- ...android.hardware.dumpstate-service.zuma.rc | 5 - ...ndroid.hardware.dumpstate-service.zuma.xml | 9 - dumpstate/service.cpp | 37 --- 7 files changed, 348 deletions(-) delete mode 100644 dumpstate/Dumpstate.cpp delete mode 100644 dumpstate/Dumpstate.h delete mode 100644 dumpstate/android.hardware.dumpstate-service.zuma.rc delete mode 100644 dumpstate/android.hardware.dumpstate-service.zuma.xml delete mode 100644 dumpstate/service.cpp diff --git a/device.mk b/device.mk index 62892adf..8dfe5c49 100644 --- a/device.mk +++ b/device.mk @@ -471,10 +471,6 @@ include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk PRODUCT_PACKAGES += \ android.hardware.power.stats-service.pixel -# dumpstate HAL -PRODUCT_PACKAGES += \ - android.hardware.dumpstate-service.zuma - # # Audio HALs # diff --git a/dumpstate/Android.bp b/dumpstate/Android.bp index 6d53152c..7494e694 100644 --- a/dumpstate/Android.bp +++ b/dumpstate/Android.bp @@ -23,28 +23,3 @@ sh_binary { sub_dir: "dump", } -cc_binary { - name: "android.hardware.dumpstate-service.zuma", - srcs: [ - "Dumpstate.cpp", - "service.cpp", - ], - init_rc: ["android.hardware.dumpstate-service.zuma.rc"], - vintf_fragments: ["android.hardware.dumpstate-service.zuma.xml"], - cflags: [ - "-Wall", - "-Werror", - ], - shared_libs: [ - "libbase", - "libbinder_ndk", - "libcutils", - "libdumpstateutil", - "liblog", - "libutils", - "libdump", - "android.hardware.dumpstate-V1-ndk", - ], - vendor: true, - relative_install_path: "hw", -} diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp deleted file mode 100644 index 550d95ec..00000000 --- a/dumpstate/Dumpstate.cpp +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "dumpstate_device" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include "Dumpstate.h" - -#include "DumpstateUtil.h" - -#define HW_REVISION "ro.boot.hardware.revision" - -using android::os::dumpstate::CommandOptions; -using android::os::dumpstate::DumpFileToFd; -using android::os::dumpstate::PropertiesHelper; -using android::os::dumpstate::RunCommandToFd; - -namespace aidl { -namespace android { -namespace hardware { -namespace dumpstate { - -typedef std::chrono::time_point timepoint_t; - -const char kVerboseLoggingProperty[] = "persist.vendor.verbose_logging_enabled"; - -timepoint_t startSection(int fd, const std::string §ionName) { - ::android::base::WriteStringToFd( - "\n" - "------ Section start: " + sectionName + " ------\n" - "\n", fd); - return std::chrono::steady_clock::now(); -} - -void endSection(int fd, const std::string §ionName, timepoint_t startTime) { - auto endTime = std::chrono::steady_clock::now(); - auto elapsedMsec = std::chrono::duration_cast - (endTime - startTime).count(); - - ::android::base::WriteStringToFd( - "\n" - "------ Section end: " + sectionName + " ------\n" - "Elapsed msec: " + std::to_string(elapsedMsec) + "\n" - "\n", fd); -} - -// Dump data requested by an argument to the "dump" interface, or help info -// if the specified section is not supported. -void Dumpstate::dumpTextSection(int fd, const std::string §ionName) { - bool dumpAll = (sectionName == kAllSections); - std::string dumpFiles; - - // Execute all or designated programs under vendor/bin/dump/ - std::unique_ptr dir(opendir("/vendor/bin/dump"), closedir); - if (!dir) { - ALOGE("Fail To Open Dir vendor/bin/dump/"); - ::android::base::WriteStringToFd("Fail To Open Dir vendor/bin/dump/\n", fd); - return; - } - dirent *entry; - while ((entry = readdir(dir.get())) != nullptr) { - // Skip '.', '..' - if (entry->d_name[0] == '.') { - continue; - } - std::string bin(entry->d_name); - dumpFiles = dumpFiles + " " + bin; - if (dumpAll || sectionName == bin) { - auto startTime = startSection(fd, bin); - RunCommandToFd(fd, "/vendor/bin/dump/"+bin, {"/vendor/bin/dump/"+bin}, CommandOptions::WithTimeout(15).Build()); - endSection(fd, bin, startTime); - if (!dumpAll) { - return; - } - } - } - - if (dumpAll) { - RunCommandToFd(fd, "VENDOR PROPERTIES", {"/vendor/bin/getprop"}); - return; - } - - // An unsupported section was requested on the command line - ::android::base::WriteStringToFd("Unrecognized text section: " + sectionName + "\n", fd); - ::android::base::WriteStringToFd("Try \"" + kAllSections + "\" or one of the following:", fd); - ::android::base::WriteStringToFd(dumpFiles, fd); - ::android::base::WriteStringToFd("\nNote: sections with attachments (e.g. dump_soc) are" - "not avalable from the command line.\n", fd); -} - -void Dumpstate::dumpLogSection(int fd, int fd_bin) -{ - std::string logDir = MODEM_LOG_DIRECTORY; - const std::string logCombined = logDir + "/combined_logs.tar"; - const std::string logAllDir = logDir + "/all_logs"; - - RunCommandToFd(fd, "MKDIR LOG", {"/vendor/bin/mkdir", "-p", logAllDir.c_str()}, CommandOptions::WithTimeout(2).Build()); - - dumpTextSection(fd, kAllSections); - - RunCommandToFd(fd, "TAR LOG", {"/vendor/bin/tar", "cvf", logCombined.c_str(), "-C", logAllDir.c_str(), "."}, CommandOptions::WithTimeout(20).Build()); - RunCommandToFd(fd, "CHG PERM", {"/vendor/bin/chmod", "a+w", logCombined.c_str()}, CommandOptions::WithTimeout(2).Build()); - - std::vector buffer(65536); - ::android::base::unique_fd fdLog(TEMP_FAILURE_RETRY(open(logCombined.c_str(), O_RDONLY | O_CLOEXEC | O_NONBLOCK))); - - if (fdLog >= 0) { - while (1) { - ssize_t bytes_read = TEMP_FAILURE_RETRY(read(fdLog, buffer.data(), buffer.size())); - - if (bytes_read == 0) { - break; - } else if (bytes_read < 0) { - ALOGD("read(%s): %s\n", logCombined.c_str(), strerror(errno)); - break; - } - - ssize_t result = TEMP_FAILURE_RETRY(write(fd_bin, buffer.data(), bytes_read)); - - if (result != bytes_read) { - ALOGD("Failed to write %ld bytes, actually written: %ld", bytes_read, result); - break; - } - } - } - - RunCommandToFd(fd, "RM LOG DIR", { "/vendor/bin/rm", "-r", logAllDir.c_str()}, CommandOptions::WithTimeout(2).Build()); - RunCommandToFd(fd, "RM LOG", { "/vendor/bin/rm", logCombined.c_str()}, CommandOptions::WithTimeout(2).Build()); -} - -ndk::ScopedAStatus Dumpstate::dumpstateBoard(const std::vector<::ndk::ScopedFileDescriptor>& in_fds, - IDumpstateDevice::DumpstateMode in_mode, - int64_t in_timeoutMillis) { - // Unused arguments. - (void) in_timeoutMillis; - (void) in_mode; - - if (in_fds.size() < 1) { - ALOGE("no FDs\n"); - return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, - "No file descriptor"); - } - - int fd = in_fds[0].get(); - if (fd < 0) { - ALOGE("invalid FD: %d\n", fd); - return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, - "Invalid file descriptor"); - } - - if (in_fds.size() < 2) { - ALOGE("no FD for dumpstate_board binary\n"); - } else { - int fd_bin = in_fds[1].get(); - dumpLogSection(fd, fd_bin); - } - - return ndk::ScopedAStatus::ok(); -} - -ndk::ScopedAStatus Dumpstate::setVerboseLoggingEnabled(bool in_enable) { - ::android::base::SetProperty(kVerboseLoggingProperty, in_enable ? "true" : "false"); - return ndk::ScopedAStatus::ok(); -} - -ndk::ScopedAStatus Dumpstate::getVerboseLoggingEnabled(bool* _aidl_return) { - *_aidl_return = ::android::base::GetBoolProperty(kVerboseLoggingProperty, false); - return ndk::ScopedAStatus::ok(); -} - -// Since AIDLs that support the dump() interface are automatically invoked during -// bugreport generation and we don't want to generate a second copy of the same -// data that will go into dumpstate_board.txt, this function will only do -// something if it is called with an option, e.g. -// dumpsys android.hardware.dumpstate.IDumpstateDevice/default all -// -// Also, note that sections which generate attachments and/or binary data when -// included in a bugreport are not available through the dump() interface. -binder_status_t Dumpstate::dump(int fd, const char** args, uint32_t numArgs) { - - if (numArgs != 1) { - return STATUS_OK; - } - - dumpTextSection(fd, static_cast(args[0])); - - fsync(fd); - return STATUS_OK; -} - -} // namespace dumpstate -} // namespace hardware -} // namespace android -} // namespace aidl diff --git a/dumpstate/Dumpstate.h b/dumpstate/Dumpstate.h deleted file mode 100644 index 787b7747..00000000 --- a/dumpstate/Dumpstate.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include -#include - -namespace aidl { -namespace android { -namespace hardware { -namespace dumpstate { - -class Dumpstate : public BnDumpstateDevice { - public: - ::ndk::ScopedAStatus dumpstateBoard(const std::vector<::ndk::ScopedFileDescriptor>& in_fds, - IDumpstateDevice::DumpstateMode in_mode, - int64_t in_timeoutMillis) override; - - ::ndk::ScopedAStatus getVerboseLoggingEnabled(bool* _aidl_return) override; - - ::ndk::ScopedAStatus setVerboseLoggingEnabled(bool in_enable) override; - - binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; - - private: - const std::string kAllSections = "all"; - - void dumpTextSection(int fd, std::string const& sectionName); - void dumpLogSection(int fd, int fdModem); - - //bool getVerboseLoggingEnabledImpl(); - //::ndk::ScopedAStatus dumpstateBoardImpl(const int fd, const bool full); -}; - -} // namespace dumpstate -} // namespace hardware -} // namespace android -} // namespace aidl diff --git a/dumpstate/android.hardware.dumpstate-service.zuma.rc b/dumpstate/android.hardware.dumpstate-service.zuma.rc deleted file mode 100644 index e73602bb..00000000 --- a/dumpstate/android.hardware.dumpstate-service.zuma.rc +++ /dev/null @@ -1,5 +0,0 @@ -service vendor.dumpstate-default /vendor/bin/hw/android.hardware.dumpstate-service.zuma - class hal - user system - group system shell - interface aidl android.hardware.dumpstate.IDumpstateDevice/default diff --git a/dumpstate/android.hardware.dumpstate-service.zuma.xml b/dumpstate/android.hardware.dumpstate-service.zuma.xml deleted file mode 100644 index 5e51b287..00000000 --- a/dumpstate/android.hardware.dumpstate-service.zuma.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - android.hardware.dumpstate - - IDumpstateDevice - default - - - diff --git a/dumpstate/service.cpp b/dumpstate/service.cpp deleted file mode 100644 index 1953fd67..00000000 --- a/dumpstate/service.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define LOG_TAG "android.hardware.dumpstate-service.zuma" - -#include "Dumpstate.h" - -#include -#include -#include - -using aidl::android::hardware::dumpstate::Dumpstate; - -int main() { - ABinderProcess_setThreadPoolMaxThreadCount(0); - std::shared_ptr dumpstate = ndk::SharedRefBase::make(); - - const std::string instance = std::string() + Dumpstate::descriptor + "/default"; - binder_status_t status = - AServiceManager_addService(dumpstate->asBinder().get(), instance.c_str()); - CHECK_EQ(status, STATUS_OK); - - ABinderProcess_joinThreadPool(); - return EXIT_FAILURE; // Unreachable -} From de0fc9d2201685b5eb4c3905e652911b192a542f Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Thu, 2 Feb 2023 22:49:51 +0000 Subject: [PATCH 02/29] Port dp changes to drm sysfs Write pin assignment, hpd, and orientation from type-c class to drmdp platform device attributes using epoll when displayport driver binds to device, and determine whether or not to shut down epoll on displayport driver change uevents. Test: manual testing with form factor device Bug: 260915739 Change-Id: Iec9fc76166481a4611bb2fc023aea044b497f2c0 --- usb/usb/Android.bp | 2 +- usb/usb/Usb.cpp | 342 ++++++++++++++++++++++- usb/usb/Usb.h | 22 ++ usb/usb/android.hardware.usb-service.rc | 8 + usb/usb/android.hardware.usb-service.xml | 2 +- 5 files changed, 372 insertions(+), 4 deletions(-) diff --git a/usb/usb/Android.bp b/usb/usb/Android.bp index 5a73f9a4..b1e0a9ea 100644 --- a/usb/usb/Android.bp +++ b/usb/usb/Android.bp @@ -46,7 +46,7 @@ cc_binary { "android.hardware.thermal@2.0", "android.hardware.thermal-V1-ndk", "android.hardware.usb.gadget@1.0", - "android.hardware.usb-V1-ndk", + "android.hardware.usb-V2-ndk", "android.hardware.usb.gadget-V1-ndk", "libcutils", "android.frameworks.stats-V1-ndk", diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index cee66977..c7109353 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -44,6 +45,8 @@ using aidl::android::frameworks::stats::IStats; using android::base::GetProperty; +using android::base::Join; +using android::base::Tokenize; using android::base::Trim; using android::hardware::google::pixel::getStatsService; using android::hardware::google::pixel::PixelAtoms::VendorUsbPortOverheat; @@ -55,11 +58,14 @@ namespace hardware { namespace usb { // Set by the signal handler to destroy the thread volatile bool destroyThread; +volatile bool destroyDisplayPortThread; string enabledPath; constexpr char kHsi2cPath[] = "/sys/devices/platform/10CB0000.hsi2c"; constexpr char kI2CPath[] = "/sys/devices/platform/10CB0000.hsi2c/i2c-"; constexpr char kContaminantDetectionPath[] = "i2c-max77759tcpc/contaminant_detection"; +constexpr char kDisplayPortDrmPath[] = "/sys/devices/platform/110f0000.drmdp/drm-displayport/"; +constexpr char kDisplayPortUsbPath[] = "/sys/class/typec/port0-partner/"; 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"; @@ -395,7 +401,8 @@ Usb::Usb() ThrottlingSeverity::NONE), ZoneInfo(TemperatureType::UNKNOWN, kThermalZoneForTempReadSecondary2, ThrottlingSeverity::NONE)}, kSamplingIntervalSec), - mUsbDataEnabled(true) { + mUsbDataEnabled(true), + mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER) { pthread_condattr_t attr; if (pthread_condattr_init(&attr)) { ALOGE("pthread_condattr_init failed: %s", strerror(errno)); @@ -413,6 +420,11 @@ Usb::Usb() ALOGE("pthread_condattr_destroy failed: %s", strerror(errno)); abort(); } + mDisplayPortShutdown = eventfd(0, EFD_NONBLOCK); + if (mDisplayPortShutdown == -1) { + ALOGE("mDisplayPortShutdown eventfd failed: %s", strerror(errno)); + abort(); + } } ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role, @@ -752,6 +764,11 @@ done: return Status::ERROR; } +Status queryDisplayPortStatus(std::vector *currentPortStatus) { + + return Status::SUCCESS; +} + void queryVersionHelper(android::hardware::usb::Usb *usb, std::vector *currentPortStatus) { Status status; @@ -850,10 +867,22 @@ struct data { ::aidl::android::hardware::usb::Usb *usb; }; +enum UeventType { UNKNOWN, BIND, CHANGE }; + +enum UeventType matchUeventType(char* str) { + if (!strncmp(str, "ACTION=bind", strlen("ACTION=bind"))) { + return UeventType::BIND; + } else if (!strncmp(str, "ACTION=change", strlen("ACTION=change"))) { + return UeventType::CHANGE; + } + return UeventType::UNKNOWN; +} + static void uevent_event(uint32_t /*epevents*/, struct data *payload) { char msg[UEVENT_MSG_LEN + 2]; char *cp; int n; + enum UeventType uevent_type = UeventType::UNKNOWN; n = uevent_kernel_multicast_recv(payload->uevent_fd, msg, UEVENT_MSG_LEN); if (n <= 0) @@ -897,10 +926,25 @@ static void uevent_event(uint32_t /*epevents*/, struct data *payload) { } pthread_mutex_unlock(&payload->usb->mRoleSwitchLock); } - break; + if (!!strncmp(cp, "DEVTYPE=typec_alternate_mode", strlen("DEVTYPE=typec_alternate_mode"))) { + break; + } } else if (!strncmp(cp, kOverheatStatsDev, strlen(kOverheatStatsDev))) { ALOGV("Overheat Cooling device suez update"); report_overheat_event(payload->usb); + } else if (!(strncmp(cp, "ACTION=", strlen("ACTION=")))) { + uevent_type = matchUeventType(cp); + } else if (!strncmp(cp, "DRIVER=typec_displayport", strlen("DRIVER=typec_displayport"))) { + if (uevent_type == UeventType::BIND) { + pthread_mutex_lock(&payload->usb->mDisplayPortLock); + payload->usb->setupDisplayPortPoll(); + pthread_mutex_unlock(&payload->usb->mDisplayPortLock); + } else if (uevent_type == UeventType::CHANGE) { + pthread_mutex_lock(&payload->usb->mDisplayPortLock); + payload->usb->shutdownDisplayPortPoll(); + pthread_mutex_unlock(&payload->usb->mDisplayPortLock); + } + break; } /* advance to after the next \0 */ while (*cp++) { @@ -1016,6 +1060,300 @@ ScopedAStatus Usb::setCallback(const shared_ptr& in_callback) { return ScopedAStatus::ok(); } +Status Usb::getDisplayPortUsbPathHelper(string *path) { + DIR *dp; + Status result = Status::ERROR; + + dp = opendir(kDisplayPortUsbPath); + if (dp != NULL) { + struct dirent *ep; + // Iterate through all alt mode directories to find displayport driver + while ((ep = readdir(dp))) { + if (ep->d_type == DT_DIR) { + DIR *displayPortDp; + string portPartnerPath = string(kDisplayPortUsbPath) + string(ep->d_name) + + "/displayport/"; + displayPortDp = opendir(portPartnerPath.c_str()); + if (displayPortDp != NULL) { + *path = portPartnerPath; + closedir(displayPortDp); + result = Status::SUCCESS; + break; + } + } + } + closedir(dp); + } + return result; +} + +Status Usb::writeDisplayPortAttributeOverride(string attribute, string value) { + string attrDrmPath; + + // Get Drm Path + attrDrmPath = string(kDisplayPortDrmPath) + attribute; + + // Write to drm + if(!WriteStringToFile(value, attrDrmPath)) { + ALOGE("usbdp: Failed to write attribute %s to drm: %s", attribute.c_str(), value.c_str()); + return Status::ERROR; + } + ALOGI("usbdp: Successfully wrote attribute %s: %s to drm.", attribute.c_str(), value.c_str()); + return Status::SUCCESS; +} + +Status Usb::writeDisplayPortAttribute(string attribute, string usb_path) { + string attrUsb, attrDrm, attrDrmPath; + + // Get Drm Path + attrDrmPath = string(kDisplayPortDrmPath) + attribute; + + // Read Attribute + if(!ReadFileToString(usb_path, &attrUsb)) { + ALOGE("usbdp: Failed to open or read Type-C attribute %s", attribute.c_str()); + return Status::ERROR; + } + + // Separate Logic for hpd and pin_assignment + if (!strncmp(attribute.c_str(), "hpd", strlen("hpd"))) { + if (!strncmp(attrUsb.c_str(), "0", strlen("0"))) { + // Read DRM attribute to compare + if(!ReadFileToString(attrDrmPath, &attrDrm)) { + ALOGE("usbdp: Failed to open or read hpd from drm"); + return Status::ERROR; + } + if (!strncmp(attrDrm.c_str(), "0", strlen("0"))) { + ALOGI("usbdp: Skipping hpd write when drm and usb both equal 0"); + return Status::SUCCESS; + } + } + } else if (!strncmp(attribute.c_str(), "pin_assignment", strlen("pin_assignment"))) { + size_t pos = attrUsb.find("["); + if (pos != string::npos) { + ALOGI("usbdp: Modifying Pin Config from %s", attrUsb.c_str()); + attrUsb = attrUsb.substr(pos+1, 1); + } else { + // Don't write anything + ALOGI("usbdp: Pin config not yet chosen, nothing written."); + return Status::SUCCESS; + } + } + + // Write to drm + if(!WriteStringToFile(attrUsb, attrDrmPath)) { + ALOGE("usbdp: Failed to write attribute %s to drm: %s", attribute.c_str(), attrUsb.c_str()); + return Status::ERROR; + } + ALOGI("usbdp: Successfully wrote attribute %s: %s to drm.", attribute.c_str(), attrUsb.c_str()); + return Status::SUCCESS; +} + +bool Usb::determineDisplayPortRetry(string linkPath, string hpdPath) { + string linkStatus, hpd; + + if(ReadFileToString(linkPath, &linkStatus) && ReadFileToString(hpdPath, &hpd)) { + if (!strncmp(linkStatus.c_str(), "2", strlen("2")) && + !strncmp(hpd.c_str(), "1", strlen("1"))) { + return true; + } + } + + return false; +} + +static int displayPortPollOpenFileHelper(const char *file, int flags) { + int fd = open(file, flags); + if (fd == -1) { + ALOGE("usbdp: open at %s failed; errno=%d", file, errno); + } + return fd; +} + +void *displayPortPollWork(void *param) { + int epoll_fd; + struct epoll_event ev_hpd, ev_pin, ev_orientation, ev_eventfd, ev_link; + int nevents = 0; + int numRetries = 0; + int hpd_fd, pin_fd, orientation_fd, link_fd; + int file_flags = O_RDONLY; + int epoll_flags; + bool orientationSet = false; + bool pinSet = false; + string displayPortUsbPath; + string hpdPath, pinAssignmentPath, orientationPath, linkPath; + ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; + + if (usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::ERROR) { + ALOGE("usbdp: could not locate usb displayport directory"); + goto error; + } + ALOGI("usbdp: displayport usb path located at %s", displayPortUsbPath.c_str()); + hpdPath = displayPortUsbPath + "hpd"; + pinAssignmentPath = displayPortUsbPath + "pin_assignment"; + orientationPath = "/sys/class/typec/port0/orientation"; + linkPath = string(kDisplayPortDrmPath) + "link_status"; + + epoll_fd = epoll_create(64); + if (epoll_fd == -1) { + ALOGE("usbdp: epoll_create failed; errno=%d", errno); + goto error; + } + + if ((hpd_fd = displayPortPollOpenFileHelper(hpdPath.c_str(), file_flags)) == -1){ + goto error; + } + if ((pin_fd = displayPortPollOpenFileHelper(pinAssignmentPath.c_str(), file_flags)) == -1){ + goto error; + } + if ((orientation_fd = displayPortPollOpenFileHelper(orientationPath.c_str(), file_flags)) + == -1){ + goto error; + } + if ((link_fd = displayPortPollOpenFileHelper(linkPath.c_str(), file_flags)) == -1){ + goto error; + } + + // Set epoll_event events and flags + epoll_flags = EPOLLIN | EPOLLET; + ev_hpd.events = epoll_flags; + ev_pin.events = epoll_flags; + ev_orientation.events = epoll_flags; + ev_eventfd.events = epoll_flags; + ev_link.events = epoll_flags; + ev_hpd.data.fd = hpd_fd; + ev_pin.data.fd = pin_fd; + ev_orientation.data.fd = orientation_fd; + ev_eventfd.data.fd = usb->mDisplayPortShutdown; + ev_link.data.fd = link_fd; + + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, hpd_fd, &ev_hpd) == -1) { + ALOGE("usbdp: epoll_ctl failed to add hpd; errno=%d", errno); + goto error; + } + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, pin_fd, &ev_pin) == -1) { + ALOGE("usbdp: epoll_ctl failed to add pin; errno=%d", errno); + goto error; + } + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, orientation_fd, &ev_orientation) == -1) { + ALOGE("usbdp: epoll_ctl failed to add orientation; errno=%d", errno); + goto error; + } + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, link_fd, &ev_link) == -1) { + ALOGE("usbdp: epoll_ctl failed to add link status; errno=%d", errno); + goto error; + } + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, usb->mDisplayPortShutdown, &ev_eventfd) == -1) { + ALOGE("usbdp: epoll_ctl failed to add orientation; errno=%d", errno); + goto error; + } + + while (!destroyDisplayPortThread) { + struct epoll_event events[64]; + + nevents = epoll_wait(epoll_fd, events, 64, -1); + if (nevents == -1) { + if (errno == EINTR) + continue; + ALOGE("usbdp: epoll_wait failed; errno=%d", errno); + break; + } + + for (int n = 0; n < nevents; n++) { + if (events[n].data.fd == hpd_fd) { + if (!pinSet || !orientationSet) { + ALOGW("usbdp: HPD may be set before pin_assignment and orientation"); + } + usb->writeDisplayPortAttribute("hpd", hpdPath); + } else if (events[n].data.fd == pin_fd) { + usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath); + pinSet = true; + } else if (events[n].data.fd == orientation_fd) { + usb->writeDisplayPortAttribute("orientation", orientationPath); + orientationSet = true; + } else if (events[n].data.fd == link_fd) { + if (usb->determineDisplayPortRetry(linkPath, hpdPath) && numRetries < 3) { + ALOGW("usbdp: Link Training Failed, rewriting hpd to trigger retry."); + usb->writeDisplayPortAttributeOverride("hpd", "1"); + numRetries++; + } + } else if (events[n].data.fd == usb->mDisplayPortShutdown) { + uint64_t flag = 0; + if (!read(usb->mDisplayPortShutdown, &flag, sizeof(flag))) { + if (errno == EAGAIN) + continue; + ALOGI("usbdp: Shutdown eventfd read error"); + goto error; + } + if (flag == DISPLAYPORT_SHUTDOWN_SET) { + ALOGI("usbdp: Shutdown eventfd triggered"); + destroyDisplayPortThread = true; + break; + } + } + } + } + +error: + ALOGI("usbdp: Exiting worker thread"); + close(hpd_fd); + close(pin_fd); + close(orientation_fd); + close(link_fd); + + if (epoll_fd >= 0) + epoll_ctl(epoll_fd, EPOLL_CTL_DEL, usb->mDisplayPortShutdown, &ev_eventfd); + close(epoll_fd); + return NULL; +} + +void Usb::setupDisplayPortPoll() { + uint64_t flag = DISPLAYPORT_SHUTDOWN_CLEAR; + + write(mDisplayPortShutdown, &flag, sizeof(flag)); + destroyDisplayPortThread = false; + + /* + * Create a background thread to poll DisplayPort system files + */ + if (pthread_create(&mDisplayPortPoll, NULL, displayPortPollWork, this)) { + ALOGE("usbdp: failed to create displayport poll thread %d", errno); + } + ALOGI("usbdp: successfully started DisplayPort poll thread"); + return; +} + +void Usb::shutdownDisplayPortPollHelper() { + pthread_join(mDisplayPortPoll, NULL); +} + +void *shutdownDisplayPortPollWork(void *param) { + ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; + + usb->shutdownDisplayPortPollHelper(); + ALOGI("usbdp: DisplayPort Thread Shutdown"); + return NULL; +} + +void Usb::shutdownDisplayPortPoll() { + uint64_t flag = DISPLAYPORT_SHUTDOWN_SET; + string displayPortUsbPath; + + // Determine if should shutdown thread + // getDisplayPortUsbPathHelper locates a DisplayPort directory, no need to double check + // directory. + if (getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) { + return; + } + + // Shutdown thread, make sure to rewrite hpd because file no longer exists. + write(mDisplayPortShutdown, &flag, sizeof(flag)); + if (pthread_create(&mDisplayPortShutdownHelper, NULL, shutdownDisplayPortPollWork, NULL)) { + ALOGE("pthread creation failed %d", errno); + } + writeDisplayPortAttributeOverride("hpd", "0"); + destroyDisplayPortThread = false; +} + } // namespace usb } // namespace hardware } // namespace android diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index d8d6d001..8a1a663e 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #define UEVENT_MSG_LEN 2048 @@ -38,6 +39,7 @@ using ::aidl::android::hardware::usb::IUsbCallback; using ::aidl::android::hardware::usb::PortRole; using ::android::base::ReadFileToString; using ::android::base::WriteStringToFile; +using ::android::base::unique_fd; using ::android::hardware::google::pixel::usb::UsbOverheatEvent; using ::android::hardware::google::pixel::usb::ZoneInfo; using ::android::hardware::thermal::V2_0::TemperatureType; @@ -46,6 +48,7 @@ using ::android::sp; using ::ndk::ScopedAStatus; using ::std::shared_ptr; using ::std::string; +using ::std::thread; constexpr char kGadgetName[] = "11210000.dwc3"; #define NEW_UDC_PATH "/sys/devices/platform/11210000.usb/" @@ -54,6 +57,9 @@ constexpr char kGadgetName[] = "11210000.dwc3"; #define VBUS_PATH NEW_UDC_PATH "dwc3_exynos_otg_b_sess" #define USB_DATA_PATH NEW_UDC_PATH "usb_data_enabled" +#define DISPLAYPORT_SHUTDOWN_CLEAR 0 +#define DISPLAYPORT_SHUTDOWN_SET 1 + struct Usb : public BnUsb { Usb(); @@ -71,6 +77,14 @@ struct Usb : public BnUsb { int64_t in_transactionId) override; ScopedAStatus resetUsbPort(const string& in_portName, int64_t in_transactionId) override; + Status getDisplayPortUsbPathHelper(string *path); + Status writeDisplayPortAttributeOverride(string attribute, string value); + Status writeDisplayPortAttribute(string attribute, string usb_path); + bool determineDisplayPortRetry(string linkPath, string hpdPath); + void setupDisplayPortPoll(); + void shutdownDisplayPortPollHelper(); + void shutdownDisplayPortPoll(); + std::shared_ptr<::aidl::android::hardware::usb::IUsbCallback> mCallback; // Protects mCallback variable pthread_mutex_t mLock; @@ -89,8 +103,16 @@ struct Usb : public BnUsb { float mPluggedTemperatureCelsius; // Usb Data status bool mUsbDataEnabled; + + // Protects writeDisplayPortToExynos(), setupDisplayPortPoll(), and + // shutdownDisplayPortPoll() + pthread_mutex_t mDisplayPortLock; + // eventfd to signal DisplayPort thread + int mDisplayPortShutdown; private: pthread_t mPoll; + pthread_t mDisplayPortPoll; + pthread_t mDisplayPortShutdownHelper; }; } // namespace usb diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc index 127d9a23..c6d38f1d 100644 --- a/usb/usb/android.hardware.usb-service.rc +++ b/usb/usb/android.hardware.usb-service.rc @@ -20,6 +20,10 @@ on post-fs 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/110f0000.drmdp/drm-displayport/hpd + chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation + chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment + chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status 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 @@ -42,4 +46,8 @@ on post-fs 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/110f0000.drmdp/drm-displayport/hpd + chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation + chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment + chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status chmod 664 /sys/devices/platform/google,pogo/enable_usb diff --git a/usb/usb/android.hardware.usb-service.xml b/usb/usb/android.hardware.usb-service.xml index 60881948..c3f07f52 100644 --- a/usb/usb/android.hardware.usb-service.xml +++ b/usb/usb/android.hardware.usb-service.xml @@ -1,7 +1,7 @@ android.hardware.usb - 1 + 2 IUsb default From 35e20dbcb57613ebe94321352e74eed9f7eb4bc9 Mon Sep 17 00:00:00 2001 From: Ankit Goyal Date: Mon, 13 Mar 2023 17:16:31 -0700 Subject: [PATCH 03/29] Add permissions for framebuffer-secure heap Bug: 245053092 Test: Secure video playback Change-Id: I83e756bd5aae53e7bb1ce03e214f64d34250fa12 --- conf/ueventd.zuma.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/ueventd.zuma.rc b/conf/ueventd.zuma.rc index 2616ce2b..ebc4e571 100644 --- a/conf/ueventd.zuma.rc +++ b/conf/ueventd.zuma.rc @@ -208,6 +208,7 @@ /dev/dma_heap/farawimg-secure 0444 system graphics /dev/dma_heap/tui-secure 0444 system graphics /dev/dma_heap/vframe-secure 0444 system drmrpc +/dev/dma_heap/framebuffer-secure 0444 system drmrpc /dev/dma_heap/vscaler-secure 0444 system graphics /dev/dma_heap/vstream-secure 0444 system drmrpc /dev/dma_heap/sensor_direct_heap 0444 system graphics From 2173dc37da793599239a974d8f7bc40b2bf1ee80 Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Wed, 5 Apr 2023 20:40:30 +0000 Subject: [PATCH 04/29] usb: Expose persistent vendor property for USB-C Dp Alt Mode The change exposes persist.vendor.usb.displayport.enabled to enable/disable USB-C Dp Alt Mode i.e. DisplayPort over USB-C. By default persist.vendor.usb.displayport.enabled is to 0 in user builds and 1 in all other build variants. Bug: 277107943 Change-Id: I596d3af52f2a813f5f78c4f9b77b6ae3dd8a161b Signed-off-by: Badhri Jagan Sridharan --- conf/init.zuma.usb.rc | 6 ++++++ device.mk | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/conf/init.zuma.usb.rc b/conf/init.zuma.usb.rc index 0f5d22c9..7b4ef192 100644 --- a/conf/init.zuma.usb.rc +++ b/conf/init.zuma.usb.rc @@ -192,3 +192,9 @@ on property:sys.usb.config=charger && property:sys.usb.configfs=1 on property:ro.bootmode=usbuwb setprop persist.vendor.usb.usbradio.config uwb_acm + +on property:persist.vendor.usb.displayport.enabled=1 + write /sys/class/typec/port0/port0.0/mode1/active "yes" + +on property:persist.vendor.usb.displayport.enabled=0 + write /sys/class/typec/port0/port0.0/mode1/active "no" diff --git a/device.mk b/device.mk index 8dfe5c49..be01d7df 100644 --- a/device.mk +++ b/device.mk @@ -196,6 +196,14 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ telephony.active_modems.max_count=2 +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.usb.displayport.enabled=1 +else +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.usb.displayport.enabled=0 +endif + USE_LASSEN_OEMHOOK := true # Use for GRIL From d47c716f58ea01a167bae53879828434655abea5 Mon Sep 17 00:00:00 2001 From: Sayanna Chandula Date: Mon, 10 Apr 2023 13:19:15 -0700 Subject: [PATCH 05/29] thermal: enabel thermal dfs stats Bug: 277625975 Test: Build and boot on device. Check DFS stats Change-Id: Id6585c27b1efbc4872ac73e58d928fc4e2d2b961 Signed-off-by: Sayanna Chandula --- pixelstats/service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index ca151a16..cd09dc1b 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -59,6 +59,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { UFS_ERR_PATH(auto_hibern8_err_count) }, .AmsRatePath = "/sys/devices/platform/audiometrics/ams_rate_read_once", + .ThermalStatsPaths = { + "/sys/devices/platform/100a0000.BIG/trip_counter", + "/sys/devices/platform/100a0000.MID/trip_counter", + "/sys/devices/platform/100a0000.LITTLE/trip_counter", + "/sys/devices/platform/100b0000.G3D/trip_counter", + "/sys/devices/platform/100b0000.TPU/trip_counter", + "/sys/devices/platform/100b0000.AUR/trip_counter", + }, .ResumeLatencyMetricsPath = "/sys/kernel/metrics/resume_latency/resume_latency_metrics", .LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics", .TempResidencyPaths = { From 063bc1b5ca100e57cf6fb6c8ffcb86cdba72a927 Mon Sep 17 00:00:00 2001 From: Chungkai Mei Date: Fri, 7 Apr 2023 01:42:17 +0000 Subject: [PATCH 06/29] devfreq: reset mif freq after boot to reduce boot time, boost mif freq when booting and reset it after booting. Bug: 274153820 Test: pass Change-Id: I9977e256e883d9c8a80887b3155ed6b028e1c0c2 Signed-off-by: Chungkai Mei --- conf/init.zuma.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index cac51162..a668810d 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -733,6 +733,9 @@ on property:sys.boot_completed=1 # Enable UFS powersaving write /dev/sys/block/bootdevice/clkgate_enable 1 + # Cancel boot devfreq + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 + # Setup final cpuset write /dev/cpuset/top-app/cpus 0-8 write /dev/cpuset/foreground/cpus 0-7 From a68ef13f2c448da9e470f79fe25448827d05dc6f Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Tue, 11 Apr 2023 10:56:17 +0800 Subject: [PATCH 07/29] Modem ML: Disable model timer Bug: 229802096 Change-Id: I008ccff9e6ce9b3d6bee2179c8924b78614afa45 --- modem_ml/modem_ml_models_user.conf | 4 ++-- modem_ml/modem_ml_models_userdebug.conf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modem_ml/modem_ml_models_user.conf b/modem_ml/modem_ml_models_user.conf index 88ab2bc7..b606ee97 100644 --- a/modem_ml/modem_ml_models_user.conf +++ b/modem_ml/modem_ml_models_user.conf @@ -1,3 +1,3 @@ #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer -sample_linear_reg,0,LEGACY,true,5000,false,0,false,0,SYNCHRONOUS_REGULAR,5000 -sample_fully_conn,0,LEGACY,true,5000,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 diff --git a/modem_ml/modem_ml_models_userdebug.conf b/modem_ml/modem_ml_models_userdebug.conf index 640bfeb1..b606ee97 100644 --- a/modem_ml/modem_ml_models_userdebug.conf +++ b/modem_ml/modem_ml_models_userdebug.conf @@ -1,3 +1,3 @@ #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer -sample_linear_reg,0,LEGACY,true,5000,true,5000,true,5000,SYNCHRONOUS_REGULAR,5000 -sample_fully_conn,0,LEGACY,true,5000,true,5000,true,5000,SYNCHRONOUS_REGULAR,5000 +sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 From f1c32332c3488e9c42008367e044f241f3abc8a5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 12 Apr 2023 15:12:43 +0000 Subject: [PATCH 08/29] zuma: Bump deqp conformance level to 2023 Bug: b/275143446 Test: atest GtsGraphicsHostTestCases:com.google.android.graphics.gts.VulkanTest#checkVulkanDeqpLevelIsHighEnough -- --abi arm64-v8a && atest GtsGraphicsHostTestCases:com.google.android.graphics.gts.OpenGlEsTest#checkOpenGlEsDeqpLevelIsHighEnough -- --abi arm64-v8a Change-Id: I17ac4c89b3f37a721473c1a687256c8b834dc896 --- device.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device.mk b/device.mk index 8dfe5c49..98b309aa 100644 --- a/device.mk +++ b/device.mk @@ -260,8 +260,8 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ - frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ - frameworks/native/data/etc/android.software.opengles.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml + frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ + frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml #endif From 2ad3697fc79aa96e8c0998ec3835992752a7f637 Mon Sep 17 00:00:00 2001 From: Kyle Zhang Date: Wed, 12 Apr 2023 21:40:47 +0000 Subject: [PATCH 09/29] Include widevine apex Bug: 275145803 Change-Id: Ia278c6113f5b501c75e31bbb09a0fb2dbdd7ae84 --- widevine/device.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/widevine/device.mk b/widevine/device.mk index c4872939..f91de716 100644 --- a/widevine/device.mk +++ b/widevine/device.mk @@ -1,4 +1,6 @@ PRODUCT_PACKAGES += \ - android.hardware.drm-service.clearkey \ - android.hardware.drm-service.widevine + android.hardware.drm-service.clearkey + +-include vendor/widevine/libwvdrmengine/apex/device/device.mk + BOARD_VENDOR_SEPOLICY_DIRS += device/google/zuma-sepolicy/widevine From 7ad7baf23da3404ca755379b11a2da2fe453e513 Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Thu, 13 Apr 2023 16:21:01 +0800 Subject: [PATCH 10/29] Increases socket buffer for 5G FR2 throughput The existing socket buffer size is unable to sustain 4.2Gbits/s. Enlarge buffer size based on LAB test result. Bug: 274709266 Test: $ iperf3 -u -c 10.174.105.148 -i1 -b450M -P10 -t60 -p 5029 --bidir DL: 4.17 Gbits/sec UL: 310 Mbits/sec Change-Id: I6c892eb7b8cf3ab6b7ecd620e1e52211e5d550bd --- conf/init.zuma.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 6c3e2aea..75f54427 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -119,7 +119,7 @@ on init symlink /data/app /factory # Apply network parameters for high data performance. - write /proc/sys/net/core/rmem_default 327680 + write /proc/sys/net/core/rmem_default 1310720 write /proc/sys/net/core/rmem_max 8388608 write /proc/sys/net/core/wmem_default 327680 write /proc/sys/net/core/wmem_max 8388608 From 65b71987b55834061b206b2e2c1aef180211f030 Mon Sep 17 00:00:00 2001 From: kadirpili Date: Thu, 23 Mar 2023 02:45:00 +0000 Subject: [PATCH 11/29] zuma: Create folder for OTA UECap Bug: 274737512 Change-Id: If6610c0687916743ff0e9ad6f1626d9c408b1a32 (cherry picked from commit 143204695c8f332153169be7050114827b22e4fd) --- conf/init.zuma.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 6c3e2aea..06f4aaf4 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -375,6 +375,9 @@ on post-fs-data # Modem SIM log folder mkdir /data/vendor/radio/sim 0771 radio system + # Modem OTA UECap folder + mkdir /data/vendor/radio/ota_uecap 0773 radio system + # Unzipped modem images folder mkdir /data/vendor/radio/image 0771 radio system From 757b16b3e45049c43f3facf5f687a8afeaf3058b Mon Sep 17 00:00:00 2001 From: "GOOGLE\\huangaustin" Date: Thu, 13 Apr 2023 17:55:07 +0800 Subject: [PATCH 12/29] [P23][Logging] Enable LTE_RLC group on P23 mask for MCS bug: 278021042 Change-Id: If4fc48c1533e2dcb1fd585d4a861e3a5bc13a834 (cherry picked from commit 7b4c719447c2ef1fa6be8439c76701c06949fcc8) --- radio/config/default.nprf | Bin 9061 -> 7090 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/radio/config/default.nprf b/radio/config/default.nprf index 34afa5098bc81144e71780abe0303c3db9cb7e8c..f383041e34ca43bce36390b9f3eea9b6d0474600 100644 GIT binary patch literal 7090 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 literal 9061 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 F_8;!N1+4%8 From 24bfbf525541c60001eb0b50b0f3d4b7f4bbe926 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 13 Apr 2023 21:06:54 +0800 Subject: [PATCH 13/29] Update health AIDL HAL to V2 Bug: 275144505 Test: TH Change-Id: I9a8a405a6ad45f97eced0065dc909c406d4c6fd0 Signed-off-by: Jack Wu --- health/android.hardware.health-service.zuma.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/health/android.hardware.health-service.zuma.xml b/health/android.hardware.health-service.zuma.xml index 98026cbd..1fe9b8d2 100644 --- a/health/android.hardware.health-service.zuma.xml +++ b/health/android.hardware.health-service.zuma.xml @@ -1,7 +1,7 @@ android.hardware.health - 1 + 2 IHealth/default From 60799979761761339829701a847b200a7beb54c9 Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Fri, 14 Apr 2023 02:07:45 +0000 Subject: [PATCH 14/29] Update media_codecs_performance_c2.xml base on UD1A.230413 - add/update sw encoder performance measure result from EVT 1.1 B1 device - add hw av1 encoder performance measure result from EVT 1.1 B1 device Bug: 271510425 Bug: 271522042 Test: run cts -m CtsVideoTestCases -t android.video.cts.VideoEncoderDecoderTest Change-Id: Idc57f9e5684cc7a30056f8a9842e814fe977ca5c --- media_codecs_performance_c2.xml | 71 +++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 22 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 2c6663e9..2b6a8a2c 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -242,38 +242,65 @@ + + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - - + + - - + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + From b8d3dd7fdebe2832946185bad8ea406a94462721 Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Fri, 14 Apr 2023 01:04:27 +0800 Subject: [PATCH 15/29] adjust watermark level Increase watermark_scale_factor to 200 to better handle burst memory allocation. Bug: 278075546 Test: boot Change-Id: Iaa6fb0f45924b3d73ebd76ae8554b58047f4755a Merged-in: Iaa6fb0f45924b3d73ebd76ae8554b58047f4755a Signed-off-by: Martin Liu --- conf/init.zuma.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 6c3e2aea..db77d782 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -105,6 +105,9 @@ on init write /sys/block/zram0/comp_algorithm lz77eh write /proc/sys/vm/page-cluster 0 + # Adjust watermark level + write /proc/sys/vm/watermark_scale_factor 200 + # Some user code relies on ro.boot.hardware.revision setprop ro.boot.hardware.revision ${ro.revision} From cc50d9950807280653973a0dd9cd3b22e323bcd5 Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Mon, 17 Apr 2023 22:43:31 +0000 Subject: [PATCH 16/29] usb: provide usb reference to DisplayPort shutdown thread Passes usb object reference to thread creation of mDisplayPortShutdownHelper so that it can properly call DisplayPort shutdown method instead of calling on NULL reference. Test: manual test on device Bug: 278395605 Change-Id: Ie4dabb5e3ae9065f57cc0fbf2593fbe399097472 --- usb/usb/Usb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 474164ee..04eabd54 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -1347,7 +1347,7 @@ void Usb::shutdownDisplayPortPoll() { // Shutdown thread, make sure to rewrite hpd because file no longer exists. write(mDisplayPortShutdown, &flag, sizeof(flag)); - if (pthread_create(&mDisplayPortShutdownHelper, NULL, shutdownDisplayPortPollWork, NULL)) { + if (pthread_create(&mDisplayPortShutdownHelper, NULL, shutdownDisplayPortPollWork, this)) { ALOGE("pthread creation failed %d", errno); } writeDisplayPortAttributeOverride("hpd", "0"); From 125c7d0880b2ced8cda097e707181d28f70b50ee Mon Sep 17 00:00:00 2001 From: Pajace Chen Date: Tue, 18 Apr 2023 13:05:11 +0800 Subject: [PATCH 17/29] Allow BatteryWidget to show bluettooh devices - Pregrant BLUETOOTH_CONNECT for settingsintelligence for Bramble, redin, and Barbet Test: NA Bug: 277269994 Change-Id: I9131eb1a0449254cb2b30d35146bdae5858e4ca6 --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 8a0f653c..49ae87b4 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -47,6 +47,8 @@ + + From 404d91090984d51ebe2acae2e6c1d3f413474b1f Mon Sep 17 00:00:00 2001 From: Cyan_Hsieh Date: Thu, 13 Apr 2023 17:25:03 +0800 Subject: [PATCH 18/29] Update ro.soc.model Bug: 275145204 Change-Id: I01d821b7aa44a622b7e6e0e9cb6e4d099bfed018 --- device-common.mk | 2 +- vendor.prop | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 vendor.prop diff --git a/device-common.mk b/device-common.mk index 95cbd19c..67fb2335 100644 --- a/device-common.mk +++ b/device-common.mk @@ -30,7 +30,7 @@ PRODUCT_COPY_FILES += \ # Set system properties identifying the chipset PRODUCT_VENDOR_PROPERTIES += ro.soc.manufacturer=Google -PRODUCT_VENDOR_PROPERTIES += ro.soc.model=ZUMA +TARGET_VENDOR_PROP += device/google/zuma/vendor.prop PRODUCT_PRODUCT_PROPERTIES += \ persist.vendor.testing_battery_profile=2 diff --git a/vendor.prop b/vendor.prop new file mode 100644 index 00000000..586a168a --- /dev/null +++ b/vendor.prop @@ -0,0 +1 @@ +ro.soc.model=Tensor G3 From 211edd092b5e72807796c2c5a913f83ca93ef953 Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Tue, 18 Apr 2023 20:47:59 +0800 Subject: [PATCH 19/29] zuma: update media_codecs_performance_c2.xml based on UD1A.230417.001 - add sw decoder performance measure result from EVT device Bug: 275148623 Test: run cts -m CtsMediaDecoderTestCases -a arm64-v8a -t android.media.decoder.cts.VideoDecoderPerfTest Change-Id: I33e54a16c61ba019b399e696d0cca395caaecab7 --- media_codecs_performance_c2.xml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 2b6a8a2c..d81c0157 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -112,8 +112,8 @@ - - + + @@ -138,8 +138,9 @@ - - + + + @@ -183,6 +184,12 @@ + + + + + + From ee129d98fa3c21ca5c264aa74066e1597c99f52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Cl=C3=A9ment=20Tosi?= Date: Tue, 18 Apr 2023 11:31:23 +0100 Subject: [PATCH 20/29] zuma: Cover pvmfw.img in vbmeta_system.img The pvmfw partition is expected to be kept in sync with the system partition so, instead of having it as a standalone partition (covered by vbmeta.img), add it to vbmeta_system. Bug: 275497314 Test: TH Change-Id: I02356aa43d83c95d3671937a6a764ba6765a3d5b --- BoardConfig-common.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index 864a3858..7f5f0c6b 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -152,6 +152,10 @@ BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 +ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false) +BOARD_AVB_VBMETA_SYSTEM += pvmfw +endif + # Enable chained vbmeta for boot images BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048 From ac3b5c0cf55f890b938600d4ef247f5ffefc5e5c Mon Sep 17 00:00:00 2001 From: Mahesh Sivasubramanian Date: Sat, 15 Apr 2023 00:30:17 +0000 Subject: [PATCH 21/29] Revert "zuma: Enable SICD after boot" This reverts commit 5cb0ef1f4adfed53b03ff6254a85292d8dee9437. Reason for revert: http://b/270965383 Bug: 278308279 Bug: 270965383 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0493c3a35bc69efae46e2dc4ada7c3db53733d4a) Merged-In: I9bf853c11cb5335306c701d9fd19b4ae72517985 Change-Id: I9bf853c11cb5335306c701d9fd19b4ae72517985 --- conf/init.zuma.rc | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 4ce505fd..c42498ca 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -823,9 +823,6 @@ on property:sys.boot_completed=1 # Disable GPU firmware logging write /sys/devices/platform/1f000000.mali/firmware_config/Log\ verbosity/cur 0 -#Enable SICD - write /sys/devices/system/cpu/cpupm/cpupm/sicd 1 - # IMS WiFi Calling service charonservice /system/vendor/bin/charon class main From a1a0096c5c176bb3344d1292ddebca0f406bf4fa Mon Sep 17 00:00:00 2001 From: "GOOGLE\\huangaustin" Date: Wed, 19 Apr 2023 17:36:34 +0800 Subject: [PATCH 22/29] [P23][Logging] Update format for mask with enabling LTE_RLC group on P23 mask for MCS bug: 278021042 Change-Id: Ib84b9112486fd4aa290759feb966edddce4789bf (cherry picked from commit 4490f093f162e4b448fa937b7c075592b3fa142d) --- radio/config/default.nprf | Bin 7090 -> 9068 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/radio/config/default.nprf b/radio/config/default.nprf index f383041e34ca43bce36390b9f3eea9b6d0474600..527094d7a91c1246c22b508dbb5af83ab6522309 100644 GIT binary patch literal 9068 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 OcRLI;v`gkcXa5V1t^@Y~ literal 7090 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 From 30c37471e20459e062ab6453da91a2900b301851 Mon Sep 17 00:00:00 2001 From: Cyan_Hsieh Date: Thu, 20 Apr 2023 18:43:34 +0800 Subject: [PATCH 23/29] Add device mk OWNERS Bug: 278167548 Change-Id: I278b665c25df60cbd6beb0c7b9ea2fad53aecd5f --- OWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OWNERS diff --git a/OWNERS b/OWNERS new file mode 100644 index 00000000..1cbf9196 --- /dev/null +++ b/OWNERS @@ -0,0 +1,2 @@ +# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details. +per-file *.mk=file:device/google/gs-common:master:/OWNERS From 59304c995ad45bca65aadab1addbca622f1cfaa5 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Sat, 15 Apr 2023 15:29:04 +0800 Subject: [PATCH 24/29] Set current date as activation date after device being provisioned This is only applied when the device is locked. Bug: 275441997 Test: set the date of first usage successfully Change-Id: I1037d673422cd198007bb13f8311b993fd5132db Signed-off-by: Jack Wu --- conf/init.zuma.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index c42498ca..c97d2505 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -823,6 +823,9 @@ on property:sys.boot_completed=1 # Disable GPU firmware logging write /sys/devices/platform/1f000000.mali/firmware_config/Log\ verbosity/cur 0 +on property:sys.boot_completed=1 && property:persist.sys.device_provisioned=1 && property:ro.boot.flash.locked=1 + write /sys/class/power_supply/battery/first_usage_date 0 + # IMS WiFi Calling service charonservice /system/vendor/bin/charon class main From 45902335e1a5b43b843b98c905e96124899bea73 Mon Sep 17 00:00:00 2001 From: Yung Ti Su Date: Fri, 21 Apr 2023 11:22:43 +0800 Subject: [PATCH 25/29] add Dolby codec config to zuma Bug: 270286386 Test: manual Change-Id: I22c2d24e709e13ed540ba9a796cb26d670abe7cf Signed-off-by: Yung Ti Su --- media_codecs_bo_c2.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml index 9ada7280..099fb57a 100644 --- a/media_codecs_bo_c2.xml +++ b/media_codecs_bo_c2.xml @@ -15,6 +15,7 @@ --> + From 785167e0d3e5fa6027ae731f92d05b096e95d050 Mon Sep 17 00:00:00 2001 From: Mahesh Sivasubramanian Date: Thu, 20 Apr 2023 22:29:20 +0000 Subject: [PATCH 26/29] Revert "Revert "zuma: Enable SICD after boot"" This reverts commit ac3b5c0cf55f890b938600d4ef247f5ffefc5e5c. Reason for revert: Issue addressed by disabling write evicts during core wakeup Bug: 278308279 Change-Id: Ib5c979483a9e28074345443158860f12f6e7ace2 --- conf/init.zuma.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index c97d2505..0b98cce2 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -823,6 +823,9 @@ on property:sys.boot_completed=1 # Disable GPU firmware logging write /sys/devices/platform/1f000000.mali/firmware_config/Log\ verbosity/cur 0 + # Enable SICD + write /sys/devices/system/cpu/cpupm/cpupm/sicd 1 + on property:sys.boot_completed=1 && property:persist.sys.device_provisioned=1 && property:ro.boot.flash.locked=1 write /sys/class/power_supply/battery/first_usage_date 0 From 4b880759a2f5f74d29949a37462aee05e99c46ce Mon Sep 17 00:00:00 2001 From: Ankit Goyal Date: Thu, 20 Apr 2023 23:19:51 -0700 Subject: [PATCH 27/29] Add memtrack Bug: 279108265 Test: dumpsys meminfo Change-Id: I9615e8e4a5484bf6c24a4cfc32a8489f6e2b24ba --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 340bcbb6..756d3b22 100644 --- a/device.mk +++ b/device.mk @@ -511,7 +511,7 @@ PRODUCT_PACKAGES += \ android.hardware.graphics.allocator-V1-service PRODUCT_PACKAGES += \ - memtrack.$(TARGET_BOARD_PLATFORM) \ + android.hardware.memtrack-service.pixel \ libion_exynos \ libion From 9b0eb78455728abc829527330e5d7147ac0b0fd3 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Mon, 24 Apr 2023 10:56:56 -0700 Subject: [PATCH 28/29] remove alloc_contig_dump_pages for CMA failure We have enough debugging tool now so remove the option. Bug: 264334863 Test: confirmed from /proc/cmdline Change-Id: Ia79e07ec159f05604c8e431e6753a79f749350a1 Signed-off-by: Minchan Kim --- BoardConfig-common.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index 864a3858..c49970b5 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -32,7 +32,6 @@ TARGET_CPU_ABI := arm64-v8a TARGET_CPU_VARIANT := cortex-a55 TARGET_CPU_VARIANT_RUNTIME := cortex-a55 -BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\" BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10870000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y BOARD_KERNEL_CMDLINE += cgroup_disable=memory From 4e29924d3d5ef1e9e13df46bf249f91593c73946 Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Thu, 20 Apr 2023 17:33:00 +0000 Subject: [PATCH 29/29] usb: Fix HAL build warnings related to DisplayPort Adds proper error handling go-to points to remove warnings arising from uninitialized variables, and removes unused queryDisplayPortStatus() method. Test: manual test on device, verify compiler warnings Bug: 278951278 Change-Id: I54f7b710a0805b32c894d741e473d64814200134 --- usb/usb/Usb.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 04eabd54..19454049 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -764,11 +764,6 @@ done: return Status::ERROR; } -Status queryDisplayPortStatus(std::vector *currentPortStatus) { - - return Status::SUCCESS; -} - void queryVersionHelper(android::hardware::usb::Usb *usb, std::vector *currentPortStatus) { Status status; @@ -1185,7 +1180,7 @@ void *displayPortPollWork(void *param) { if (usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::ERROR) { ALOGE("usbdp: could not locate usb displayport directory"); - goto error; + goto usb_path_error; } ALOGI("usbdp: displayport usb path located at %s", displayPortUsbPath.c_str()); hpdPath = displayPortUsbPath + "hpd"; @@ -1196,21 +1191,21 @@ void *displayPortPollWork(void *param) { epoll_fd = epoll_create(64); if (epoll_fd == -1) { ALOGE("usbdp: epoll_create failed; errno=%d", errno); - goto error; + goto epoll_fd_error; } if ((hpd_fd = displayPortPollOpenFileHelper(hpdPath.c_str(), file_flags)) == -1){ - goto error; + goto hpd_fd_error; } if ((pin_fd = displayPortPollOpenFileHelper(pinAssignmentPath.c_str(), file_flags)) == -1){ - goto error; + goto pin_fd_error; } if ((orientation_fd = displayPortPollOpenFileHelper(orientationPath.c_str(), file_flags)) == -1){ - goto error; + goto orientation_fd_error; } if ((link_fd = displayPortPollOpenFileHelper(linkPath.c_str(), file_flags)) == -1){ - goto error; + goto link_fd_error; } // Set epoll_event events and flags @@ -1294,15 +1289,19 @@ void *displayPortPollWork(void *param) { } error: - ALOGI("usbdp: Exiting worker thread"); - close(hpd_fd); - close(pin_fd); - close(orientation_fd); close(link_fd); - - if (epoll_fd >= 0) - epoll_ctl(epoll_fd, EPOLL_CTL_DEL, usb->mDisplayPortShutdown, &ev_eventfd); - close(epoll_fd); +link_fd_error: + close(orientation_fd); +orientation_fd_error: + close(pin_fd); +pin_fd_error: + close(hpd_fd); +hpd_fd_error: + epoll_ctl(epoll_fd, EPOLL_CTL_DEL, usb->mDisplayPortShutdown, &ev_eventfd); + close(epoll_fd); +epoll_fd_error: +usb_path_error: + ALOGI("usbdp: Exiting worker thread"); return NULL; }