From 26ec3953075483a85add031ad0603f72ee2409b0 Mon Sep 17 00:00:00 2001 From: Midas Chien Date: Mon, 5 Jun 2023 08:40:31 +0000 Subject: display: enable full range DPU downscale capability Bug: 264923279 Test: downscale CUJs, simulate downscale case by hwc-test tool Change-Id: I802c4fbfaa75cc231a16e4060d9d302f665f439f --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index a2dd7b2..ea678ef 100644 --- a/device.mk +++ b/device.mk @@ -702,7 +702,7 @@ PRODUCT_COPY_FILES += \ device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb # limit DPP downscale ratio -PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=3 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=4 # Cannot reference variables defined in BoardConfig.mk, uncomment this if # BOARD_USES_EXYNOS_DSS_FEATURE is true -- cgit v1.2.3 From 88a5bd26841b23a650cef0a7815ddabdc2d3ad8e Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Wed, 14 Jun 2023 11:51:24 +0800 Subject: power: update sysfs path for NFC state residency Bug: 270498656 Test: run singleCommand pts -l verbose -m PtsPowerTestCases Change-Id: I491335c052de363c422ede7a3fb49d5a164a0d7c Signed-off-by: Darren Hsu --- powerstats/ZumaCommonDataProviders.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/powerstats/ZumaCommonDataProviders.cpp b/powerstats/ZumaCommonDataProviders.cpp index cd841d2..3595dfe 100644 --- a/powerstats/ZumaCommonDataProviders.cpp +++ b/powerstats/ZumaCommonDataProviders.cpp @@ -32,6 +32,7 @@ #include #include #include +#include using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvider; using aidl::android::hardware::power::stats::AocStateResidencyDataProvider; @@ -678,6 +679,14 @@ void addNFC(std::shared_ptr p) { cfgs.emplace_back(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders), "NFC", "NFC subsystem"); + std::string path; + struct stat buffer; + for (int i = 0; i < 10; i++) { + std::string idx = std::to_string(i); + path = "/sys/devices/platform/10c80000.hsi2c/i2c-" + idx + "/" + idx + "-0008/power_stats"; + if (!stat(path.c_str(), &buffer)) + break; + } p->addStateResidencyDataProvider(std::make_unique( - "/sys/devices/platform/10c80000.hsi2c/i2c-6/6-0008/power_stats", cfgs)); + path, cfgs)); } -- cgit v1.2.3 From 3e3eecbbeca2c44e8be7751f86dc644695ab1695 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 15 Jun 2023 16:34:24 +0800 Subject: Set current date as activation date after device being provisioned allow setting it when the device is unlocked. Bug: 286767821 Test: set the date of first usage successfully Change-Id: I2c4d21662e88a9d8d2b857547d12825575a81331 Signed-off-by: Jack Wu --- 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 e303dcc..f955006 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -863,7 +863,7 @@ on property:sys.boot_completed=1 # 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 +on property:sys.boot_completed=1 && property:persist.sys.device_provisioned=1 write /sys/class/power_supply/battery/first_usage_date 0 # IMS WiFi Calling -- cgit v1.2.3 From 574d046bd7c3a2d81f48caf3881a61ad0d283e9a Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Wed, 7 Jun 2023 07:27:33 +0000 Subject: Usb: Check for displayport when booting When booting check whether displayport driver has been probed and signal hpd events as needed. Pin config and orientation needs to be queried before signalling hpd. Bug: 282223693 Change-Id: Iddb0921b363e49c41c0f6f635887b4daf4d19561 --- usb/usb/Usb.cpp | 48 ++++++++++++++++++++++++++++++++++++++++-------- usb/usb/Usb.h | 1 + 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index c995542..11079ee 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -817,11 +817,22 @@ done: void queryVersionHelper(android::hardware::usb::Usb *usb, std::vector *currentPortStatus) { Status status; + string displayPortUsbPath; + pthread_mutex_lock(&usb->mLock); status = getPortStatusHelper(usb, currentPortStatus); queryMoistureDetectionStatus(currentPortStatus); queryPowerTransferStatus(currentPortStatus); queryNonCompliantChargerStatus(currentPortStatus); + pthread_mutex_lock(&usb->mDisplayPortLock); + if (!usb->mDisplayPortFirstSetupDone && + usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) { + + ALOGI("usbdp: boot with display connected or usb hal restarted"); + usb->setupDisplayPortPoll(); + } + pthread_mutex_unlock(&usb->mDisplayPortLock); + if (usb->mCallback != NULL) { ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus, status); @@ -1184,7 +1195,7 @@ Status Usb::writeDisplayPortAttribute(string attribute, string usb_path) { uint32_t temp; if (!::android::base::ParseUint(Trim(attrUsb), &temp)) { ALOGE("usbdp: failed parsing irq_hpd_count:%s", attrUsb.c_str()); - return Status::SUCCESS; + return Status::ERROR; } // Used to cache the values read from tcpci's irq_hpd_count. // Update drm driver when cached value is not the same as the read value. @@ -1203,7 +1214,7 @@ Status Usb::writeDisplayPortAttribute(string attribute, string usb_path) { } else { // Don't write anything ALOGI("usbdp: Pin config not yet chosen, nothing written."); - return Status::SUCCESS; + return Status::ERROR; } } @@ -1250,6 +1261,11 @@ void *displayPortPollWork(void *param) { string tcpcI2cBus, linkPath; ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; + if (usb->mDisplayPortPollRunning) { + ALOGI("usbdp: displayPortPollWork already running. Shutting down duplicate."); + return NULL; + } + if (usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::ERROR) { ALOGE("usbdp: could not locate usb displayport directory"); goto usb_path_error; @@ -1265,7 +1281,7 @@ void *displayPortPollWork(void *param) { getI2cBusHelper(&tcpcI2cBus); irqHpdCountPath = kI2CPath + tcpcI2cBus + "/" + tcpcI2cBus + kIrqHpdCounPath; - ALOGI("udbdp: irqHpdCountPath:%s", irqHpdCountPath.c_str()); + ALOGI("usbdp: irqHpdCountPath:%s", irqHpdCountPath.c_str()); epoll_fd = epoll_create(64); if (epoll_fd == -1) { @@ -1336,14 +1352,28 @@ void *displayPortPollWork(void *param) { if (events[n].data.fd == hpd_fd) { if (!pinSet || !orientationSet) { ALOGW("usbdp: HPD may be set before pin_assignment and orientation"); + if (!pinSet && + usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath) == + Status::SUCCESS) { + pinSet = true; + } + if (!orientationSet && + usb->writeDisplayPortAttribute("orientation", orientationPath) == + Status::SUCCESS) { + orientationSet = true; + } } usb->writeDisplayPortAttribute("hpd", hpdPath); } else if (events[n].data.fd == pin_fd) { - usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath); - pinSet = true; + if (usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath) == + Status::SUCCESS) { + pinSet = true; + } } else if (events[n].data.fd == orientation_fd) { - usb->writeDisplayPortAttribute("orientation", orientationPath); - orientationSet = true; + if (usb->writeDisplayPortAttribute("orientation", orientationPath) == + Status::SUCCESS) { + orientationSet = true; + } } else if (events[n].data.fd == usb->mDisplayPortEventPipe) { uint64_t flag = 0; if (!read(usb->mDisplayPortEventPipe, &flag, sizeof(flag))) { @@ -1387,6 +1417,7 @@ void Usb::setupDisplayPortPoll() { write(mDisplayPortEventPipe, &flag, sizeof(flag)); destroyDisplayPortThread = false; + mDisplayPortFirstSetupDone = true; /* * Create a background thread to poll DisplayPort system files @@ -1417,7 +1448,8 @@ void Usb::shutdownDisplayPortPoll() { // Determine if should shutdown thread // getDisplayPortUsbPathHelper locates a DisplayPort directory, no need to double check // directory. - if (getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) { + if (getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS || + !mDisplayPortPollRunning) { return; } diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index cdac4b5..1ad66bb 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -106,6 +106,7 @@ struct Usb : public BnUsb { bool mUsbDataEnabled; // True when mDisplayPortPoll pthread is running volatile bool mDisplayPortPollRunning; + volatile bool mDisplayPortFirstSetupDone; // Used to cache the values read from tcpci's irq_hpd_count. // Update drm driver when cached value is not the same as the read value. uint32_t mIrqHpdCountCache; -- cgit v1.2.3 From 78f6294e381ca4df70b28d1d0f07aff77b73574c Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Wed, 14 Jun 2023 01:05:08 +0000 Subject: Usb: shutdown old displayport poll thread when multiple start up Better enforces that only one DisplayPort poll thread should be active at once. If a new call to setup is made from additional bind uevents before a disconnect occurs, tells the old thread to shutdown and awaits signaling before a new worker thread spins up. Test: manual testing on device Bug: 286593610 Change-Id: I1707970c500915fd4abb161d0b3a424bbb2bddca --- usb/usb/Usb.cpp | 145 +++++++++++++++++++++++++++++++++++++++++--------------- usb/usb/Usb.h | 7 ++- 2 files changed, 112 insertions(+), 40 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 11079ee..7407077 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -452,6 +452,9 @@ Usb::Usb() ZoneInfo(TemperatureType::UNKNOWN, kThermalZoneForTempReadSecondary2, ThrottlingSeverity::NONE)}, kSamplingIntervalSec), mUsbDataEnabled(true), + mDisplayPortPollRunning(false), + mDisplayPortPollStarting(false), + mDisplayPortCVLock(PTHREAD_MUTEX_INITIALIZER), mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER) { pthread_condattr_t attr; if (pthread_condattr_init(&attr)) { @@ -466,6 +469,10 @@ Usb::Usb() ALOGE("pthread_cond_init failed: %s", strerror(errno)); abort(); } + if (pthread_cond_init(&mDisplayPortCV, &attr)) { + ALOGE("usbdp: pthread_cond_init failed: %s", strerror(errno)); + abort(); + } if (pthread_condattr_destroy(&attr)) { ALOGE("pthread_condattr_destroy failed: %s", strerror(errno)); abort(); @@ -1005,7 +1012,7 @@ static void uevent_event(uint32_t /*epevents*/, struct data *payload) { pthread_mutex_unlock(&payload->usb->mDisplayPortLock); } else if (uevent_type == UeventType::CHANGE) { pthread_mutex_lock(&payload->usb->mDisplayPortLock); - payload->usb->shutdownDisplayPortPoll(); + payload->usb->shutdownDisplayPortPoll(false); pthread_mutex_unlock(&payload->usb->mDisplayPortLock); } break; @@ -1243,7 +1250,7 @@ bool Usb::determineDisplayPortRetry(string linkPath, string hpdPath) { 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); + ALOGE("usbdp: worker: open at %s failed; errno=%d", file, errno); } return fd; } @@ -1261,19 +1268,15 @@ void *displayPortPollWork(void *param) { string tcpcI2cBus, linkPath; ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; - if (usb->mDisplayPortPollRunning) { - ALOGI("usbdp: displayPortPollWork already running. Shutting down duplicate."); - return NULL; - } + usb->mDisplayPortPollRunning = true; + usb->mDisplayPortPollStarting = false; if (usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::ERROR) { - ALOGE("usbdp: could not locate usb displayport directory"); + ALOGE("usbdp: worker: could not locate usb displayport directory"); goto usb_path_error; } - usb->mDisplayPortPollRunning = true; - - ALOGI("usbdp: displayport usb path located at %s", displayPortUsbPath.c_str()); + ALOGI("usbdp: worker: displayport usb path located at %s", displayPortUsbPath.c_str()); hpdPath = displayPortUsbPath + "hpd"; pinAssignmentPath = displayPortUsbPath + "pin_assignment"; orientationPath = "/sys/class/typec/port0/orientation"; @@ -1281,11 +1284,11 @@ void *displayPortPollWork(void *param) { getI2cBusHelper(&tcpcI2cBus); irqHpdCountPath = kI2CPath + tcpcI2cBus + "/" + tcpcI2cBus + kIrqHpdCounPath; - ALOGI("usbdp: irqHpdCountPath:%s", irqHpdCountPath.c_str()); + ALOGI("usbdp: worker: irqHpdCountPath:%s", irqHpdCountPath.c_str()); epoll_fd = epoll_create(64); if (epoll_fd == -1) { - ALOGE("usbdp: epoll_create failed; errno=%d", errno); + ALOGE("usbdp: worker: epoll_create failed; errno=%d", errno); goto epoll_fd_error; } @@ -1317,23 +1320,23 @@ void *displayPortPollWork(void *param) { 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); + ALOGE("usbdp: worker: 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); + ALOGE("usbdp: worker: 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); + ALOGE("usbdp: worker: 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); + ALOGE("usbdp: worker: epoll_ctl failed to add link status; errno=%d", errno); goto error; } if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, usb->mDisplayPortEventPipe, &ev_eventfd) == -1) { - ALOGE("usbdp: epoll_ctl failed to add orientation; errno=%d", errno); + ALOGE("usbdp: worker: epoll_ctl failed to add orientation; errno=%d", errno); goto error; } @@ -1344,14 +1347,14 @@ void *displayPortPollWork(void *param) { if (nevents == -1) { if (errno == EINTR) continue; - ALOGE("usbdp: epoll_wait failed; errno=%d", errno); + ALOGE("usbdp: worker: 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"); + ALOGW("usbdp: worker: HPD may be set before pin_assignment and orientation"); if (!pinSet && usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath) == Status::SUCCESS) { @@ -1379,15 +1382,15 @@ void *displayPortPollWork(void *param) { if (!read(usb->mDisplayPortEventPipe, &flag, sizeof(flag))) { if (errno == EAGAIN) continue; - ALOGI("usbdp: Shutdown eventfd read error"); + ALOGI("usbdp: worker: Shutdown eventfd read error"); goto error; } if (flag == DISPLAYPORT_SHUTDOWN_SET) { - ALOGI("usbdp: Shutdown eventfd triggered"); + ALOGI("usbdp: worker: Shutdown eventfd triggered"); destroyDisplayPortThread = true; break; } else if (flag == DISPLAYPORT_IRQ_HPD_COUNT_CHECK) { - ALOGI("usbdp: IRQ_HPD event through DISPLAYPORT_IRQ_HPD_COUNT_CHECK"); + ALOGI("usbdp: worker: IRQ_HPD event through DISPLAYPORT_IRQ_HPD_COUNT_CHECK"); usb->writeDisplayPortAttribute("irq_hpd_count", irqHpdCountPath); } } @@ -1408,58 +1411,122 @@ hpd_fd_error: epoll_fd_error: usb_path_error: usb->mDisplayPortPollRunning = false; - ALOGI("usbdp: Exiting worker thread"); + ALOGI("usbdp: worker: exiting worker thread"); return NULL; } +static struct timespec setTimespecTimer(int debounceMs) { + struct timespec to; + struct timespec now; + + clock_gettime(CLOCK_MONOTONIC, &now); + to.tv_nsec = now.tv_nsec + ((debounceMs % 1000) * 1000000); + to.tv_sec = now.tv_sec + (debounceMs / 1000); + if (to.tv_nsec >= 1000000000) { + to.tv_nsec -= 1000000000; + to.tv_sec += 1; + } + + return to; +} + void Usb::setupDisplayPortPoll() { uint64_t flag = DISPLAYPORT_SHUTDOWN_CLEAR; + mDisplayPortFirstSetupDone = true; + int ret; + + ALOGI("usbdp: setup: beginning setup for displayport poll thread"); + + /* + * If thread is currently starting, then it hasn't setup DisplayPort fd's, and we can abandon + * this process. + */ + if (mDisplayPortPollStarting) { + ALOGI("usbdp: setup: abandoning poll thread because another startup is in progress"); + return; + } + + /* + * Check to see if thread is currently running. If it is, then we assume that it must have + * invalid DisplayPort fd's and the new thread takes over. + */ + if (mDisplayPortPollRunning) { + shutdownDisplayPortPoll(true); + pthread_mutex_lock(&mDisplayPortCVLock); + struct timespec to = setTimespecTimer(DISPLAYPORT_POLL_WAIT_MS); + ret = pthread_cond_timedwait(&mDisplayPortCV, &mDisplayPortCVLock, &to); + if (ret == ETIMEDOUT) { + ALOGI("usbdp: setup: Wait for poll to shutdown timed out, starting new poll anyways."); + } + pthread_mutex_unlock(&mDisplayPortCVLock); + } + // Indicate that startup procedure is initiated (mutex protects two threads running setup at + // once) + mDisplayPortPollStarting = true; + + // Reset shutdown signals because shutdown() does not perform self clean-up write(mDisplayPortEventPipe, &flag, sizeof(flag)); destroyDisplayPortThread = false; - mDisplayPortFirstSetupDone = true; /* * 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); + ALOGE("usbdp: setup: failed to create displayport poll thread %d", errno); + goto error; } - ALOGI("usbdp: successfully started DisplayPort poll thread"); + ALOGI("usbdp: setup: successfully started displayport poll thread"); + return; + +error: + mDisplayPortPollStarting = false; return; } void Usb::shutdownDisplayPortPollHelper() { + uint64_t flag = DISPLAYPORT_SHUTDOWN_SET; + + // Write shutdown signal to child thread. + write(mDisplayPortEventPipe, &flag, sizeof(flag)); pthread_join(mDisplayPortPoll, NULL); + writeDisplayPortAttributeOverride("hpd", "0"); + pthread_mutex_lock(&mDisplayPortCVLock); + pthread_cond_signal(&mDisplayPortCV); + pthread_mutex_unlock(&mDisplayPortCVLock); } void *shutdownDisplayPortPollWork(void *param) { ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; usb->shutdownDisplayPortPollHelper(); - ALOGI("usbdp: DisplayPort Thread Shutdown"); + ALOGI("usbdp: shutdown: displayport thread shutdown complete."); return NULL; } -void Usb::shutdownDisplayPortPoll() { - uint64_t flag = DISPLAYPORT_SHUTDOWN_SET; +void Usb::shutdownDisplayPortPoll(bool force) { string displayPortUsbPath; - // Determine if should shutdown thread - // getDisplayPortUsbPathHelper locates a DisplayPort directory, no need to double check - // directory. - if (getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS || - !mDisplayPortPollRunning) { + ALOGI("usbdp: shutdown: beginning shutdown for displayport poll thread"); + + /* + * Determine if should shutdown thread + * + * getDisplayPortUsbPathHelper locates a DisplayPort directory, no need to double check + * directory. + * + * Force is put in place to shutdown even when displayPortUsbPath is still present. + * Happens when back to back BIND events are sent and fds are no longer current. + */ + if (!mDisplayPortPollRunning || + (!force && getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS)) { return; } - // Shutdown thread, make sure to rewrite hpd because file no longer exists. - write(mDisplayPortEventPipe, &flag, sizeof(flag)); + // Shutdown is nonblocking to let other usb operations continue if (pthread_create(&mDisplayPortShutdownHelper, NULL, shutdownDisplayPortPollWork, this)) { - ALOGE("pthread creation failed %d", errno); + ALOGE("usbdp: shutdown: shutdown worker pthread creation failed %d", errno); } - writeDisplayPortAttributeOverride("hpd", "0"); - destroyDisplayPortThread = false; } } // namespace usb diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 1ad66bb..892d769 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -61,6 +61,8 @@ constexpr char kGadgetName[] = "11210000.dwc3"; #define DISPLAYPORT_SHUTDOWN_SET 1 #define DISPLAYPORT_IRQ_HPD_COUNT_CHECK 3 +#define DISPLAYPORT_POLL_WAIT_MS 100 + struct Usb : public BnUsb { Usb(); @@ -84,7 +86,7 @@ struct Usb : public BnUsb { bool determineDisplayPortRetry(string linkPath, string hpdPath); void setupDisplayPortPoll(); void shutdownDisplayPortPollHelper(); - void shutdownDisplayPortPoll(); + void shutdownDisplayPortPoll(bool force); std::shared_ptr<::aidl::android::hardware::usb::IUsbCallback> mCallback; // Protects mCallback variable @@ -106,6 +108,9 @@ struct Usb : public BnUsb { bool mUsbDataEnabled; // True when mDisplayPortPoll pthread is running volatile bool mDisplayPortPollRunning; + volatile bool mDisplayPortPollStarting; + pthread_cond_t mDisplayPortCV; + pthread_mutex_t mDisplayPortCVLock; volatile bool mDisplayPortFirstSetupDone; // Used to cache the values read from tcpci's irq_hpd_count. // Update drm driver when cached value is not the same as the read value. -- cgit v1.2.3 From dc2ab81aa8d0a77e60a34ba8c184aeaa2db01fe0 Mon Sep 17 00:00:00 2001 From: Hsiu-Chang Chen Date: Tue, 27 Jun 2023 11:59:27 +0800 Subject: wifi: convert WIFI_FEATURE_IMU_DETECTION to the equivalent soong variable Bug: 287607876 Test: SAR scenario is set properly with motion sensor status Change-Id: Ib5ea227da1f3c2994fc78db32d08dffc54ec0e2c --- wifi/qcom/BoardConfig-wifi.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wifi/qcom/BoardConfig-wifi.mk b/wifi/qcom/BoardConfig-wifi.mk index 0c276be..2cdf742 100644 --- a/wifi/qcom/BoardConfig-wifi.mk +++ b/wifi/qcom/BoardConfig-wifi.mk @@ -44,3 +44,6 @@ WIFI_DRIVER_STATE_OFF := "OFF" PRODUCT_COPY_FILES += \ $(LOCAL_WIFI_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ $(LOCAL_WIFI_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf + +# Add WIFI_FEATURE_IMU_DETECTION to soong_config +$(call soong_config_set,wifi,feature_imu_detection,$(WIFI_FEATURE_IMU_DETECTION)) -- cgit v1.2.3 From 0ad2dcf1b1315fa75552e39f972be967c79377dc Mon Sep 17 00:00:00 2001 From: Petri Gynther Date: Tue, 27 Jun 2023 17:18:16 -0700 Subject: Revert "Disable DP on all images" This reverts commit 9beb8589996db37841580ba409bd502325673182. Re-enable DP on udc-qpr-dev. Bug: 288506710 Change-Id: Iee772dfa1f41b235fc0aa9f024dca1dc58085f16 --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 4e8c733..636c43e 100644 --- a/device.mk +++ b/device.mk @@ -205,7 +205,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PROPERTY_OVERRIDES += \ - persist.vendor.usb.displayport.enabled=0 + persist.vendor.usb.displayport.enabled=1 else PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.usb.displayport.enabled=0 -- cgit v1.2.3 From 424eff53802ca2c15a27930c56fcd645d84e1510 Mon Sep 17 00:00:00 2001 From: Poomarin Phloyphisut Date: Wed, 28 Jun 2023 10:30:13 +0000 Subject: pixelstats: add pcm_latency and pcm_count sysfs for VendorAudioPcmStatsReported Bug: 280248990 Test: Local Test Change-Id: I0b476417bd14972681c7ea7fb18ddff2aa8ed4ee --- pixelstats/service.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index e63ba0f..d5adf94 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -91,7 +91,10 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state", .WavesPath = "/sys/devices/platform/audiometrics/waves", .AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count", - .AdaptedInfoDurationPath = "/sys/devices/platform/audiometrics/adapted_info_active_duration" + .AdaptedInfoDurationPath = "/sys/devices/platform/audiometrics/adapted_info_active_duration", + .CCARatePath = "/sys/devices/platform/audiometrics/cca_rate_read_once", + .PcmLatencyPath = "/sys/devices/platform/audiometrics/pcm_latency", + .PcmCountPath = "/sys/devices/platform/audiometrics/pcm_count" }; const struct UeventListener::UeventPaths ueventPaths = { -- cgit v1.2.3 From 8f1df837ac0c7c4988b45028b3f1e0f74d6bf06a Mon Sep 17 00:00:00 2001 From: Luis Delgado de Mendoza Garcia Date: Mon, 1 May 2023 14:54:49 -0700 Subject: Add chre dedicated channel and start using them in chre_daemon. Adding the necessary entries to ueventd and enabling the flag for chre_daemon to start using the channel. Bug: 241960170 Test: in-device verification. Change-Id: I22936d6b458b053806ac4e24a036b833024320d7 --- conf/ueventd.zuma.rc | 4 ++++ device.mk | 1 + 2 files changed, 5 insertions(+) diff --git a/conf/ueventd.zuma.rc b/conf/ueventd.zuma.rc index 13ca8eb..9f4d2b3 100644 --- a/conf/ueventd.zuma.rc +++ b/conf/ueventd.zuma.rc @@ -151,6 +151,10 @@ /dev/acd-com.google.usf 0660 system system /dev/acd-com.google.usf.non_wake_up 0660 system system +# CHRE (USF) +/dev/acd-com.google.chre 0660 system system +/dev/acd-com.google.chre.non_wake_up 0660 system system + # LWIS /dev/lwis* 0660 system system diff --git a/device.mk b/device.mk index 02c0766..ee66225 100644 --- a/device.mk +++ b/device.mk @@ -393,6 +393,7 @@ PRODUCT_COPY_FILES += \ ## Enable the CHRE Daemon CHRE_USF_DAEMON_ENABLED := true +CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true PRODUCT_PACKAGES += \ chre \ preloaded_nanoapps.json -- cgit v1.2.3 From c3e8caa62ffd500be7d4004be40f77a4610c620d Mon Sep 17 00:00:00 2001 From: Randall Huang Date: Wed, 5 Jul 2023 10:41:46 +0800 Subject: fstab: add the noatime for read-only ext4 partitions This is to avoid unnecessary ext4 behavior Bug: 289631992 Test: boot to home Change-Id: If86f229c18b0a8aa2d2361a9844b235e06ce9cf1 Signed-off-by: Randall Huang --- conf/fstab.modem | 2 +- conf/fstab.zuma.in | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/conf/fstab.modem b/conf/fstab.modem index a5e5fd4..ffa271e 100644 --- a/conf/fstab.modem +++ b/conf/fstab.modem @@ -1,4 +1,4 @@ # Android fstab file. # # Create the specific fstab file for modem partition as flexibility -/dev/block/platform/13200000.ufs/by-name/modem /mnt/vendor/modem_img ext4 ro,defaults,context=u:object_r:modem_img_file:s0,barrier=1 wait,slotselect +/dev/block/platform/13200000.ufs/by-name/modem /mnt/vendor/modem_img ext4 noatime,ro,context=u:object_r:modem_img_file:s0 wait,slotselect diff --git a/conf/fstab.zuma.in b/conf/fstab.zuma.in index e749162..d079c8e 100644 --- a/conf/fstab.zuma.in +++ b/conf/fstab.zuma.in @@ -4,14 +4,14 @@ # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK # # -system /system ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system /system ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 # During compliance testing, the previous line would fail (because GSI is ext4), and the next line would be used to mount GSI. -system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 -system_dlkm /system_dlkm ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 -system_ext /system_ext ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 -product /product ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 -vendor /vendor ext4 ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128 -vendor_dlkm /vendor_dlkm ext4 ro wait,slotselect,avb=vbmeta,logical,first_stage_mount +system /system ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system_dlkm /system_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system_ext /system_ext ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +product /product ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +vendor /vendor ext4 noatime,ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128 +vendor_dlkm /vendor_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta,logical,first_stage_mount /dev/block/platform/13200000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/init_boot /init_boot emmc defaults slotselect,avb=init_boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable -- cgit v1.2.3 From 07ce06737e4921a0da4cb303040a33a61d7fbb65 Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Thu, 6 Jul 2023 20:27:54 +0000 Subject: Bump IDebugManager version to 4 Bug: 278914238 Test: build Change-Id: Ie2f14e9c3206a8a198e3b42e786b63f6cde49ed9 --- device_framework_matrix_product.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 9c4d9a2..6401215 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -90,7 +90,7 @@ com.google.face.debug - 3 + 4 IDebugHost default -- cgit v1.2.3 From 1ac9ce7219cfa05f8641a90f1bd3acced85102f5 Mon Sep 17 00:00:00 2001 From: Ian Elliott Date: Wed, 28 Jun 2023 10:54:59 -0600 Subject: zuma: Enable SkiaVk as RenderEngine backend This changes RenderEngine from using the SkiaGL backend to using the SkiaVk backend. Bug: 290248072 Test: Manual testing Change-Id: I79088ba449eb783dfef70887ec5439f9609b62f9 --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 636c43e..06982f4 100644 --- a/device.mk +++ b/device.mk @@ -290,7 +290,7 @@ PRODUCT_COPY_FILES += \ PRODUCT_VENDOR_PROPERTIES += \ ro.opengles.version=196610 \ graphics.gpu.profiler.support=true \ - debug.renderengine.backend=skiaglthreaded \ + debug.renderengine.backend=skiavkthreaded \ # GRAPHICS - GPU (end) # #################### -- cgit v1.2.3 From 0b6b27e3bdd44dec6a376cd9dd18e5dac4406911 Mon Sep 17 00:00:00 2001 From: Cheng Chang Date: Mon, 26 Jun 2023 03:32:17 +0000 Subject: gps: separate gps build system to device Bug: 288813677 Test: compile for different devices and check binary. Test: verification test at b/288813677 Change-Id: If704c304a691d9ba8de08ab295dae86b07ed25d8 --- device.mk | 9 --------- 1 file changed, 9 deletions(-) diff --git a/device.mk b/device.mk index 7dcdd6f..f42d5e2 100644 --- a/device.mk +++ b/device.mk @@ -41,15 +41,6 @@ include device/google/gs-common/misc_writer/misc_writer.mk include device/google/zuma/dumpstate/item.mk -ifneq ($(BOARD_WITHOUT_RADIO),true) -# Release stable version to factory image -ifneq ($(filter factory_%,$(TARGET_PRODUCT)),) - include device/google/gs-common/gps/brcm/device.mk -else - include device/google/gs-common/gps/brcm/device_v2.mk -endif -endif - TARGET_BOARD_PLATFORM := zuma ALLOW_MISSING_DEPENDENCIES := true -- cgit v1.2.3 From ea94fc0bd54c3aab857d099be7f2053f8b325c0a Mon Sep 17 00:00:00 2001 From: Leo Chen Date: Fri, 21 Jul 2023 03:05:00 +0000 Subject: Update IDisplay to V9 Bug: 255986866 Bug: 227384721 Change-Id: I857301628b41104d3411fcc84d6a5ddd3e2fe008 --- device_framework_matrix_product.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index ff7abb2..fd21189 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -106,7 +106,7 @@ com.google.hardware.pixel.display - 8 + 9 IDisplay default -- cgit v1.2.3 From 4e215e510bc10679b4a884af4b001fcb21d73db3 Mon Sep 17 00:00:00 2001 From: Carter Hsu Date: Fri, 28 Jul 2023 10:52:39 +0800 Subject: audio: set CCA default value by project Bug: 293550905 Test: build pass Change-Id: I0915a2a944ec9369eb59bffa3d23ade21085be57 Signed-off-by: Carter Hsu --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index f293a56..b8306b4 100644 --- a/device.mk +++ b/device.mk @@ -1019,7 +1019,6 @@ $(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT)) ## Audio properties ##Audio Vendor property PRODUCT_PROPERTY_OVERRIDES += \ - persist.vendor.audio.cca.enabled=false \ persist.vendor.audio.cca.unsupported=false PRODUCT_PROPERTY_OVERRIDES += \ -- cgit v1.2.3 From fa267915a43f94ef8b14bb9988e713c0da7a5f40 Mon Sep 17 00:00:00 2001 From: Ziyi Cui Date: Thu, 4 May 2023 20:30:53 +0000 Subject: zuma: Add path reading for StormIRQ Bug: 279486693 Test: Verified the existence of atom and correctness of atom stats adb shell cmd stats print-logs && logcat -b all | grep -i 105043 Merged-In: I429e01b68fa4a22473c0b57dbf63ee6f579c5f18 Change-Id: I429e01b68fa4a22473c0b57dbf63ee6f579c5f18 Signed-off-by: Ziyi Cui (cherry picked from commit 4d8bc4d7440a4644c69d513662727c269d02b2d5) --- pixelstats/pixelstats-vendor.zuma.rc | 3 ++- pixelstats/service.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pixelstats/pixelstats-vendor.zuma.rc b/pixelstats/pixelstats-vendor.zuma.rc index d324b6a..70d875e 100644 --- a/pixelstats/pixelstats-vendor.zuma.rc +++ b/pixelstats/pixelstats-vendor.zuma.rc @@ -1,6 +1,7 @@ on property:sys.boot_completed=1 start vendor.pixelstats_vendor - +on post-fs-data + chown system system /sys/kernel/metrics/irq/stats_reset service vendor.pixelstats_vendor /vendor/bin/pixelstats-vendor class hal user system diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index d5adf94..c5b20b4 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -70,6 +70,8 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { }, .ResumeLatencyMetricsPath = "/sys/kernel/metrics/resume_latency/resume_latency_metrics", .LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics", + .StormIRQMetricsPath = "/sys/kernel/metrics/irq/storm_irq_metrics", + .IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset", .TempResidencyAndResetPaths = { { "/sys/kernel/metrics/thermal/tr_by_group/tmu/stats", -- cgit v1.2.3 From 03ae83d4e6d83e782f917369fe74ccc95779997e Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Tue, 15 Aug 2023 04:24:18 +0000 Subject: Support variable refresh rate when typing on zuma Enable config_variableRefreshRateTypingSupported for zuma devices. Bug: 283055450 Test: build Change-Id: I695b48392fc134735705f05f74a854fbfaac108c --- overlay/frameworks/base/core/res/res/values/config.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index f74c3b5..73ba083 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -284,4 +284,7 @@ true + + + true -- cgit v1.2.3 From ab6fdd2fea4b963e604a5d63de19ee35d9b1d4cb Mon Sep 17 00:00:00 2001 From: Alec Mouri Date: Thu, 17 Aug 2023 21:47:27 +0000 Subject: Enable dimming in gamma space in screenshots for adaptive mode This fixes a flicker during screen rotation Bug: 293560925 Test: Youtube HDR playback (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d836d5d5ad02c729db581f1c5595c019946e96ab) Merged-In: Icd7ab0ab7f7d4295785f6840788bb33e327b3bc6 Change-Id: Icd7ab0ab7f7d4295785f6840788bb33e327b3bc6 --- device.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index f9e3aa2..acf7b22 100644 --- a/device.mk +++ b/device.mk @@ -658,7 +658,8 @@ endif PRODUCT_PROPERTY_OVERRIDES += \ debug.sf.disable_backpressure=0 \ debug.sf.enable_gl_backpressure=1 \ - debug.sf.enable_sdr_dimming=1 + debug.sf.enable_sdr_dimming=1 \ + debug.sf.dim_in_gamma_in_enhanced_screenshots=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000 -- cgit v1.2.3 From 695e32ec40a6da904b40cf6b8592b76ff4ba6e5f Mon Sep 17 00:00:00 2001 From: Poomarin Phloyphisut Date: Tue, 22 Aug 2023 15:09:31 +0000 Subject: pixelstats: add total call count sysfs for VendorAudioHardwareStatsReported Bug: 289857250 Test: Local Test Change-Id: Ib5758629e46ac10282f423eb926fc25bdf4513b5 --- pixelstats/service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index c5b20b4..dec6742 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -96,7 +96,8 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .AdaptedInfoDurationPath = "/sys/devices/platform/audiometrics/adapted_info_active_duration", .CCARatePath = "/sys/devices/platform/audiometrics/cca_rate_read_once", .PcmLatencyPath = "/sys/devices/platform/audiometrics/pcm_latency", - .PcmCountPath = "/sys/devices/platform/audiometrics/pcm_count" + .PcmCountPath = "/sys/devices/platform/audiometrics/pcm_count", + .TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count" }; const struct UeventListener::UeventPaths ueventPaths = { -- cgit v1.2.3 From 69dd546e37642e04f1636db3a413f8df56346363 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Wed, 23 Aug 2023 14:43:18 -0700 Subject: zuma: turn off page_pinner Disable page_pinner. Bug: 296136854 Change-Id: I486b7710c976f257b5dd734385f3f5515867662e 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 55befa8..b16ea57 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -36,7 +36,6 @@ BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10870000 console=ttySAC0,115200 an BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y BOARD_KERNEL_CMDLINE += cgroup_disable=memory BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all -BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on BOARD_KERNEL_CMDLINE += swiotlb=1024 BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4 -- cgit v1.2.3 From 4a1f9459e5a16ab777fc2af1f952554b71571757 Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Wed, 23 Aug 2023 16:02:12 -0700 Subject: Force disable MTE in Chrome in _fullmte build. This is a no-op in regular builds. Impact is limited to a testing-only _fullmte build. Bug: 297266100 Test: chrome does not crash Change-Id: Iba9b031fa9d2df0c093f0465ae2dd8e1b36133b9 --- device-common.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device-common.mk b/device-common.mk index 8cb07f4..bf738c3 100644 --- a/device-common.mk +++ b/device-common.mk @@ -53,4 +53,6 @@ PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off +else +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.chrome=off endif -- cgit v1.2.3 From 49e4648f35fce08eb7b9ac196517a795de73e413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Kosi=C5=84ski?= Date: Fri, 25 Aug 2023 02:51:54 +0000 Subject: Set USF SoC from board makefile. Bug: 296943650 Test: presubmit Change-Id: I0193a1683bb8319985edad855ab63b9333d56018 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index acf7b22..84e7aab 100644 --- a/device.mk +++ b/device.mk @@ -944,6 +944,7 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) #$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk) #$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/device-bcm.mk) include device/google/gs-common/sensors/sensors.mk +$(call soong_config_set,usf,target_soc,zuma) PRODUCT_COPY_FILES += \ device/google/zuma/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \ -- cgit v1.2.3 From 97cd05816bf797f37759406581bbc55db45bbab4 Mon Sep 17 00:00:00 2001 From: Jyun LuoLai Date: Mon, 28 Aug 2023 09:49:55 +0800 Subject: Add READ_PHONE_STATE for dcservice For the Clear calling logging Bug: 293811206 TESTED=Manual Change-Id: Ifd996542ef3f64cda754ed88deabd72c79f12191 --- default-permissions.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 613f423..0918a74 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -137,5 +137,9 @@ + + + + -- cgit v1.2.3 From dd0e6d0efdecfa4da0f67e2803e664d54515b75f Mon Sep 17 00:00:00 2001 From: Speth Chang Date: Mon, 28 Aug 2023 15:24:31 +0800 Subject: Disable multicam sync on FATP build Bug: 297000091 Test: Build pass Change-Id: Ieda421114fc2584aa1dff194661202531f7ebb65 --- factory_common.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/factory_common.mk b/factory_common.mk index a58eaf1..a33f512 100644 --- a/factory_common.mk +++ b/factory_common.mk @@ -31,6 +31,7 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ # Disable camera related features for factory builds PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.camera.af.ignore_gyro=1 \ + persist.vendor.camera.multicam.framesync=0 \ vendor.camera.debug.bypass_face_ssd_processor=1 \ vendor.camera.debug.csi_ebuf_enable=0 \ vendor.camera.debug.enable_face_detection=0 \ -- cgit v1.2.3 From 7d55c7a45951311c3b3a44c803fdffe4765bdde7 Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Tue, 1 Aug 2023 10:05:43 +0000 Subject: init.zuma.rc: Disable util-awareness for mids and bigs There are power regression reports for low activity use cases on mids and bigs. Disable util-awareness on mids and bigs for now until this is better investigated and either use a slightly higher threshold or fix any potential root cause that is causing unnecessary higher activities on these cores. Bug: 289293494 Signed-off-by: Qais Yousef Change-Id: I7ab2dca998c749567c5e1908d57b2174313e8390 (cherry picked from commit 4c559d3334cfbffad758842e4d1d78048649600b) --- conf/init.zuma.rc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index cb5cf40..04cb8d5 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -12,6 +12,8 @@ on init # Set teo as cpu idle governor write /sys/devices/system/cpu/cpuidle/current_governor teo + # Disable util-awareness for mids and bigs + write /proc/vendor_sched/teo_util_threshold "2 1024 1024" # Boot time fs tuning write /sys/block/sda/queue/iostats 0 -- cgit v1.2.3 From d175d70886e7a8ae859ed6c27b7b1594be8983ab Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Fri, 1 Sep 2023 08:29:58 +0800 Subject: dump_power: add eeprom path to dump Bug: 298219364 Change-Id: I233a92e51b215cc712a9344fa369c1a0f7d78d5f Signed-off-by: Jenny Ho --- conf/init.zuma.rc | 1 + dumpstate/dump_power.sh | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 04cb8d5..e5334e1 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -240,6 +240,7 @@ on init chown system system /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom chown system system /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom chown system system /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom + chown system system /sys/devices/platform/10c90000.hsi2c/i2c-6/6-0050/eeprom chown system system /sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom chown system system /dev/battery_history chmod 0644 /dev/battery_history diff --git a/dumpstate/dump_power.sh b/dumpstate/dump_power.sh index 3fb715e..8bf999c 100644 --- a/dumpstate/dump_power.sh +++ b/dumpstate/dump_power.sh @@ -1,6 +1,5 @@ #!/vendor/bin/sh build_type="$(getprop ro.build.type)" - echo "\n------ Power Stats Times ------" echo -n "Boot: " && /vendor/bin/uptime -s && echo -n "Now: " && date; @@ -242,6 +241,11 @@ then xxd /sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom fi +if [ -e "/sys/devices/platform/10c90000.hsi2c/i2c-6/6-0050/eeprom" ] +then + xxd /sys/devices/platform/10c90000.hsi2c/i2c-6/6-0050/eeprom +fi + echo "\n------ Charger Stats ------" cat "/sys/class/power_supply/battery/charge_details" if [ $build_type = "userdebug" ] -- cgit v1.2.3 From c2c37bf3a81e4138bd2c0e82275d363dce2220ec Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Tue, 28 Feb 2023 18:44:07 +0000 Subject: usb: populate USB aidl hal AltModeData Populates AltModeData within PortStatus with DisplayPort Alt Mode statuses for pin assignment, hpd, link training status, and port partner capability. Test: manual test on device Bug: 277466852 Change-Id: I52a56f7090ed6dbef6211f19d6350cecac58e4fa Merged-In: I52a56f7090ed6dbef6211f19d6350cecac58e4fa --- usb/usb/Usb.cpp | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- usb/usb/Usb.h | 16 +++++ 2 files changed, 202 insertions(+), 9 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 7407077..5594bff 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -47,6 +48,7 @@ using aidl::android::frameworks::stats::IStats; using android::base::GetProperty; using android::base::Join; +using android::base::ParseUint; using android::base::Tokenize; using android::base::Trim; using android::hardware::google::pixel::getStatsService; @@ -91,6 +93,8 @@ constexpr char kIrqHpdCounPath[] = "-0025/irq_hpd_count"; constexpr int kSamplingIntervalSec = 5; void queryVersionHelper(android::hardware::usb::Usb *usb, std::vector *currentPortStatus); +AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_assignment, + string link_status, string vdo); ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, int64_t in_transactionId) { @@ -482,6 +486,11 @@ Usb::Usb() ALOGE("mDisplayPortEventPipe eventfd failed: %s", strerror(errno)); abort(); } + mDisplayPortDebounceTimer = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); + if (mDisplayPortDebounceTimer == -1) { + ALOGE("mDisplayPortDebounceTimer timerfd failed: %s", strerror(errno)); + abort(); + } } ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role, @@ -821,6 +830,118 @@ done: return Status::ERROR; } +/* DisplayPort Helper Functions Start */ + +DisplayPortAltModePinAssignment parsePinAssignmentHelper(string pinAssignments) { + size_t pos = pinAssignments.find("["); + if (pos != string::npos) { + pinAssignments = pinAssignments.substr(pos+1, 1); + if (pinAssignments == "C") { + return DisplayPortAltModePinAssignment::C; + } else if (pinAssignments == "D") { + return DisplayPortAltModePinAssignment::D; + } else if (pinAssignments == "E") { + return DisplayPortAltModePinAssignment::E; + } + } + return DisplayPortAltModePinAssignment::NONE; +} + +LinkTrainingStatus parseLinkTrainingStatusHelper(string linkTrainingStatus) { + linkTrainingStatus = Trim(linkTrainingStatus); + if (linkTrainingStatus == LINK_TRAINING_STATUS_SUCCESS) { + return LinkTrainingStatus::SUCCESS; + } else if (linkTrainingStatus == LINK_TRAINING_STATUS_FAILURE || \ + linkTrainingStatus == LINK_TRAINING_STATUS_FAILURE_SINK) { + return LinkTrainingStatus::FAILURE; + } + return LinkTrainingStatus::UNKNOWN; +} + +bool isDisplayPortPlugHelper(string vdoString) { + unsigned long vdo; + unsigned long receptacleFlag = 1 << DISPLAYPORT_CAPABILITIES_RECEPTACLE_BIT; + + vdoString = Trim(vdoString); + if (ParseUint(vdoString.c_str(), &vdo)) { + /* We check to see if receptacleFlag is 0, meaning that the DP interface is presented on a + * USB-C plug. + */ + return !(vdo & receptacleFlag); + } else { + ALOGE("usbdp: isDisplayPortPlugHelper: errno:%d", errno); + } + + return false; +} + +AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_assignment, + string link_status, string vdo) { + AltModeData::DisplayPortAltModeData dpData; + + // vdo + if (isDisplayPortPlugHelper(vdo)) { + dpData.cableStatus = DisplayPortAltModeStatus::CAPABLE; + } else { + dpData.partnerSinkStatus = DisplayPortAltModeStatus::CAPABLE; + } + + // hpd, status + if (!strncmp(hpd.c_str(), "1", strlen("1"))) { + dpData.hpd = true; + } + + // pin + dpData.pinAssignment = parsePinAssignmentHelper(pin_assignment); + + // link training + link_status = Trim(link_status); + dpData.linkTrainingStatus = parseLinkTrainingStatusHelper(link_status); + if (dpData.linkTrainingStatus == LinkTrainingStatus::SUCCESS) { + dpData.partnerSinkStatus = dpData.partnerSinkStatus == DisplayPortAltModeStatus::CAPABLE ? \ + DisplayPortAltModeStatus::ENABLED : DisplayPortAltModeStatus::UNKNOWN; + dpData.cableStatus = dpData.cableStatus == DisplayPortAltModeStatus::CAPABLE ? \ + DisplayPortAltModeStatus::ENABLED : DisplayPortAltModeStatus::UNKNOWN; + if (dpData.partnerSinkStatus == DisplayPortAltModeStatus::ENABLED) { + dpData.cableStatus = DisplayPortAltModeStatus::ENABLED; + } + } else if (dpData.linkTrainingStatus == LinkTrainingStatus::FAILURE && + dpData.partnerSinkStatus == DisplayPortAltModeStatus::CAPABLE) { + // 2.0 cable that fails EDID reports not capable, other link training failures assume + // 3.0 cable that fails in all other cases. + dpData.cableStatus = (link_status == LINK_TRAINING_STATUS_FAILURE_SINK) ? \ + DisplayPortAltModeStatus::NOT_CAPABLE : DisplayPortAltModeStatus::CAPABLE; + } + + return dpData; +} + +/* DisplayPort Helper Functions End */ + +// Only care about first port which must support DisplayPortAltMode +Status queryDisplayPortStatus(android::hardware::usb::Usb *usb, + std::vector *currentPortStatus) { + string hpd, pinAssign, linkStatus, vdo; + string path; + AltModeData::DisplayPortAltModeData dpData; + + if (usb->getDisplayPortUsbPathHelper(&path) == Status::ERROR) { + (*currentPortStatus)[0].supportedAltModes.push_back(dpData); + return Status::SUCCESS; + } + + usb->readDisplayPortAttribute("hpd", path, &hpd); + usb->readDisplayPortAttribute("pin_assignment", path, &pinAssign); + usb->readDisplayPortAttribute("vdo", path, &vdo); + usb->readDisplayPortAttribute("link_status", path, &linkStatus); + + // Set DisplayPortAltModeInfo + dpData = constructAltModeData(hpd, pinAssign, linkStatus, vdo); + (*currentPortStatus)[0].supportedAltModes.push_back(dpData); + + return Status::SUCCESS; +} + void queryVersionHelper(android::hardware::usb::Usb *usb, std::vector *currentPortStatus) { Status status; @@ -839,7 +960,7 @@ void queryVersionHelper(android::hardware::usb::Usb *usb, usb->setupDisplayPortPoll(); } pthread_mutex_unlock(&usb->mDisplayPortLock); - + queryDisplayPortStatus(usb, currentPortStatus); if (usb->mCallback != NULL) { ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus, status); @@ -1158,6 +1279,30 @@ Status Usb::getDisplayPortUsbPathHelper(string *path) { return result; } +Status Usb::readDisplayPortAttribute(string attribute, string usb_path, string* value) { + string attrPath; + + if (!strncmp(attribute.c_str(), "hpd", strlen("hpd")) || + !strncmp(attribute.c_str(), "pin_assignment", strlen("pin_assignment"))) { + attrPath = usb_path + attribute; + } else if (!strncmp(attribute.c_str(), "link_status", strlen("link_status"))) { + attrPath = string(kDisplayPortDrmPath) + "link_status"; + } else if (!strncmp(attribute.c_str(), "vdo", strlen("vdo"))) { + attrPath = usb_path + "/../vdo"; + } else { + goto error; + } + + // Read Attribute + if(ReadFileToString(attrPath.c_str(), value)) { + return Status::SUCCESS; + } + +error: + ALOGE("usbdp: Failed to read Type-C attribute %s", attribute.c_str()); + return Status::ERROR; +} + Status Usb::writeDisplayPortAttributeOverride(string attribute, string value) { string attrDrmPath; @@ -1255,15 +1400,28 @@ static int displayPortPollOpenFileHelper(const char *file, int flags) { return fd; } +static int armTimerFdHelper(int fd, int ms) { + struct itimerspec ts; + + ts.it_interval.tv_sec = 0; + ts.it_interval.tv_nsec = 0; + ts.it_value.tv_sec = ms / 1000; + ts.it_value.tv_nsec = (ms % 1000) * 1000000; + + return timerfd_settime(fd, 0, &ts, NULL); +} + void *displayPortPollWork(void *param) { int epoll_fd; - struct epoll_event ev_hpd, ev_pin, ev_orientation, ev_eventfd, ev_link; + struct epoll_event ev_hpd, ev_pin, ev_orientation, ev_eventfd, ev_link, ev_debounce; int nevents = 0; - int hpd_fd, pin_fd, orientation_fd, link_fd; + int hpd_fd, pin_fd, orientation_fd, link_training_status_fd; int file_flags = O_RDONLY; int epoll_flags; bool orientationSet = false; bool pinSet = false; + unsigned long res; + int ret = 0; string displayPortUsbPath, irqHpdCountPath, hpdPath, pinAssignmentPath, orientationPath; string tcpcI2cBus, linkPath; ::aidl::android::hardware::usb::Usb *usb = (::aidl::android::hardware::usb::Usb *)param; @@ -1302,8 +1460,8 @@ void *displayPortPollWork(void *param) { == -1){ goto orientation_fd_error; } - if ((link_fd = displayPortPollOpenFileHelper(linkPath.c_str(), file_flags)) == -1){ - goto link_fd_error; + if ((link_training_status_fd = displayPortPollOpenFileHelper(linkPath.c_str(), file_flags)) == -1){ + goto link_training_status_fd_error; } // Set epoll_event events and flags @@ -1313,11 +1471,13 @@ void *displayPortPollWork(void *param) { ev_orientation.events = epoll_flags; ev_eventfd.events = epoll_flags; ev_link.events = epoll_flags; + ev_debounce.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->mDisplayPortEventPipe; - ev_link.data.fd = link_fd; + ev_link.data.fd = link_training_status_fd; + ev_debounce.data.fd = usb->mDisplayPortDebounceTimer; if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, hpd_fd, &ev_hpd) == -1) { ALOGE("usbdp: worker: epoll_ctl failed to add hpd; errno=%d", errno); @@ -1331,10 +1491,14 @@ void *displayPortPollWork(void *param) { ALOGE("usbdp: worker: epoll_ctl failed to add orientation; errno=%d", errno); goto error; } - if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, link_fd, &ev_link) == -1) { + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, link_training_status_fd, &ev_link) == -1) { ALOGE("usbdp: worker: epoll_ctl failed to add link status; errno=%d", errno); goto error; } + if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, usb->mDisplayPortDebounceTimer, &ev_debounce) == -1) { + ALOGE("usbdp: worker: epoll_ctl failed to add debounce; errno=%d", errno); + goto error; + } if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, usb->mDisplayPortEventPipe, &ev_eventfd) == -1) { ALOGE("usbdp: worker: epoll_ctl failed to add orientation; errno=%d", errno); goto error; @@ -1367,16 +1531,28 @@ void *displayPortPollWork(void *param) { } } usb->writeDisplayPortAttribute("hpd", hpdPath); + armTimerFdHelper(usb->mDisplayPortDebounceTimer, DISPLAYPORT_STATUS_DEBOUNCE_MS); } else if (events[n].data.fd == pin_fd) { if (usb->writeDisplayPortAttribute("pin_assignment", pinAssignmentPath) == Status::SUCCESS) { pinSet = true; + armTimerFdHelper(usb->mDisplayPortDebounceTimer, DISPLAYPORT_STATUS_DEBOUNCE_MS); } } else if (events[n].data.fd == orientation_fd) { if (usb->writeDisplayPortAttribute("orientation", orientationPath) == Status::SUCCESS) { orientationSet = true; + armTimerFdHelper(usb->mDisplayPortDebounceTimer, DISPLAYPORT_STATUS_DEBOUNCE_MS); } + } else if (events[n].data.fd == link_training_status_fd) { + armTimerFdHelper(usb->mDisplayPortDebounceTimer, DISPLAYPORT_STATUS_DEBOUNCE_MS); + } else if (events[n].data.fd == usb->mDisplayPortDebounceTimer) { + std::vector currentPortStatus; + ret = read(usb->mDisplayPortDebounceTimer, &res, sizeof(res)); + ALOGI("usbdp: dp debounce triggered, val:%lu ret:%d", res, ret); + if (ret < 0) + ALOGE("usbdp: debounce read errno:%d", errno); + queryVersionHelper(usb, ¤tPortStatus); } else if (events[n].data.fd == usb->mDisplayPortEventPipe) { uint64_t flag = 0; if (!read(usb->mDisplayPortEventPipe, &flag, sizeof(flag))) { @@ -1398,14 +1574,15 @@ void *displayPortPollWork(void *param) { } error: - close(link_fd); -link_fd_error: + close(link_training_status_fd); +link_training_status_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->mDisplayPortDebounceTimer, &ev_debounce); epoll_ctl(epoll_fd, EPOLL_CTL_DEL, usb->mDisplayPortEventPipe, &ev_eventfd); close(epoll_fd); epoll_fd_error: diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 892d769..1add68f 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -29,6 +29,8 @@ // Having a margin of ~3 secs for the directory and other related bookeeping // structures created and uvent fired. #define PORT_TYPE_TIMEOUT 8 +#define DISPLAYPORT_CAPABILITIES_RECEPTACLE_BIT 6 +#define DISPLAYPORT_STATUS_DEBOUNCE_MS 2000 namespace aidl { namespace android { @@ -57,6 +59,11 @@ 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 LINK_TRAINING_STATUS_UNKNOWN "0" +#define LINK_TRAINING_STATUS_SUCCESS "1" +#define LINK_TRAINING_STATUS_FAILURE "2" +#define LINK_TRAINING_STATUS_FAILURE_SINK "3" + #define DISPLAYPORT_SHUTDOWN_CLEAR 0 #define DISPLAYPORT_SHUTDOWN_SET 1 #define DISPLAYPORT_IRQ_HPD_COUNT_CHECK 3 @@ -81,6 +88,7 @@ struct Usb : public BnUsb { ScopedAStatus resetUsbPort(const string& in_portName, int64_t in_transactionId) override; Status getDisplayPortUsbPathHelper(string *path); + Status readDisplayPortAttribute(string attribute, string usb_path, string* value); Status writeDisplayPortAttributeOverride(string attribute, string value); Status writeDisplayPortAttribute(string attribute, string usb_path); bool determineDisplayPortRetry(string linkPath, string hpdPath); @@ -121,6 +129,14 @@ struct Usb : public BnUsb { pthread_mutex_t mDisplayPortLock; // eventfd to signal DisplayPort thread int mDisplayPortEventPipe; + + /* + * eventfd to set DisplayPort framework update debounce timer. Debounce timer is necessary for + * 1) allowing enough time for each sysfs node needed to set HPD high in the drm to populate + * 2) preventing multiple IRQs that trigger link training failures from continuously + * sending notifications to the frameworks layer. + */ + int mDisplayPortDebounceTimer; private: pthread_t mPoll; pthread_t mDisplayPortPoll; -- cgit v1.2.3 From c1ed5f53366efced608d0f3be890b12e1bee6387 Mon Sep 17 00:00:00 2001 From: Arthur Hung Date: Tue, 15 Aug 2023 01:39:41 +0000 Subject: Enable small dirty detection for variable refresh rate Bug: 283055450 Test: Build Change-Id: I670432d6e566260df3cfdc938f4ddbae70b5d47a --- device.mk | 3 +++ overlay/frameworks/base/core/res/res/values/config.xml | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/device.mk b/device.mk index 84e7aab..cecff17 100644 --- a/device.mk +++ b/device.mk @@ -692,6 +692,9 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50 +# Enhance VRR detection +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.enable_small_dirty_detection=true + # force to blend in P3 mode PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.sf.native_mode=2 \ diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 73ba083..4ade200 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -287,4 +287,17 @@ true + + + + + com.google.android.youtube:0.07 + com.spotify.music:0.05 + com.reddit.frontpage:0.07 + com.zhiliaoapp.musically:0.07 + com.bilibili.app.in:0.07 + com.twitter.android:0.07 + -- cgit v1.2.3 From b75f286a7408ca17d0afa19d21364f68592496d2 Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Wed, 12 Jul 2023 17:58:33 -0700 Subject: UsbGadget: Add support for UVC function UVC is a new USB function supported in Android. This CL adds UVC as a valid function and gives it a new pid of 0x4ee[de]. UVC function is guarded by the property `ro.usb.uvc.enabled`. When this property is set to false, UVC won't be considered as a valid gadget function. Bug: 242344221 Test: Manually tested that the UVC function is successfully configured Merged-In: I5c2040a84ee8360b16c955403478d908fe109121 Change-Id: I5c2040a84ee8360b16c955403478d908fe109121 Signed-off-by: Jayant Chowdhary --- usb/gadget/UsbGadget.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/usb/gadget/UsbGadget.cpp b/usb/gadget/UsbGadget.cpp index 70bd801..c96c6c4 100644 --- a/usb/gadget/UsbGadget.cpp +++ b/usb/gadget/UsbGadget.cpp @@ -26,6 +26,8 @@ #include #include +#include + #include namespace aidl { @@ -34,6 +36,9 @@ namespace hardware { namespace usb { namespace gadget { +using ::android::base::GetBoolProperty; +using ::android::hardware::google::pixel::usb::kUvcEnabled; + string enabledPath; constexpr char kHsi2cPath[] = "/sys/devices/platform/10cb0000.hsi2c"; constexpr char kI2CPath[] = "/sys/devices/platform/10cb0000.hsi2c/i2c-"; @@ -302,6 +307,28 @@ static Status validateAndSetVidPid(uint64_t functions) { ret = Status(setVidPid("0x18d1", "0x4eec")); } break; + case GadgetFunction::UVC: + if (!(vendorFunctions == "user" || vendorFunctions == "")) { + ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str()); + ret = Status::CONFIGURATION_NOT_SUPPORTED; + } else if (!GetBoolProperty(kUvcEnabled, false)) { + ALOGE("UVC function not enabled by config"); + ret = Status::CONFIGURATION_NOT_SUPPORTED; + } else { + ret = Status(setVidPid("0x18d1", "0x4eed")); + } + break; + case GadgetFunction::ADB | GadgetFunction::UVC: + if (!(vendorFunctions == "user" || vendorFunctions == "")) { + ALOGE("Invalid vendorFunctions set: %s", vendorFunctions.c_str()); + ret = Status::CONFIGURATION_NOT_SUPPORTED; + } else if (!GetBoolProperty(kUvcEnabled, false)) { + ALOGE("UVC function not enabled by config"); + ret = Status::CONFIGURATION_NOT_SUPPORTED; + } else { + ret = Status(setVidPid("0x18d1", "0x4eee")); + } + break; default: ALOGE("Combination not supported"); ret = Status::CONFIGURATION_NOT_SUPPORTED; -- cgit v1.2.3 From 9f58739630d30ded1bcfe4f36708fd7c5d70fab9 Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Wed, 12 Jul 2023 17:59:07 -0700 Subject: usb gadget: Add config for UVC in init The UVC gadget requires some setup in configfs before it can be used by the gadget HAL. This CL adds that setup to usb specific init.rc file. Currently, UVC is setup to advertise mjpeg streams at 720p and 1080p. Bug: 242344221 Test: Manually tested that UVC is correctly set up on boot. Merged-In: I71cf4727fb23744c5aef368c1750784a19ba8c5d Change-Id: I71cf4727fb23744c5aef368c1750784a19ba8c5d Signed-off-by: Jayant Chowdhary --- conf/init.zuma.usb.rc | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) diff --git a/conf/init.zuma.usb.rc b/conf/init.zuma.usb.rc index 136382f..8ff9743 100644 --- a/conf/init.zuma.usb.rc +++ b/conf/init.zuma.usb.rc @@ -71,6 +71,72 @@ on early-boot # acm function for uwb mkdir /config/usb_gadget/g1/functions/acm.uwb0 + # uvc function + mkdir /config/usb_gadget/g1/functions/uvc.0 + write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam" + write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072 + # write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 5 + # write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2 + # setup control params + mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h + symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h + symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h + # advertise mjpeg streams + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m + # advertise 720p resolution for webcam encoded as mjpeg + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666 +333333 +416666 +666666" + # advertise 1080p resolution for webcam encoded as mjpeg + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666 +333333 +416666 +666666" + # TODO: Add uncompressed streams + # setup streaming params + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h + symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m + symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h + symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h + symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h + # remove write permissions for 'others' + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC + chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval + # chown file/folder permission chown system system /config/usb_gadget/ chown system system /config/usb_gadget/g1 @@ -135,6 +201,99 @@ on early-boot chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass + chown system system /config/usb_gadget/g1/functions/uvc.0/ + chown system system /config/usb_gadget/g1/functions/uvc.0/control + chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber + chown system system /config/usb_gadget/g1/functions/uvc.0/control/class + chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs + chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h + chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss + chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h + chown system system /config/usb_gadget/g1/functions/uvc.0/control/header + chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h + chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC + chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing + chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal + chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType + chown system system /config/usb_gadget/g1/functions/uvc.0/function_name + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed chown system system /config/usb_gadget/g1/idProduct chown system system /config/usb_gadget/g1/idVendor chown system system /config/usb_gadget/g1/max_speed -- cgit v1.2.3 From 4810a53875ad64669d3af560da681a1036202222 Mon Sep 17 00:00:00 2001 From: Scott Wiest Date: Tue, 5 Sep 2023 16:11:58 -0700 Subject: Adding camera to the default permissions for Pixel Camera Services Test: Compiled and flashed device Bug: 298098187 Change-Id: Idcf81ac7ffc928b66b17480a298fa28ab88a7b00 --- default-permissions.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 0918a74..1731dae 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -51,6 +51,11 @@ + + + + + -- cgit v1.2.3 From 95e5e15f24183657b373c74a1324045992644f85 Mon Sep 17 00:00:00 2001 From: Poomarin Phloyphisut Date: Thu, 7 Sep 2023 15:39:11 +0000 Subject: pixelstats: change path for CCARatePath Bug: 289857250 Test: Local Test Change-Id: I6644b89c49b252ddb7652eec7892cd2052027fa5 --- pixelstats/service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index dec6742..4f7e18b 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -94,7 +94,7 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .WavesPath = "/sys/devices/platform/audiometrics/waves", .AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count", .AdaptedInfoDurationPath = "/sys/devices/platform/audiometrics/adapted_info_active_duration", - .CCARatePath = "/sys/devices/platform/audiometrics/cca_rate_read_once", + .CCARatePath = "/sys/devices/platform/audiometrics/cca_count_read_once", .PcmLatencyPath = "/sys/devices/platform/audiometrics/pcm_latency", .PcmCountPath = "/sys/devices/platform/audiometrics/pcm_count", .TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count" -- cgit v1.2.3 From fd050630b3aa7b9a399c71ce3a6e95e631859dc6 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 7 Sep 2023 11:09:08 +0000 Subject: Revert "Enable small dirty detection for variable refresh rate" Revert submission 24149209-enable-vrr-extension Reason for revert: Bug: 299131033 Reverted changes: /q/submissionid:24149209-enable-vrr-extension Change-Id: I6eeeff61ab7b630e994af17727504307ef4ed793 --- device.mk | 3 --- overlay/frameworks/base/core/res/res/values/config.xml | 13 ------------- 2 files changed, 16 deletions(-) diff --git a/device.mk b/device.mk index cecff17..84e7aab 100644 --- a/device.mk +++ b/device.mk @@ -692,9 +692,6 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50 -# Enhance VRR detection -PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.enable_small_dirty_detection=true - # force to blend in P3 mode PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.sf.native_mode=2 \ diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 4ade200..73ba083 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -287,17 +287,4 @@ true - - - - - com.google.android.youtube:0.07 - com.spotify.music:0.05 - com.reddit.frontpage:0.07 - com.zhiliaoapp.musically:0.07 - com.bilibili.app.in:0.07 - com.twitter.android:0.07 - -- cgit v1.2.3 From 21c643b2320a06300cda812a0232407848137f84 Mon Sep 17 00:00:00 2001 From: Kalesh Singh Date: Fri, 8 Sep 2023 09:29:53 -0700 Subject: zuma: Disable MGLRU Disable mglru in P23 devices. Bug: 299636739 Change-Id: I73c997f76b02a08c38b8e8d8a9c0bec24237fce6 Signed-off-by: Kalesh Singh --- conf/init.zuma.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index e5334e1..8c8960c 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -5,6 +5,7 @@ import init.exynos.sensorhub.rc on early-init mount_all /vendor/etc/fstab.persist --early write /proc/sys/kernel/sched_pelt_multiplier 1 + write /sys/kernel/mm/lru_gen/enabled n on init # CPU0 cannot be offline -- cgit v1.2.3 From f4915a01f6d0e1b75f381a2aba74e4474631a6c6 Mon Sep 17 00:00:00 2001 From: Florian Mayer Date: Fri, 8 Sep 2023 01:09:49 +0000 Subject: Allow to override MTE mode from device config Test: # setprop persist.device_config.runtime_native_boot.bootloader_override force_on # setprop persist.device_config.runtime_native_boot.mode_override sync # cat /sys/devices/system/cpu/cpu?/mte_tcf_preferred Bug: 299536833 Change-Id: If919c002a91b50448aa2ce47e206005e2301a4a6 --- conf/init.zuma.rc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index e5334e1..99cf15e 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -1167,3 +1167,30 @@ on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running # Enable UFS powersaving in Off Mode Charger write /dev/sys/block/bootdevice/clkgate_enable 1 +# MTE +on property:persist.device_config.runtime_native_boot.mode_override=sync + # Per-core mode overrides. + # Little Cores: sync + write /sys/devices/system/cpu/cpu0/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu1/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu2/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu3/mte_tcf_preferred sync + # Mid Cores: sync + write /sys/devices/system/cpu/cpu4/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu5/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu6/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu7/mte_tcf_preferred sync + # Big Core: sync mode performance is prohibitively bad + write /sys/devices/system/cpu/cpu8/mte_tcf_preferred asymm + +on property:persist.device_config.runtime_native_boot.mode_override=asymm + # Per-core mode overrides. + write /sys/devices/system/cpu/cpu0/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu1/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu2/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu3/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu4/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu5/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu6/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu7/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu8/mte_tcf_preferred asymm -- cgit v1.2.3 From f4be3b2c1c8abc15a548b9e00e160779dd805138 Mon Sep 17 00:00:00 2001 From: Bethany Barrientos Date: Wed, 30 Aug 2023 11:12:05 -0500 Subject: Grant default permissions to PCS for camera connectivity - android.permission.POST_NOTIFICATIONS - android.permission.BLUETOOTH_CONNECT - android.permission.BLUETOOTH_SCAN Test: make and install. verify PCS had permissions. Bug: 287069860 Change-Id: Iefd0d80d803b36610e14bdfec07b762d7c90bd58 --- default-permissions.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 1731dae..a2189c4 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -54,6 +54,9 @@ + + + -- cgit v1.2.3 From dbfd61757233989a4b75a7e99fbf85c60b06d634 Mon Sep 17 00:00:00 2001 From: Sergey Volk Date: Wed, 13 Sep 2023 21:43:56 +0000 Subject: DO NOT MERGE displayport: Move sysprop for enabling DP to device level Move sysprop for enabling DP to device level makefiles so DP configuration can be controlled at a device level. Test: manual (check /sys/module/exynos_drm/parameters/dp_enabled) Bug: 300167292 Change-Id: Ic2ee2bba8960fe0960ac8acf03eaa2ac4b9b74e6 --- device.mk | 8 -------- 1 file changed, 8 deletions(-) diff --git a/device.mk b/device.mk index 84e7aab..d222ebc 100644 --- a/device.mk +++ b/device.mk @@ -195,14 +195,6 @@ 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 -- cgit v1.2.3 From 20c67af4379f74691c301e4dd95b678059f3920c Mon Sep 17 00:00:00 2001 From: Sergey Volk Date: Wed, 13 Sep 2023 21:43:56 +0000 Subject: DO NOT MERGE displayport: Move sysprop for enabling DP to device level Move sysprop for enabling DP to device level makefiles so DP configuration can be controlled at a device level. Test: manual (check /sys/module/exynos_drm/parameters/dp_enabled) Bug: 300167292 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dbfd61757233989a4b75a7e99fbf85c60b06d634) Merged-In: Ic2ee2bba8960fe0960ac8acf03eaa2ac4b9b74e6 Change-Id: Ic2ee2bba8960fe0960ac8acf03eaa2ac4b9b74e6 --- device.mk | 8 -------- 1 file changed, 8 deletions(-) diff --git a/device.mk b/device.mk index 84e7aab..d222ebc 100644 --- a/device.mk +++ b/device.mk @@ -195,14 +195,6 @@ 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 -- cgit v1.2.3 From 05ac33ebcc8104638ed3bd0662e16c4022c43492 Mon Sep 17 00:00:00 2001 From: Klines Jiang Date: Tue, 22 Aug 2023 03:11:36 +0000 Subject: [SELinux] Add gyotaku_app doamin to Pixel 2023. Bug: 296836878 Test: Local build and tested pass. Change-Id: I58d9fb298477cc67ec2cd4a308be679e2e75c98d Merged-In: I58d9fb298477cc67ec2cd4a308be679e2e75c98d --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index d222ebc..caaa492 100644 --- a/device.mk +++ b/device.mk @@ -38,6 +38,7 @@ include device/google/gs-common/umfw_stat/umfw_stat.mk include device/google/gs-common/widevine/widevine.mk include device/google/gs-common/sota_app/factoryota.mk include device/google/gs-common/misc_writer/misc_writer.mk +include device/google/gs-common/gyotaku_app/gyotaku.mk include device/google/zuma/dumpstate/item.mk -- cgit v1.2.3 From 253d3d48fa4fe07b4dc39a5133659c75a807275a Mon Sep 17 00:00:00 2001 From: David Kimmel Date: Thu, 24 Aug 2023 21:25:30 +0000 Subject: Sched lib affinity and freq settings Bug: 170648047 Test: sched / hints applied correctly Change-Id: Ib4d820b0d12d1bbd7fe9340eaf184aaf7fff9c9a --- conf/init.zuma.rc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index cb5cf40..923700d 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -592,6 +592,11 @@ on boot chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva chown audioserver system /sys/kernel/debug/abox/log-00 + # Change sched lib affinity + write /proc/vendor_sched/sched_lib_name libunity.so + write /proc/vendor_sched/sched_lib_mask_in 0x100 + write /proc/vendor_sched/sched_lib_mask_out 0x1f0 + # Permission for USB SELECT chown system system /sys/class/android_usb/android0/enable chmod 0660 /sys/class/android_usb/android0/enable -- cgit v1.2.3 From 9b743e5938d7be85ad51b33a65c14c03cc219495 Mon Sep 17 00:00:00 2001 From: Kalesh Singh Date: Mon, 18 Sep 2023 10:26:37 -0700 Subject: zuma: Set max supported page size to 4096 Temporarily reset the max page size on zuma devices to 4096 to avoid extra gap VMAs in P23 devices for qpr1. Bug: 300942232 Test: readelf -Wl /system/bin/init Change-Id: I1fda0599a21c633292062db1278df0fed50de23e Signed-off-by: Kalesh Singh --- device-common.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device-common.mk b/device-common.mk index bf738c3..ece4678 100644 --- a/device-common.mk +++ b/device-common.mk @@ -44,6 +44,9 @@ PRODUCT_PRODUCT_PROPERTIES += \ PRODUCT_PRODUCT_PROPERTIES += \ ro.thermal_warmreset = true +# Set the max page size to 4096 (b/300367402) +PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 4096 + # Indicate that the bootloader supports the MTE developer option switch # (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products that # force enable MTE. -- cgit v1.2.3 From 1a3925509e7212385ae86bb58d321fb40c376ad6 Mon Sep 17 00:00:00 2001 From: Jyun LuoLai Date: Tue, 19 Sep 2023 09:30:10 +0800 Subject: Remove READ_PHONE_STATE for dcservice We'll rerun the review to use READ_PRIVILEGED_PHONE_STATE in QPR2 instead Bug: 293811206 TESTED=Manual Change-Id: I71bc67b102f5c7f021d774c5c505e0a8713f36e6 --- default-permissions.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/default-permissions.xml b/default-permissions.xml index a2189c4..9175507 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -145,9 +145,5 @@ - - - - -- cgit v1.2.3 From 5d570937bceadb8e8e313dda49275a48e5f42290 Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Tue, 19 Sep 2023 06:11:05 +0000 Subject: Disable variable refresh rate when typing on zuma Turn off config_variableRefreshRateTypingSupported on zuma. Bug: 299966467 Test: presubmit Change-Id: I7c58ef2e756553ed11b98b68b846228251942bd2 --- overlay/frameworks/base/core/res/res/values/config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 73ba083..6056332 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -286,5 +286,5 @@ true - true + false -- cgit v1.2.3 From e70b0f0b2509adc713053c349610293396a014ac Mon Sep 17 00:00:00 2001 From: Richard Chang Date: Tue, 19 Sep 2023 04:36:04 +0000 Subject: Add p23 perf setup script Bug: 295218781 Test: Build Change-Id: I0d708db94f38da16103140b978f8429c8bb9aa7c --- BoardConfig-common.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index b16ea57..b95275d 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -228,6 +228,9 @@ BOARD_USES_SYSTEM_DLKMIMAGE := true BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm +# Testing related defines +BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/p23-setup.sh + # # AUDIO & VOICE # -- cgit v1.2.3 From 3ce6a5fe2e962c1e4dd286f6f9dfa3957515499b Mon Sep 17 00:00:00 2001 From: Kuen-Han Tsai Date: Tue, 19 Sep 2023 16:37:20 +0800 Subject: Usb.cpp: Fix typos when unable to disable USB data If Usb.cpp cannot write a zero value to the USB_DATA_PATH file, display the message of "Not able to turn off usb connection notification". Test: refactoring CL. Existing tests still pass. Bug: 301016122 Change-Id: I5d2c24154bd1d2c20810bcb4db0a3b2cc575fcfe --- 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 5594bff..858a7ac 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -128,7 +128,7 @@ ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, } if (!WriteStringToFile("0", USB_DATA_PATH)) { - ALOGE("Not able to turn on usb connection notification"); + ALOGE("Not able to turn off usb connection notification"); result = false; } -- cgit v1.2.3 From e683802386785b956ad618d1820f7976e36be302 Mon Sep 17 00:00:00 2001 From: Amit Sunil Dhamne Date: Thu, 7 Sep 2023 17:09:31 -0700 Subject: UsbGadget: Update SDP enum timeout when gadget is pulled up Indicate to the kernel that the usb gadget is pulled up by writing to `update_sdp_enum_timeout` sysfs node. Write to this node will inform the kernel that it can lower the SDP timeout alarm value which is used to detect an SDP port vs a DCP. (ported from c5c5b127a7ed0db559d286284fe77b656bef6945) Bug:275687235 Test: Check `update_sdp_enum_timeout` is written into after usb gadget is pulled up. Verify that the alarm timeout lowers. Change-Id: Id3ae7e7a20b236cec6604414a7f81860e868bdd0 Signed-off-by: Amit Sunil Dhamne --- usb/gadget/UsbGadget.cpp | 65 +++++++++++++++++++++------------ usb/gadget/UsbGadget.h | 4 ++ usb/usb/android.hardware.usb-service.rc | 20 ++++++++++ 3 files changed, 66 insertions(+), 23 deletions(-) diff --git a/usb/gadget/UsbGadget.cpp b/usb/gadget/UsbGadget.cpp index c96c6c4..7331a89 100644 --- a/usb/gadget/UsbGadget.cpp +++ b/usb/gadget/UsbGadget.cpp @@ -44,6 +44,30 @@ constexpr char kHsi2cPath[] = "/sys/devices/platform/10cb0000.hsi2c"; constexpr char kI2CPath[] = "/sys/devices/platform/10cb0000.hsi2c/i2c-"; constexpr char kAccessoryLimitCurrent[] = "-0025/usb_limit_accessory_current"; constexpr char kAccessoryLimitCurrentEnable[] = "-0025/usb_limit_accessory_enable"; +constexpr char kUpdateSdpEnumTimeout[] = "-0025/update_sdp_enum_timeout"; + +Status getI2cBusHelper(string *name) { + DIR *dp; + + dp = opendir(kHsi2cPath); + if (dp != NULL) { + struct dirent *ep; + + while ((ep = readdir(dp))) { + if (ep->d_type == DT_DIR) { + if (string::npos != string(ep->d_name).find("i2c-")) { + std::strtok(ep->d_name, "-"); + *name = std::strtok(NULL, "-"); + } + } + } + closedir(dp); + return Status::SUCCESS; + } + + ALOGE("Failed to open %s", kHsi2cPath); + return Status::ERROR; +} UsbGadget::UsbGadget() : mGadgetIrqPath("") { if (access(OS_DESC_PATH, R_OK) != 0) { @@ -97,6 +121,7 @@ Status UsbGadget::getUsbGadgetIrqPath() { void currentFunctionsAppliedCallback(bool functionsApplied, void *payload) { UsbGadget *gadget = (UsbGadget *)payload; gadget->mCurrentUsbFunctionsApplied = functionsApplied; + gadget->updateSdpEnumTimeout(); } ScopedAStatus UsbGadget::getCurrentUsbFunctions(const shared_ptr &callback, @@ -363,6 +388,22 @@ ScopedAStatus UsbGadget::reset(const shared_ptr &callback, return ScopedAStatus::ok(); } +void UsbGadget::updateSdpEnumTimeout() { + string i2c_node, update_sdp_enum_timeout_path; + + Status status = getI2cBusHelper(&i2c_node); + if (status != Status::SUCCESS) { + ALOGE("%s: Unable to locate i2c bus node", __func__); + } + + update_sdp_enum_timeout_path = kI2CPath + i2c_node + "/" + i2c_node + kUpdateSdpEnumTimeout; + if (!WriteStringToFile("1", update_sdp_enum_timeout_path)) { + ALOGE("%s: Unable to write to %s.", __func__, update_sdp_enum_timeout_path.c_str()); + } else { + ALOGI("%s: Updated SDP enumeration timeout value.", __func__); + } +} + Status UsbGadget::setupFunctions(long functions, const shared_ptr &callback, uint64_t timeout, int64_t in_transactionId) { @@ -421,6 +462,7 @@ Status UsbGadget::setupFunctions(long functions, mCurrentUsbFunctionsApplied = true; if (callback) callback->setCurrentUsbFunctionsCb(functions, Status::SUCCESS, in_transactionId); + updateSdpEnumTimeout(); return Status::SUCCESS; } @@ -445,29 +487,6 @@ Status UsbGadget::setupFunctions(long functions, return Status::SUCCESS; } -Status getI2cBusHelper(string *name) { - DIR *dp; - - dp = opendir(kHsi2cPath); - if (dp != NULL) { - struct dirent *ep; - - while ((ep = readdir(dp))) { - if (ep->d_type == DT_DIR) { - if (string::npos != string(ep->d_name).find("i2c-")) { - std::strtok(ep->d_name, "-"); - *name = std::strtok(NULL, "-"); - } - } - } - closedir(dp); - return Status::SUCCESS; - } - - ALOGE("Failed to open %s", kHsi2cPath); - return Status::ERROR; -} - ScopedAStatus UsbGadget::setCurrentUsbFunctions(long functions, const shared_ptr &callback, int64_t timeout, diff --git a/usb/gadget/UsbGadget.h b/usb/gadget/UsbGadget.h index 4079b01..7f2d18b 100644 --- a/usb/gadget/UsbGadget.h +++ b/usb/gadget/UsbGadget.h @@ -115,6 +115,10 @@ struct UsbGadget : public BnUsbGadget { ScopedAStatus setVidPid(const char *vid,const char *pid); + // Indicates to the kernel that the gadget service is ready and the kernel can + // set SDP timeout to a lower value. + void updateSdpEnumTimeout(); + private: Status tearDownGadget(); Status getUsbGadgetIrqPath(); diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc index e764ad8..072c85b 100644 --- a/usb/usb/android.hardware.usb-service.rc +++ b/usb/usb/android.hardware.usb-service.rc @@ -68,6 +68,16 @@ on post-fs chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-7/7-0025/usb_limit_source_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-8/8-0025/usb_limit_source_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-9/9-0025/usb_limit_source_enable + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-0/0-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-1/1-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-2/2-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-3/3-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-4/4-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-5/5-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-6/6-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-7/7-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-8/8-0025/update_sdp_enum_timeout + chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-9/9-0025/update_sdp_enum_timeout chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation @@ -143,6 +153,16 @@ on post-fs chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-7/7-0025/usb_limit_source_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-8/8-0025/usb_limit_source_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-9/9-0025/usb_limit_source_enable + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-0/0-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-1/1-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-2/2-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-3/3-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-4/4-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-5/5-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-6/6-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-7/7-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-8/8-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-9/9-0025/update_sdp_enum_timeout chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation -- cgit v1.2.3 From e97fc75c92ed5c278baa3cc914c0ee09d5ed486b Mon Sep 17 00:00:00 2001 From: Amit Sunil Dhamne Date: Mon, 11 Sep 2023 15:12:23 -0700 Subject: usb: Modify sdp enumeration timeout value in charger mode Write to /sys/class/typec/port<...>/device/update_sdp_enum_timeout to reduce SDP enumeration timeout value when device is in charger mode. This will enable faster detection of a DCP port. ported from 6710e31a629f81cf308e1099f75a01c82db6d006 Test: Validate (in charger mode) that the sysfs attribute is 1 (meaning lower sdp timeout value is being used). Read dmesg to see print showing timeout value is 5000ms. Bug: 275687235 Change-Id: I1bc872911d7f1eab26e62fe6f12fba05608e0f83 Signed-off-by: Amit Sunil Dhamne --- conf/init.zuma.usb.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zuma.usb.rc b/conf/init.zuma.usb.rc index 8ff9743..37285e0 100644 --- a/conf/init.zuma.usb.rc +++ b/conf/init.zuma.usb.rc @@ -349,6 +349,7 @@ on property:sys.usb.config=charger && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/typec/port0/device/update_sdp_enum_timeout 0x1 setprop sys.usb.state ${sys.usb.config} on property:ro.bootmode=usbuwb -- cgit v1.2.3 From 429d54af35cba3c0f33913aab30bde0b581b1168 Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Wed, 20 Sep 2023 07:38:54 -0700 Subject: usb.rc: Advertise 360p and 480p support through UVC Many host applications expect and ask for lower resolution streams when streaming from a USB webcam. To support those applications, this CL adds support for 640x480 and 640x360 streams. Bug: 301170431 Test: Manually tested that the resolution is advertised and streamed. Change-Id: Ifda2322747fced10c164afa98420fd35b17dbdd1 --- conf/init.zuma.usb.rc | 84 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 14 deletions(-) diff --git a/conf/init.zuma.usb.rc b/conf/init.zuma.usb.rc index 37285e0..4dff012 100644 --- a/conf/init.zuma.usb.rc +++ b/conf/init.zuma.usb.rc @@ -83,6 +83,26 @@ on early-boot symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h # advertise mjpeg streams mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m + # advertise 360p resolution for webcam encoded as mjpeg + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 460800 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval 333333 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval "166666 +333333 +416666 +666666" + # advertise 480p resolution for webcam encoded as mjpeg + mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 614400 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval 333333 + write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval "166666 +333333 +416666 +666666" # advertise 720p resolution for webcam encoded as mjpeg mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720 @@ -111,31 +131,47 @@ on early-boot symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h # remove write permissions for 'others' - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency + chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID + chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex - chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID - chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency - chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC - chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket - chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval + chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls # chown file/folder permission chown system system /config/usb_gadget/ @@ -276,6 +312,26 @@ on early-boot chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bFrameIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bFrameIndex + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight + chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities -- cgit v1.2.3 From daa06b517ed997994abc62474e34cbb1628be2fc Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Wed, 20 Sep 2023 13:25:57 -0400 Subject: Fix a crash trying to boot the device in a pseudolocale. Bug: 280361527 Test: Boot in XA Change-Id: Ief6a17da63ebe8ede682cb7fc537af77d02fc183 --- overlay/frameworks/base/packages/SystemUI/res/values/config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml index 67dcdc5..269450e 100644 --- a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml +++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml @@ -26,5 +26,5 @@ false - M21,0C19.94,0.01 18.83,0.04 17.73,0.11C16.91,0.17 16.09,0.25 15.3,0.36C14.5,0.48 13.72,0.62 12.95,0.81C11.42,1.19 9.97,1.72 8.65,2.43C7.32,3.14 6.12,4.02 5.08,5.07C4.04,6.11 3.15,7.31 2.44,8.64C1.73,9.97 1.19,11.42 0.82,12.94C0.63,13.7 0.48,14.49 0.37,15.29C0.25,16.09 0.17,16.9 0.12,17.72C0.05,18.82 0.02,19.93 0.01,21.55 + M21,0C19.94,0.01 18.83,0.04 17.73,0.11C16.91,0.17 16.09,0.25 15.3,0.36C14.5,0.48 13.72,0.62 12.95,0.81C11.42,1.19 9.97,1.72 8.65,2.43C7.32,3.14 6.12,4.02 5.08,5.07C4.04,6.11 3.15,7.31 2.44,8.64C1.73,9.97 1.19,11.42 0.82,12.94C0.63,13.7 0.48,14.49 0.37,15.29C0.25,16.09 0.17,16.9 0.12,17.72C0.05,18.82 0.02,19.93 0.01,21.55 -- cgit v1.2.3 From b8332186715e9e9f54bd864992de28bd4306fc1e Mon Sep 17 00:00:00 2001 From: David Kimmel Date: Wed, 20 Sep 2023 19:36:06 +0000 Subject: Revert "Sched lib affinity and freq settings" This reverts commit 253d3d48fa4fe07b4dc39a5133659c75a807275a. Reason for revert: Scheduling while atomic b/301031609 Bug: 301031609 Change-Id: I8179a926315da55ede03653a1517f13f61f3fdeb --- conf/init.zuma.rc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 923700d..cb5cf40 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -592,11 +592,6 @@ on boot chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva chown audioserver system /sys/kernel/debug/abox/log-00 - # Change sched lib affinity - write /proc/vendor_sched/sched_lib_name libunity.so - write /proc/vendor_sched/sched_lib_mask_in 0x100 - write /proc/vendor_sched/sched_lib_mask_out 0x1f0 - # Permission for USB SELECT chown system system /sys/class/android_usb/android0/enable chmod 0660 /sys/class/android_usb/android0/enable -- cgit v1.2.3 From 1490d66c285b81f9a93441f3ed0bcf54492de80f Mon Sep 17 00:00:00 2001 From: David Kimmel Date: Wed, 20 Sep 2023 19:36:06 +0000 Subject: Revert "Sched lib affinity and freq settings" This reverts commit 253d3d48fa4fe07b4dc39a5133659c75a807275a. Reason for revert: Scheduling while atomic b/301031609 Bug: 301031609 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b8332186715e9e9f54bd864992de28bd4306fc1e) Merged-In: I8179a926315da55ede03653a1517f13f61f3fdeb Change-Id: I8179a926315da55ede03653a1517f13f61f3fdeb --- conf/init.zuma.rc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index d4aa490..44871de 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -596,11 +596,6 @@ on boot chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva chown audioserver system /sys/kernel/debug/abox/log-00 - # Change sched lib affinity - write /proc/vendor_sched/sched_lib_name libunity.so - write /proc/vendor_sched/sched_lib_mask_in 0x100 - write /proc/vendor_sched/sched_lib_mask_out 0x1f0 - # Permission for USB SELECT chown system system /sys/class/android_usb/android0/enable chmod 0660 /sys/class/android_usb/android0/enable -- cgit v1.2.3 From 4d16a3505e8f3b31b89c9880dfbeec728df6327c Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Tue, 27 Jun 2023 17:38:37 +0000 Subject: init.zuma.rc: Tune uclamp_max values for Zuma and enable uclamp_max_filter The values are based on most efficient frequencies from EM default profile. Bug: 289083704 Signed-off-by: Qais Yousef Change-Id: Iab3f17c9f32e0ea01e1a8f414373aac0fece8b46 --- conf/init.zuma.rc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 44871de..c1df311 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -837,10 +837,15 @@ on property:sys.boot_completed=1 write /proc/vendor_sched/ug_bg_group_throttle ${persist.device_config.vendor_system_native.ug_bg_group_throttle:-308} # Set uclamp.max for some groups, which could indicate cpu importance used in scheduling - write /proc/vendor_sched/bg_uclamp_max 512 + write /proc/vendor_sched/auto_uclamp_max "130 130 130 130 512 512 512 512 670" + write /proc/vendor_sched/bg_uclamp_max 130 write /proc/vendor_sched/sysbg_uclamp_max 512 write /proc/vendor_sched/ota_uclamp_max 512 - write /proc/vendor_sched/dex2oat_uclamp_max 615 + write /proc/vendor_sched/dex2oat_uclamp_max -2 + + write /proc/vendor_sched/uclamp_max_filter_divider 4 + write /proc/vendor_sched/uclamp_max_filter_rt 16 + write /proc/vendor_sched/uclamp_max_filter_enable 1 # Set PMU freq limit parameters write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 0 -- cgit v1.2.3 From d6dfbdeec4361f6e212a7ec0228f1b7ffb3aefde Mon Sep 17 00:00:00 2001 From: Ian Elliott Date: Tue, 26 Sep 2023 15:05:51 +0000 Subject: Revert "zuma: Enable SkiaVk as RenderEngine backend" This reverts commit 1ac9ce7219cfa05f8641a90f1bd3acced85102f5. Reason for revert: Increased jank reported, especially on the Pixel tablet Bug: 301846142 Bug: 298975477 Change-Id: If9ef37db1ff77880ac483bd76dc5e95ca4e8eb4e --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 06982f4..636c43e 100644 --- a/device.mk +++ b/device.mk @@ -290,7 +290,7 @@ PRODUCT_COPY_FILES += \ PRODUCT_VENDOR_PROPERTIES += \ ro.opengles.version=196610 \ graphics.gpu.profiler.support=true \ - debug.renderengine.backend=skiavkthreaded \ + debug.renderengine.backend=skiaglthreaded \ # GRAPHICS - GPU (end) # #################### -- cgit v1.2.3 From ea0cc7f075315d5c18b1096093b68cebba919b1b Mon Sep 17 00:00:00 2001 From: David Kimmel Date: Tue, 26 Sep 2023 10:58:33 -0700 Subject: Game Mode Sched lib affinity Bug: 170648047 Test: sched / hints applied correctly Change-Id: Id781d42a93085981301b5278a67e8e4e1f47617d Signed-off-by: David Kimmel --- conf/init.zuma.rc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index c1df311..49f05f4 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -596,6 +596,10 @@ on boot chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva chown audioserver system /sys/kernel/debug/abox/log-00 + # Change sched lib affinity + write /proc/vendor_sched/sched_lib_name libunity.so + write /proc/vendor_sched/sched_lib_mask_out 0x1f0 + # Permission for USB SELECT chown system system /sys/class/android_usb/android0/enable chmod 0660 /sys/class/android_usb/android0/enable -- cgit v1.2.3 From 7b5f2ae7a5082734c0542634dd79615dff8a6624 Mon Sep 17 00:00:00 2001 From: jonerlin Date: Thu, 5 Oct 2023 10:46:28 +0800 Subject: init.zuma.rc: bluetooth own uart debug node Bug: 294747612 Test: v2/pixel-pts/release/bootstress/1200counts/suspend-resume Change-Id: I2d381e37df4e179cc967a0cbc6fbe71458bc23f2 --- conf/init.zuma.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 8c8960c..87dac15 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -997,6 +997,7 @@ on post-fs-data chown bluetooth system /proc/bluetooth/sleep/btwake chown bluetooth system /proc/bluetooth/sleep/lpm chown bluetooth system /proc/bluetooth/sleep/btwrite + chown bluetooth system /sys/devices/platform/155d0000.serial/uart_dbg mkdir /data/vendor/bluetooth 0770 bluetooth system # ODPM -- cgit v1.2.3 From 78a5acf93a743bffacecea35fb4ee65c9b5cd503 Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Wed, 11 Oct 2023 13:54:20 +0800 Subject: zuma: update media_codecs_performance_c2.xml based on UQ1A.231011.001 Bug: 301873445 Test: run cts -m CtsMediaDecoderTestCases -t android.media.decoder.cts.VideoDecoderPerfTest#testPerf[13_c2.android.hevc.decoder_cif] Change-Id: I75c1924cf4d885882e5130f1a8d78a4d98466d46 --- media_codecs_performance_c2.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index df54bb4..924b1c3 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -124,8 +124,7 @@ - - + -- cgit v1.2.3 From e223cf13b842696d4a2bbdd4e7ea6b714c2b1a30 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Thu, 26 Oct 2023 20:04:00 +0000 Subject: [conflict] DO NOT MERGE - Run fsck to resolve possible data corruption am: 19eb98145d Original change: https://googleplex-android-review.googlesource.com/c/device/google/zuma/+/25175376 Bug: 305658663 Signed-off-by: Automerger Merge Worker (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:707c8849e5e5511a8bf009b61a714cdd2fea811b) Merged-In: Icc611e53d39734b7f6ce9c70ca601d61ec4d4e33 Change-Id: Icc611e53d39734b7f6ce9c70ca601d61ec4d4e33 --- device-common.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device-common.mk b/device-common.mk index ece4678..a97a76f 100644 --- a/device-common.mk +++ b/device-common.mk @@ -47,6 +47,10 @@ PRODUCT_PRODUCT_PROPERTIES += \ # Set the max page size to 4096 (b/300367402) PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 4096 +# Trigger fsck on upgrade (305658663) +PRODUCT_PRODUCT_PROPERTIES += \ + ro.preventative_fsck = 1 + # Indicate that the bootloader supports the MTE developer option switch # (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products that # force enable MTE. -- cgit v1.2.3 From 1bc7e21a38a44afbc60d15fec49b05615d3b11fb Mon Sep 17 00:00:00 2001 From: Will McVicker Date: Wed, 18 Oct 2023 13:31:23 -0700 Subject: fstab: allow unlocked devices to boot with AVB test key Set `avb_keys=no_such_key` for dynamic kernel partitions to allow booting unlocked devices with a custom kernel. This allows a few things: 1) Dogfooders can flash a custom kernel without wiping their device. This can help developers track down hard-to-reproduce bugs without rolling out a patch to the whole dogfooder population. 2) Developers can uprev their device's kernel without wiping their device or packaging the kernel with an Android platform build. Note: we are using "no_such_key" to ensure an AVB keys file doesn't accidentally get created. Test: Flash CI build. Then flash custom kernel on top. Bug: 274825778 Change-Id: Ibf3cee491404b9efc18c49936edf64c2e3084adf --- conf/fstab.zuma.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/fstab.zuma.in b/conf/fstab.zuma.in index d079c8e..b2a5f14 100644 --- a/conf/fstab.zuma.in +++ b/conf/fstab.zuma.in @@ -7,11 +7,11 @@ system /system ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 # During compliance testing, the previous line would fail (because GSI is ext4), and the next line would be used to mount GSI. system /system ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 -system_dlkm /system_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system_dlkm /system_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta_system,avb_keys=no_such_key,logical,first_stage_mount,readahead_size_kb=128 system_ext /system_ext ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 product /product ext4 noatime,ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 vendor /vendor ext4 noatime,ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128 -vendor_dlkm /vendor_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta,logical,first_stage_mount +vendor_dlkm /vendor_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta,avb_keys=no_such_key,logical,first_stage_mount /dev/block/platform/13200000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/init_boot /init_boot emmc defaults slotselect,avb=init_boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable -- cgit v1.2.3