From d1e6215c51a8525886f3a3eab46ad3db8cf6f056 Mon Sep 17 00:00:00 2001 From: Huihong Luo Date: Wed, 1 Nov 2023 13:53:38 -0700 Subject: [PATCH 01/59] Add a sysprop for updating HDCP between HWC and SF SurfaceFlinger checks this sysprop to determine if vsync workaround is used for HWC to update hdcp levels. Bug: 280818362 Test: adb shell getprop debug.sf.hwc_hdcp_via_neg_vsync Change-Id: I5487995496566be8edddcabba128a9b9b0bac31f --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 1c929cb6..dd5f1603 100644 --- a/device.mk +++ b/device.mk @@ -681,6 +681,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.hwc_hotplug_error_via_neg_vsync=1 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.hwc_hdcp_via_neg_vsync=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80 From da98405dec8a4e8e0bdd31476055a4cef9e872a9 Mon Sep 17 00:00:00 2001 From: kierancyphus Date: Tue, 28 Nov 2023 14:12:32 +0800 Subject: [PATCH 02/59] logmasklibrary: update version info and freeze api The versions were originally not specified in the device manifest and compatibility matrices. This is changed here to fix the broken vts tests. Bug: 310109332 Test: atest vts_treble_vintf_vendor_test -- --abi arm64-v8a Change-Id: I58653ed6f284b091995c93e9bf44a65023f380db --- device_framework_matrix_product.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index b5128682..a59ac59f 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -195,6 +195,7 @@ com.google.pixel.modem.logmasklibrary + 1 ILiboemserviceProxy default From 3082aa7f4877e737f06f2fb170778dac56fb7d0a Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Thu, 26 Oct 2023 21:35:30 +0000 Subject: [PATCH 03/59] usb: report displayport capable port partner disconnect to drm On port-partner remove, write to drm's usbc_cable_disconnect node if setupDisplayPortPoll() had run previously in the connection, flagged by mPartnerSupportsDisplayPort. Test: manual test on device Bug: 303820069 Change-Id: I3478f2f027540972647044716a1a3e832ae1b152 Signed-off-by: RD Babiera --- usb/usb/Usb.cpp | 13 +++++++++++++ usb/usb/Usb.h | 5 +++++ usb/usb/android.hardware.usb-service.rc | 2 ++ 3 files changed, 20 insertions(+) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index c0813d9e..32adc3b2 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -1218,6 +1218,16 @@ static void uevent_event(uint32_t /*epevents*/, struct data *payload) { payload->usb->mPartnerUp = true; pthread_cond_signal(&payload->usb->mPartnerCV); pthread_mutex_unlock(&payload->usb->mPartnerLock); + } else if (std::regex_match(cp, std::regex("(remove)(.*)(-partner)"))) { + string drmDisconnectPath = string(kDisplayPortDrmPath) + "usbc_cable_disconnect"; + + if (payload->usb->mPartnerSupportsDisplayPort) { + ALOGI("displayport partner removed"); + if (!WriteStringToFile("1", drmDisconnectPath)) { + ALOGE("Failed to signal disconnect to drm"); + } + payload->usb->mPartnerSupportsDisplayPort = false; + } } else if (!strncmp(cp, "DEVTYPE=typec_", strlen("DEVTYPE=typec_")) || !strncmp(cp, "DRIVER=max77759tcpc", strlen("DRIVER=max77759tcpc")) || @@ -1384,6 +1394,8 @@ ScopedAStatus Usb::setCallback(const shared_ptr& in_callback) { return ScopedAStatus::ok(); } +/***** DisplayPort Alt Mode Helpers *****/ + Status Usb::getDisplayPortUsbPathHelper(string *path) { DIR *dp; Status result = Status::ERROR; @@ -1800,6 +1812,7 @@ void Usb::setupDisplayPortPoll() { int ret; ALOGI("usbdp: setup: beginning setup for displayport poll thread"); + mPartnerSupportsDisplayPort = true; /* * If thread is currently starting, then it hasn't setup DisplayPort fd's, and we can abandon diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 4d9ab538..60064514 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -156,6 +156,11 @@ struct Usb : public BnUsb { * eventfd to monitor whether a connection results in DisplayPort Alt Mode activating. */ int mDisplayPortActivateTimer; + /* + * Indicates whether or not port partner supports DisplayPort, and is used to + * communicate to the drm when the port partner physically disconnects. + */ + bool mPartnerSupportsDisplayPort; private: pthread_t mPoll; diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc index 7619869a..e710451e 100644 --- a/usb/usb/android.hardware.usb-service.rc +++ b/usb/usb/android.hardware.usb-service.rc @@ -21,6 +21,7 @@ on post-fs chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status + chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id chown root system /sys/devices/platform/11110000.usb/usb_data_enabled @@ -44,4 +45,5 @@ on post-fs chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status + chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect chmod 664 /sys/devices/platform/google,pogo/enable_usb From 624157e600703be22bebbfa578d0e05bb75968de Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Sat, 16 Dec 2023 02:01:01 +0800 Subject: [PATCH 04/59] Adjust bd_state to system for read Bug: 316432531 Change-Id: Ib4a398d766bb321d0579819f248d4688be7ad1d1 Signed-off-by: Jenny Ho --- conf/init.zuma.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index c7558410..e5c832cd 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -306,6 +306,7 @@ on init chown system system /sys/devices/platform/google,charger/bd_trigger_time chown system system /sys/devices/platform/google,charger/bd_trigger_voltage chown system system /sys/devices/platform/google,charger/bd_clear + chown system system /sys/devices/platform/google,charger/bd_state chown system system /sys/devices/platform/google,charger/charge_start_level chown system system /sys/devices/platform/google,charger/charge_stop_level chown system system /sys/devices/platform/google,cpm/dc_ctl From 245ae849854077f19aa2339b120a3f20b0e773b8 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Wed, 11 Oct 2023 20:49:34 -0700 Subject: [PATCH 05/59] zuma: change swap_free_low_percentage to 10 Since LMKD introduced aggressive kill for cached apps, we can change the swap_free_low_percentage back to 10. Bug: 300660611 Change-Id: I688f2559698c7553a7f585cab2693d09d70731f4 Merged-In: I688f2559698c7553a7f585cab2693d09d70731f4 Signed-off-by: Minchan Kim --- device.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/device.mk b/device.mk index 32610410..cd2ea028 100644 --- a/device.mk +++ b/device.mk @@ -1132,10 +1132,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled?=tr PRODUCT_PROPERTY_OVERRIDES += \ ro.crypto.volume.options=aes-256-xts:aes-256-hctr2 -# Increase lmkd aggressiveness -PRODUCT_PROPERTY_OVERRIDES += \ - ro.lmk.swap_free_low_percentage=100 - # Hardware Info Collection include hardware/google/pixel/HardwareInfo/HardwareInfo.mk From 859b45c9051884406a598574cc6eeeb1e6d39433 Mon Sep 17 00:00:00 2001 From: Peter Lin Date: Thu, 30 Nov 2023 07:51:45 +0000 Subject: [PATCH 06/59] Update default color temperature for night light Bug: 302396607 Test: adb shell dumpsys color_display | grep "Color temp" Change-Id: If106f81c0dd2bd81a48e156e1cc75dba4a885aca (cherry picked from commit dc330b5e88cc544493c37465fb52b5abed63a3f0) Merged-In: If106f81c0dd2bd81a48e156e1cc75dba4a885aca --- 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 60563321..260fe210 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -215,7 +215,7 @@ - 3339 + 4000 true From bc01b6ec0244502364177d00bc6320d09668d9b8 Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Wed, 20 Dec 2023 20:14:56 +0800 Subject: [PATCH 07/59] powerstats: expose display MRR state residency data provider Bug: 317192192 Test: vts-tradefed run vts -m VtsHalPowerStatsTargetTest Change-Id: I1e02ffa0dfcfe61e7c2fa0acb44241b322046b0a Signed-off-by: Darren Hsu --- powerstats/ZumaCommonDataProviders.cpp | 7 +++++++ powerstats/include/ZumaCommonDataProviders.h | 1 + 2 files changed, 8 insertions(+) diff --git a/powerstats/ZumaCommonDataProviders.cpp b/powerstats/ZumaCommonDataProviders.cpp index dc3f5342..2602a85f 100644 --- a/powerstats/ZumaCommonDataProviders.cpp +++ b/powerstats/ZumaCommonDataProviders.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,7 @@ using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvi using aidl::android::hardware::power::stats::AocStateResidencyDataProvider; using aidl::android::hardware::power::stats::CpupmStateResidencyDataProvider; using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider; +using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider; using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider; using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider; using aidl::android::hardware::power::stats::EnergyConsumerType; @@ -648,6 +650,11 @@ void addPixelStateResidencyDataProvider(std::shared_ptr p) { p->addStateResidencyDataProvider(std::move(pixelSdp)); } +void addDisplayMRR(std::shared_ptr p) { + p->addStateResidencyDataProvider(std::make_unique( + "Display", "/sys/class/backlight/panel0-backlight/")); +} + void addZumaCommonDataProviders(std::shared_ptr p) { setEnergyMeter(p); diff --git a/powerstats/include/ZumaCommonDataProviders.h b/powerstats/include/ZumaCommonDataProviders.h index 03976e75..5ca5481b 100644 --- a/powerstats/include/ZumaCommonDataProviders.h +++ b/powerstats/include/ZumaCommonDataProviders.h @@ -23,6 +23,7 @@ using aidl::android::hardware::power::stats::PowerStats; void addAoC(std::shared_ptr p); void addCPUclusters(std::shared_ptr p); void addDevfreq(std::shared_ptr p); +void addDisplayMRR(std::shared_ptr p); void addDvfsStats(std::shared_ptr p); void addGNSS(std::shared_ptr p); void addGPU(std::shared_ptr p); From eddcfba6b33655b1f80a87f3376bdb058bad8acb Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Wed, 20 Dec 2023 09:34:57 -0800 Subject: [PATCH 08/59] Migrate to gs-common/storage/init.storage.rc Bug: 311655524 Change-Id: I084717957a3bdf0bcbdca06502867d8e108ac139 Signed-off-by: Jaegeuk Kim --- conf/init.zuma.rc | 58 ----------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index e5c832cd..e62c2759 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -17,12 +17,8 @@ on init write /proc/vendor_sched/teo_util_threshold "2 1024 1024" # Boot time fs tuning - write /sys/block/sda/queue/iostats 0 write /sys/block/sda/queue/scheduler bfq write /sys/block/sda/queue/iosched/slice_idle 0 - write /sys/block/sda/queue/nr_requests 256 - write /dev/sys/fs/by-name/userdata/data_io_flag 56 - write /dev/sys/fs/by-name/userdata/node_io_flag 56 chown system system /proc/vendor_sched/groups/bg/set_task_group chown system system /proc/vendor_sched/groups/cam/set_task_group @@ -104,15 +100,6 @@ on init chmod 0660 /proc/vendor_sched/pmu_poll_enable chmod 0220 /proc/vendor_sched/pmu_poll_time - wait /dev/block/platform/${ro.boot.boot_devices} - symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice - - # to access UFS/eMMC sysfs directly - symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice - - # Disable UFS powersaving - write /dev/sys/block/bootdevice/clkgate_enable 0 - start vendor.keymaster-4-0 # ZRAM setup @@ -544,15 +531,6 @@ on early-boot # Wait for insmod_sh to finish all common modules wait_for_prop vendor.common.modules.ready 1 - # Permission for Health Storage HAL - chown system system /dev/sys/block/bootdevice/manual_gc - - # Permission for Pixelstats - chown system system /dev/sys/block/bootdevice/slowio_read_cnt - chown system system /dev/sys/block/bootdevice/slowio_write_cnt - chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt - chown system system /dev/sys/block/bootdevice/slowio_sync_cnt - # logbuffer chown system system /dev/logbuffer_maxfg chown system system /dev/logbuffer_maxfg_monitor @@ -777,24 +755,6 @@ on property:init.svc.vendor.charger=running write /sys/devices/system/cpu/cpu7/online 0 on property:sys.boot_completed=1 - - # Runtime fs tuning - write /sys/block/sda/queue/nr_requests 128 - write /sys/block/sda/queue/iostats 1 - write /sys/block/sda/queue/iosched/slice_idle 0 - write /dev/sys/fs/by-name/userdata/data_io_flag 8 - write /dev/sys/fs/by-name/userdata/node_io_flag 8 - - # Permission for Pixelstats - chown system system /dev/sys/fs/by-name/userdata/compr_written_block - chown system system /dev/sys/fs/by-name/userdata/compr_saved_block - chown system system /dev/sys/fs/by-name/userdata/compr_new_inode - chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode - chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments - chown system system /dev/sys/fs/by-name/userdata/peak_atomic_write - chown system system /dev/sys/fs/by-name/userdata/committed_atomic_block - chown system system /dev/sys/fs/by-name/userdata/revoked_atomic_block - # Enable ZRAM on boot_complete swapon_all /vendor/etc/fstab.${ro.board.platform} write /proc/sys/vm/swappiness 60 @@ -809,9 +769,6 @@ on property:sys.boot_completed=1 write /proc/sys/vm/dirty_expire_centisecs 3000 write /proc/sys/vm/dirty_background_ratio 10 - # Enable UFS powersaving - write /dev/sys/block/bootdevice/clkgate_enable 1 - # Cancel boot devfreq write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 @@ -1147,16 +1104,6 @@ on charger mkdir /dev/thermal/cdev-by-name 0750 system system start vendor.thermal.symlinks - # Runtime fs tuning - write /sys/block/sda/queue/nr_requests 128 - write /sys/block/sda/queue/iostats 1 - write /sys/block/sda/queue/iosched/slice_idle 0 - write /dev/sys/fs/by-name/userdata/data_io_flag 8 - write /dev/sys/fs/by-name/userdata/node_io_flag 8 - - # Enable UFS powersaving - write /dev/sys/block/bootdevice/clkgate_enable 1 - # Cancel boot devfreq and uclamp write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 write /proc/vendor_sched/groups/ta/uclamp_min 0 @@ -1183,11 +1130,6 @@ on post-fs-data && property:ro.vendor.factory=1 chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode -# UFS -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. From 2916329aa2a63fadcb34cb5720ceac3512bcce54 Mon Sep 17 00:00:00 2001 From: Jasmine Cha Date: Thu, 21 Dec 2023 16:34:42 +0800 Subject: [PATCH 09/59] audio: disable audio hal aidl on zuma Bug: 317444263 Test: boot to home, check basic audio functions Change-Id: Idc955d7d0cdf2e683e3b8540be8d4810972a0ee2 Signed-off-by: Jasmine Cha --- device.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/device.mk b/device.mk index a70ebfb6..9c36b331 100644 --- a/device.mk +++ b/device.mk @@ -1027,11 +1027,11 @@ PRODUCT_PACKAGES += \ # Audio # Audio HAL Server & Default Implementations -ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true) -include device/google/gs-common/audio/aidl.mk -else +#ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true) +#include device/google/gs-common/audio/aidl.mk +#else include device/google/gs-common/audio/hidl_zuma.mk -endif +#endif ## AoC soong PRODUCT_SOONG_NAMESPACES += \ From 88f3ee90d98f91e87857278e1b04d2b5e5489958 Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Wed, 20 Dec 2023 21:34:37 +0000 Subject: [PATCH 10/59] usb: implement heuristics to flag data compliance warnings Support flagging enum failure and flaky connection in device mode, flagging enum failure and missing data lines in host mode. No warning would be flagged until 5 secs after the data session starts to give ample time for the connection to stabilize, a timer is added to support it. Bug: 296119135 Test: manually trigger the warnings Change-Id: I25f08657e328913946add192b5ecb9ee50c3a1a8 (cherry picked from commit 42020dc4585442bd7ca88f183ba29a18834af197) --- usb/usb/UsbDataSessionMonitor.cpp | 125 ++++++++++++++++++++++++++---- usb/usb/UsbDataSessionMonitor.h | 3 + 2 files changed, 113 insertions(+), 15 deletions(-) diff --git a/usb/usb/UsbDataSessionMonitor.cpp b/usb/usb/UsbDataSessionMonitor.cpp index 77defb30..a2ccbafb 100644 --- a/usb/usb/UsbDataSessionMonitor.cpp +++ b/usb/usb/UsbDataSessionMonitor.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -48,6 +49,14 @@ namespace usb { #define UEVENT_MSG_LEN 2048 #define USB_STATE_MAX_LEN 20 #define DATA_ROLE_MAX_LEN 10 +#define WARNING_SURFACE_DELAY_SEC 5 +#define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3 +#define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5 +/* + * Typically a smooth and successful enumeration in device mode would go through 5 states at + * maximum: not attached -> default -> default -> addressed -> configured + */ +#define DEVICE_STATE_TRANSITION_PER_ENUMERATION 5 constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC"; constexpr char kNotAttachedState[] = "not attached\n"; @@ -115,6 +124,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor( if (addEpollFd(epollFd, ueventFd)) abort(); + unique_fd timerFd(timerfd_create(CLOCK_BOOTTIME, TFD_NONBLOCK)); + if (timerFd.get() == -1) { + ALOGE("create timerFd failed"); + abort(); + } + + if (addEpollFd(epollFd, timerFd)) + abort(); + if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) { ALOGE("monitor data role failed"); abort(); @@ -139,6 +157,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor( mEpollFd = std::move(epollFd); mUeventFd = std::move(ueventFd); + mTimerFd = std::move(timerFd); mUpdatePortStatusCb = updatePortStatusCb; if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty()) @@ -223,13 +242,60 @@ void UsbDataSessionMonitor::notifyComplianceWarning() { void UsbDataSessionMonitor::evaluateComplianceWarning() { std::set newWarningSet; + int elapsedTimeSec; - // TODO: add heuristics and update newWarningSet - if (mDataRole == PortDataRole::DEVICE && mUdcBind) { - } else if (mDataRole == PortDataRole::HOST) { + elapsedTimeSec = + std::chrono::duration_cast(boot_clock::now() - mDataSessionStart) + .count(); + + if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) { + if (mDataRole == PortDataRole::DEVICE && mUdcBind) { + int stateCount = mDeviceState.states.size(); + int configuredCount = std::count(mDeviceState.states.begin(), + mDeviceState.states.end(), kConfiguredState); + int defaultCount = + std::count(mDeviceState.states.begin(), mDeviceState.states.end(), kDefaultState); + + if (configuredCount == 0 && defaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD) + newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL); + + if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD && + stateCount > configuredCount * DEVICE_STATE_TRANSITION_PER_ENUMERATION) { + ALOGI("Detected flaky connection: state count %d, configured count %d", + stateCount, configuredCount); + newWarningSet.insert(ComplianceWarning::FLAKY_CONNECTION); + } + } else if (mDataRole == PortDataRole::HOST) { + int host1StateCount = mHost1State.states.size(); + int host1ConfiguredCount = + std::count(mHost1State.states.begin(), mHost1State.states.end(), kConfiguredState); + int host1DefaultCount = + std::count(mHost1State.states.begin(), mHost1State.states.end(), kDefaultState); + int host2StateCount = mHost2State.states.size(); + int host2ConfiguredCount = + std::count(mHost2State.states.begin(), mHost2State.states.end(), kConfiguredState); + int host2DefaultCount = + std::count(mHost2State.states.begin(), mHost2State.states.end(), kDefaultState); + + if (host1ConfiguredCount == 0 && host2ConfiguredCount == 0 && + (host1DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD || + host2DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD)) + newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL); + + if (host1StateCount == 1 && mHost1State.states.front() == kNotAttachedState && + host2StateCount == 1 && mHost2State.states.front() == kNotAttachedState) + newWarningSet.insert(ComplianceWarning::MISSING_DATA_LINES); + } } if (newWarningSet != mWarningSet) { + std::string newWarningString; + + for (auto e : newWarningSet) { + newWarningString += toString(e) + " "; + } + ALOGI("Usb data compliance warning changed to: %s", newWarningString.c_str()); + mWarningSet = newWarningSet; notifyComplianceWarning(); } @@ -259,6 +325,26 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device evaluateComplianceWarning(); } +void UsbDataSessionMonitor::setupNewSession() { + mWarningSet.clear(); + mDataSessionStart = boot_clock::now(); + + if (mDataRole == PortDataRole::DEVICE) { + clearDeviceStateEvents(&mDeviceState); + } else if (mDataRole == PortDataRole::HOST) { + clearDeviceStateEvents(&mHost1State); + clearDeviceStateEvents(&mHost2State); + } + + if (mDataRole != PortDataRole::NONE) { + struct itimerspec delay = itimerspec(); + delay.it_value.tv_sec = WARNING_SURFACE_DELAY_SEC; + int ret = timerfd_settime(mTimerFd.get(), 0, &delay, NULL); + if (ret < 0) + ALOGE("timerfd_settime failed err:%d", errno); + } +} + void UsbDataSessionMonitor::handleDataRoleEvent() { int n; PortDataRole newDataRole; @@ -283,17 +369,8 @@ void UsbDataSessionMonitor::handleDataRoleEvent() { reportUsbDataSessionMetrics(); } - // Set up for the new data session - mWarningSet.clear(); mDataRole = newDataRole; - mDataSessionStart = boot_clock::now(); - - if (newDataRole == PortDataRole::DEVICE) { - clearDeviceStateEvents(&mDeviceState); - } else if (newDataRole == PortDataRole::HOST) { - clearDeviceStateEvents(&mHost1State); - clearDeviceStateEvents(&mHost2State); - } + setupNewSession(); } } @@ -328,8 +405,7 @@ void UsbDataSessionMonitor::updateUdcBindStatus(const std::string &devname) { } else if (!mUdcBind && newUdcBind) { // Gadget soft pullup: reset and start accounting for a new data session. - clearDeviceStateEvents(&mDeviceState); - mDataSessionStart = boot_clock::now(); + setupNewSession(); } } @@ -383,6 +459,23 @@ void UsbDataSessionMonitor::handleUevent() { } } +void UsbDataSessionMonitor::handleTimerEvent() { + int byteRead; + uint64_t numExpiration; + + byteRead = read(mTimerFd.get(), &numExpiration, sizeof(numExpiration)); + + if (byteRead != sizeof(numExpiration)) { + ALOGE("incorrect read size"); + } + + if (numExpiration != 1) { + ALOGE("incorrect expiration count"); + } + + evaluateComplianceWarning(); +} + void *UsbDataSessionMonitor::monitorThread(void *param) { UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param; struct epoll_event events[64]; @@ -400,6 +493,8 @@ void *UsbDataSessionMonitor::monitorThread(void *param) { for (int n = 0; n < nevents; ++n) { if (events[n].data.fd == monitor->mUeventFd.get()) { monitor->handleUevent(); + } else if (events[n].data.fd == monitor->mTimerFd.get()) { + monitor->handleTimerEvent(); } else if (events[n].data.fd == monitor->mDataRoleFd.get()) { monitor->handleDataRoleEvent(); } else if (events[n].data.fd == monitor->mDeviceState.fd.get()) { diff --git a/usb/usb/UsbDataSessionMonitor.h b/usb/usb/UsbDataSessionMonitor.h index 596f378f..aced8a48 100644 --- a/usb/usb/UsbDataSessionMonitor.h +++ b/usb/usb/UsbDataSessionMonitor.h @@ -75,9 +75,11 @@ class UsbDataSessionMonitor { static void *monitorThread(void *param); void handleUevent(); + void handleTimerEvent(); void handleDataRoleEvent(); void handleDeviceStateEvent(struct usbDeviceState *deviceState); void clearDeviceStateEvents(struct usbDeviceState *deviceState); + void setupNewSession(); void reportUsbDataSessionMetrics(); void evaluateComplianceWarning(); void notifyComplianceWarning(); @@ -86,6 +88,7 @@ class UsbDataSessionMonitor { pthread_t mMonitor; unique_fd mEpollFd; unique_fd mUeventFd; + unique_fd mTimerFd; unique_fd mDataRoleFd; struct usbDeviceState mDeviceState; struct usbDeviceState mHost1State; From bbb322e73ae3a9304850ed666a91efd27d4f519e Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Tue, 26 Dec 2023 20:45:34 +0000 Subject: [PATCH 11/59] usb: adjust heuristics for flaky connection warning The state count requirement is very specific to the case where the signal integrity is the culprit of flaky connection. However, there could be other cases such as bad receptacles causing data pins to disconnect randomly. Remove the state count requirement to cover more cases. Bug: 296119135 Test: manually trigger the warnings Change-Id: Ic2ae376ad6062d9930614381503f44e4a5ac760f (cherry picked from commit 5e14ba01be9acc31d3df0f506b4287eea0bf9583) --- usb/usb/UsbDataSessionMonitor.cpp | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/usb/usb/UsbDataSessionMonitor.cpp b/usb/usb/UsbDataSessionMonitor.cpp index a2ccbafb..bae261d7 100644 --- a/usb/usb/UsbDataSessionMonitor.cpp +++ b/usb/usb/UsbDataSessionMonitor.cpp @@ -52,11 +52,6 @@ namespace usb { #define WARNING_SURFACE_DELAY_SEC 5 #define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3 #define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5 -/* - * Typically a smooth and successful enumeration in device mode would go through 5 states at - * maximum: not attached -> default -> default -> addressed -> configured - */ -#define DEVICE_STATE_TRANSITION_PER_ENUMERATION 5 constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC"; constexpr char kNotAttachedState[] = "not attached\n"; @@ -250,7 +245,6 @@ void UsbDataSessionMonitor::evaluateComplianceWarning() { if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) { if (mDataRole == PortDataRole::DEVICE && mUdcBind) { - int stateCount = mDeviceState.states.size(); int configuredCount = std::count(mDeviceState.states.begin(), mDeviceState.states.end(), kConfiguredState); int defaultCount = @@ -259,12 +253,8 @@ void UsbDataSessionMonitor::evaluateComplianceWarning() { if (configuredCount == 0 && defaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD) newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL); - if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD && - stateCount > configuredCount * DEVICE_STATE_TRANSITION_PER_ENUMERATION) { - ALOGI("Detected flaky connection: state count %d, configured count %d", - stateCount, configuredCount); + if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD) newWarningSet.insert(ComplianceWarning::FLAKY_CONNECTION); - } } else if (mDataRole == PortDataRole::HOST) { int host1StateCount = mHost1State.states.size(); int host1ConfiguredCount = From 94a943f67c7d8b9b2fe1a7d46d6a9531f8b30000 Mon Sep 17 00:00:00 2001 From: Jasmine Cha Date: Wed, 3 Jan 2024 14:44:06 +0800 Subject: [PATCH 12/59] audio: check USE_AUDIO_HAL_AIDL instead of trunk flag Bug: 317745810 Test: manual test. (check audio_policy and hal version) Change-Id: Ie89aa296ca96ffaf4ee7b8d6299fb1a5cc431ef9 Signed-off-by: Jasmine Cha --- device.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/device.mk b/device.mk index 9c36b331..4123cf21 100644 --- a/device.mk +++ b/device.mk @@ -1027,11 +1027,11 @@ PRODUCT_PACKAGES += \ # Audio # Audio HAL Server & Default Implementations -#ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true) -#include device/google/gs-common/audio/aidl.mk -#else +ifeq ($(USE_AUDIO_HAL_AIDL),true) +include device/google/gs-common/audio/aidl.mk +else include device/google/gs-common/audio/hidl_zuma.mk -#endif +endif ## AoC soong PRODUCT_SOONG_NAMESPACES += \ From 2ba28967b88f78a7fea923207bc8c61881fc28f8 Mon Sep 17 00:00:00 2001 From: Lei Ju Date: Fri, 15 Dec 2023 14:59:28 -0800 Subject: [PATCH 13/59] [zuma] Include common sepolicy of CHRE HAL Bug: 248615564 Test: compilation Change-Id: I6f335bbc5834915f9848f4f88d19fd12bd8c4199 --- device.mk | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/device.mk b/device.mk index a70ebfb6..149554a3 100644 --- a/device.mk +++ b/device.mk @@ -384,17 +384,16 @@ PRODUCT_HOST_PACKAGES += \ PRODUCT_PACKAGES += \ messaging -# Contexthub HAL -PRODUCT_PACKAGES += \ - android.hardware.contexthub-service.generic - -# CHRE tools +# CHRE +## Tools ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += \ chre_power_test_client \ chre_test_client endif +## HAL +include device/google/gs-common/chre/hal.mk PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml From 90186aa1f3e6c79a210618014523016bd241c248 Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Tue, 9 Jan 2024 08:18:03 +0000 Subject: [PATCH 14/59] Update media_codecs_performance_c2.xml for meet device performance Fine tune the performance table since the change in CPU policy for power saving cause some encoder performance results from the CTS are not able to meet pass criteria from the original performance measurement results. Bug: 317441297 Test: run cts -m CtsVideoTestCases -t android.video.cts.VideoEncoderDecoderTest Test: run cts -m CtsVideoTestCases -t android.video.cts.CodecDecoderPerformanceTest Change-Id: Ib75d3f35c5ea2e2dc80ba192d738d54140a09d68 --- media_codecs_performance_c2.xml | 60 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 4dcb0b4b..146a3171 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -193,40 +193,40 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + @@ -280,8 +280,8 @@ - - + + From a90a2e4a6ec3807ccb303be26a8b10ac5f8c505f Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Tue, 9 Jan 2024 08:18:03 +0000 Subject: [PATCH 15/59] Update media_codecs_performance_c2.xml for meet device performance Fine tune the performance table since the change in CPU policy for power saving cause some encoder performance results from the CTS are not able to meet pass criteria from the original performance measurement results. Bug: 317441297 Test: run cts -m CtsVideoTestCases -t android.video.cts.VideoEncoderDecoderTest Test: run cts -m CtsVideoTestCases -t android.video.cts.CodecDecoderPerformanceTest Change-Id: Ib75d3f35c5ea2e2dc80ba192d738d54140a09d68 --- media_codecs_performance_c2.xml | 60 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 924b1c3b..db8c8380 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -187,40 +187,40 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + @@ -274,8 +274,8 @@ - - + + From d081f9d7dd456c4c3a132258bb93d962b21a4f7c Mon Sep 17 00:00:00 2001 From: Devika Krishnadas Date: Tue, 9 Jan 2024 23:23:10 +0000 Subject: [PATCH 16/59] Revert^3 "Use graphics allocator 2" 4c7ea96e6bf3c81c3bdee444559250ff1d46edb9 Reverting to comply with the Allocator VTS for 24Q1, do not merge to main. Bug: 310046460 Test: VtsHalGraphicsAllocatorAidl_TargetTest Change-Id: Id8b721b05dc20032d13aed469327e8e996b0cffe --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index e35ce982..1c929cb6 100644 --- a/device.mk +++ b/device.mk @@ -544,7 +544,7 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ android.hardware.graphics.mapper@4.0-impl \ - android.hardware.graphics.allocator-V2-service + android.hardware.graphics.allocator-V1-service PRODUCT_PACKAGES += \ android.hardware.memtrack-service.pixel \ From 7f24dda4cf7460c00e830bfaa2c180658b0d1c78 Mon Sep 17 00:00:00 2001 From: Sergey Volk Date: Wed, 10 Jan 2024 02:24:32 +0000 Subject: [PATCH 17/59] zuma: Add display_colordata for external display This is just a copy of the existing display_colordata_cal0.pb, which will provide the same colordata for libdisplaycolor to use for external display. Bug: 288608645 Test: manual Change-Id: I2e895c3f5eefc9626bb88b7b321ff92739b39e4f --- device.mk | 3 ++- display/display_colordata_cal2.pb | Bin 0 -> 28275 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 display/display_colordata_cal2.pb diff --git a/device.mk b/device.mk index 4123cf21..fc7ea93f 100644 --- a/device.mk +++ b/device.mk @@ -715,7 +715,8 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.sf.native_mode=2 \ persist.sys.sf.color_mode=9 PRODUCT_COPY_FILES += \ - device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb + device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb \ + device/google/zuma/display/display_colordata_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal2.pb # limit DPP downscale ratio PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=4 diff --git a/display/display_colordata_cal2.pb b/display/display_colordata_cal2.pb new file mode 100644 index 0000000000000000000000000000000000000000..9840d6a229a56b01d787625fe2d87cc50a20bc07 GIT binary patch literal 28275 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 TQDu0@Z0@B8D?G!F{G$H{U&&Vj literal 0 HcmV?d00001 From 9164eae7cdee032381d8bf045fbbed33f62b00bf Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Thu, 4 Jan 2024 01:15:16 +0000 Subject: [PATCH 18/59] usb: dump flag value in the constructor Dump flag value in the construtor for easier debugging. Feature flags are not expected to change in runtime, dumping the value once should be enough. Bug: 296119135 Test: manual test Change-Id: Ie5aca2dff23e59704fb306833cde0e592b9f430d --- usb/usb/Usb.cpp | 5 +++++ usb/usb/UsbDataSessionMonitor.cpp | 3 +++ 2 files changed, 8 insertions(+) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index c0813d9e..a98eca7b 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -573,6 +573,11 @@ Usb::Usb() ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno)); abort(); } + + ALOGI("feature flag enable_usb_data_compliance_warning: %d", + usb_flags::enable_usb_data_compliance_warning()); + ALOGI("feature flag enable_input_power_limited_warning: %d", + usb_flags::enable_input_power_limited_warning()); } ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role, diff --git a/usb/usb/UsbDataSessionMonitor.cpp b/usb/usb/UsbDataSessionMonitor.cpp index bae261d7..bff52f06 100644 --- a/usb/usb/UsbDataSessionMonitor.cpp +++ b/usb/usb/UsbDataSessionMonitor.cpp @@ -164,6 +164,9 @@ UsbDataSessionMonitor::UsbDataSessionMonitor( ALOGE("pthread creation failed %d", errno); abort(); } + + ALOGI("feature flag enable_report_usb_data_compliance_warning: %d", + usb_flags::enable_report_usb_data_compliance_warning()); } UsbDataSessionMonitor::~UsbDataSessionMonitor() {} From 7e66a71f2106b5c54f1cf16bfc28e25c1b05437a Mon Sep 17 00:00:00 2001 From: Utku Utkan Date: Fri, 12 Jan 2024 00:22:33 +0000 Subject: [PATCH 19/59] Pregrant ACCESS_FINE_LOCATION as default permission to PCS on Zuma Bug: 309676824 Test: m && flashall + pair & connect to remote device Wi-Fi AP Change-Id: I14c107d27d7917816d8991444676da0a9c86136a --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 582971c7..fd29d6bc 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -54,6 +54,8 @@ + + From 8951bbdbfc9d22eb550f2ab6801b61202ef33816 Mon Sep 17 00:00:00 2001 From: Midas Chien Date: Fri, 12 Jan 2024 07:11:25 +0000 Subject: [PATCH 20/59] powerstats: update MRR refresh rate residency node path Refresh rate residency is not directly related to backlight state. Relocate to a more appropriate location. Bug: 315424658 Test: vts-tradefed run vts -m VtsHalPowerStatsTargetTest Change-Id: Ib8d38e04aa6e76766bb05f11b50670094ae55347 --- powerstats/ZumaCommonDataProviders.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/powerstats/ZumaCommonDataProviders.cpp b/powerstats/ZumaCommonDataProviders.cpp index 2602a85f..4b2fef97 100644 --- a/powerstats/ZumaCommonDataProviders.cpp +++ b/powerstats/ZumaCommonDataProviders.cpp @@ -652,7 +652,7 @@ void addPixelStateResidencyDataProvider(std::shared_ptr p) { void addDisplayMRR(std::shared_ptr p) { p->addStateResidencyDataProvider(std::make_unique( - "Display", "/sys/class/backlight/panel0-backlight/")); + "Display", "/sys/class/drm/card0/device/primary-panel/")); } void addZumaCommonDataProviders(std::shared_ptr p) { From 9e59c496ccd7d9c0ef94d15a635e00e8259ed96a Mon Sep 17 00:00:00 2001 From: "donghwa.kwon" Date: Thu, 11 Jan 2024 10:43:06 +0900 Subject: [PATCH 21/59] zuma: add supported mfc version Bug: 315920627 Task: ADVCHAL-220 Test: build pass Change-Id: I064a5d8bdbca5142ec18e6ab40d5066a79305901 Signed-off-by: donghwa.kwon --- BoardConfig-common.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index 7c0ed426..fee3bb32 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -205,7 +205,7 @@ BOARD_SUPPORT_MFC_ENC_RGB := true BOARD_USE_BLOB_ALLOCATOR := false BOARD_SUPPORT_MFC_ENC_BT2020 := true BOARD_SUPPORT_FLEXIBLE_P010 := true - +BOARD_SUPPORT_MFC_VERSION := 1660 ######################## BOARD_SUPER_PARTITION_SIZE := 8531214336 From 936b0f8f5543dca9277363b84bf41968d2b9d426 Mon Sep 17 00:00:00 2001 From: peroulas Date: Mon, 11 Dec 2023 15:25:10 -0800 Subject: [PATCH 22/59] modem_ml: Adds FR2 BPS model Bug: 315882669 Test: Tested on a phone connected to a gNB. Change-Id: Ic3fefd18fb2ec8de86be34467045ef72c97798f1 --- modem_ml/modem_ml_models_user.conf | 3 ++- modem_ml/modem_ml_models_userdebug.conf | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modem_ml/modem_ml_models_user.conf b/modem_ml/modem_ml_models_user.conf index b606ee97..1a150570 100644 --- a/modem_ml/modem_ml_models_user.conf +++ b/modem_ml/modem_ml_models_user.conf @@ -1,3 +1,4 @@ #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer +fr2_bps_ml_model,0,LEGACY,true,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 -sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,88,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 diff --git a/modem_ml/modem_ml_models_userdebug.conf b/modem_ml/modem_ml_models_userdebug.conf index b606ee97..1a150570 100644 --- a/modem_ml/modem_ml_models_userdebug.conf +++ b/modem_ml/modem_ml_models_userdebug.conf @@ -1,3 +1,4 @@ #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer +fr2_bps_ml_model,0,LEGACY,true,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 -sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,88,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 From 495a27003cffef081ae2ae762f830fb72ce3dac6 Mon Sep 17 00:00:00 2001 From: Midas Chien Date: Wed, 17 Jan 2024 07:46:19 +0000 Subject: [PATCH 23/59] display: allow hwcomposer to access allow_wakeup_by_state_change Bug: 311495944 Test: check permission Change-Id: I69b6a1487b84cf798cd61f064a186fca27cd0baf --- conf/init.zuma.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index e62c2759..368b29b4 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -648,6 +648,7 @@ on fs chown system system /sys/class/backlight/panel0-backlight/dimming_on chown system system /sys/class/backlight/panel0-backlight/hbm_mode chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode + chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms From b9a68d227d4f1c912630c7116152f22e33df8245 Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Fri, 12 Jan 2024 16:10:23 +0000 Subject: [PATCH 24/59] Fine tune media_codecs_performance_c2.xml Fine tune a stable performance table to mitigate CTS flaky results. Bug: 317441297 Test: run cts -m CtsVideoTestCases -t android.video.cts.VideoEncoderDecoderTest Change-Id: If8b28c55db43d3d050c3c6c3edb29552c13e5b6a --- media_codecs_performance_c2.xml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 146a3171..2f6645fc 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -182,13 +182,13 @@ - + - + @@ -240,8 +240,8 @@ - - + + @@ -258,34 +258,34 @@ - - + + - + - + - + - + - + - + - - - + + + - + From 8d7d215c7c225584abfeeb329ae85dc4d78ef84d Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Fri, 12 Jan 2024 16:10:23 +0000 Subject: [PATCH 25/59] Fine tune media_codecs_performance_c2.xml Fine tune a stable performance table to mitigate CTS flaky results. Bug: 317441297 Test: run cts -m CtsVideoTestCases -t android.video.cts.VideoEncoderDecoderTest Change-Id: If8b28c55db43d3d050c3c6c3edb29552c13e5b6a (cherry picked from commit b9a68d227d4f1c912630c7116152f22e33df8245) --- media_codecs_performance_c2.xml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index db8c8380..3d94a55a 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -176,13 +176,13 @@ - + - + @@ -234,8 +234,8 @@ - - + + @@ -252,34 +252,34 @@ - - + + - + - + - + - + - + - + - - - + + + - + From 7fb7b28f893c4a77ec8a2ae3e69212c75c62cee9 Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Wed, 17 Jan 2024 18:00:28 +0800 Subject: [PATCH 26/59] dumpstate: Search the path of TCPM psy uevent Bug: 320613177 Change-Id: I58af2fe1edc834567742899ccd90b902b52b68d1 Signed-off-by: Kyle Tso --- dumpstate/dump_power.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index a79921b1..fe604c8a 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -152,6 +152,26 @@ void dumpAcpmStats() { readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); } +void dumpTcpmPsyUevent() { + const char* tcpmPsy = "tcpm-source-psy-"; + DIR *dir = opendir("/sys/class/power_supply/"); + struct dirent *entry; + + if (dir == NULL) + return; + + while ((entry = readdir(dir)) != NULL) { + if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) { + std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name + + "/uevent"); + dumpFileContent("Power supply property tcpm", fullPath.c_str()); + break; + } + } + + closedir(dir); +} + void dumpPowerSupplyStats() { const char* dumpList[][2] = { {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, @@ -162,7 +182,6 @@ void dumpPowerSupplyStats() { {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, - {"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, }; @@ -170,6 +189,8 @@ void dumpPowerSupplyStats() { for (const auto &row : dumpList) { dumpFileContent(row[0], row[1]); } + + dumpTcpmPsyUevent(); } void dumpMaxFg() { From 7bb7687851b49e210fe9e049cba2297aaa96e745 Mon Sep 17 00:00:00 2001 From: Spade Lee Date: Mon, 22 Jan 2024 16:46:36 +0000 Subject: [PATCH 27/59] dumpstate: add SoC residency dump Bug: 319536756 Change-Id: Iec35a05a22a6e6315a2ff6b9b5190099c1bcd5c4 Signed-off-by: Spade Lee --- conf/init.zuma.rc | 1 + dumpstate/dump_power.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 368b29b4..9c42d3cb 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -271,6 +271,7 @@ on init # BatteryHealthData chown system system /sys/class/power_supply/battery/first_usage_date + chown system system /sys/class/power_supply/battery/swelling_data # Battery Defender chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index a79921b1..e6ee5799 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -325,6 +325,7 @@ void dumpLn8411() { void dumpBatteryHealth() { const char* batteryHealth [][2] { {"Battery Health", "/sys/class/power_supply/battery/health_index_stats"}, + {"Battery Health SoC Residency", "/sys/class/power_supply/battery/swelling_data"}, {"BMS", "/dev/logbuffer_ssoc"}, {"TTF", "/dev/logbuffer_ttf"}, {"TTF details", "/sys/class/power_supply/battery/ttf_details"}, From 9070489e16c81b8b01031ef126c6829ee9a74bbb Mon Sep 17 00:00:00 2001 From: kierancyphus Date: Wed, 24 Jan 2024 15:40:18 +0800 Subject: [PATCH 28/59] liboemservice_proxy: Include in build Previously, `Liboemservice_proxy` was included as a part of DMD, and so didn't need to be included on its own. However, since these two have been decoupled, we need to explicitly include the build target here for it to execute on device. Test: Build and check logs to ensure service starts up on boot Bug: 321867236 Change-Id: I525b5f44c60c636302431733b3c311cdf4336d42 --- device.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device.mk b/device.mk index b47c807e..0b8e09a1 100644 --- a/device.mk +++ b/device.mk @@ -980,6 +980,9 @@ endif # modem logging binary/configs PRODUCT_PACKAGES += modem_logging_control +# libeomservice_proxy binary/configs +PRODUCT_PACKAGES += liboemservice_proxy_default + # PILOT SCENARIOS PRODUCT_PACKAGES += \ Pixel_stability.cfg \ From b381c734842267dc3b2ad981586b4a8138d37008 Mon Sep 17 00:00:00 2001 From: Weizhung Ding Date: Thu, 21 Sep 2023 11:19:36 +0000 Subject: [PATCH 29/59] [displayport-stats] add display port stats paths for zuma devices. Bug: 266898132 Test: Build Change-Id: Id60d389cc644c90b6b4df1df5ebedec97d2bc996 --- pixelstats/service.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index da8545cd..7f79b643 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -101,7 +101,15 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .OffloadEffectsIdPath = "/sys/devices/platform/audiometrics/offload_effects_id", .OffloadEffectsDurationPath = "/sys/devices/platform/audiometrics/offload_effects_duration", .BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage", - .GMSRPath = "/sys/class/power_supply/maxfg/gmsr" + .GMSRPath = "/sys/class/power_supply/maxfg/gmsr", + .DisplayPortStatsPaths = { + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_negotiation_failures", + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_read_failures", + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/dpcd_read_failures", + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_invalid_failures", + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/sink_count_invalid_failures", + "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_unstable_failures", + } }; const struct UeventListener::UeventPaths ueventPaths = { From 8fbddd7f290f8cdd8b6af514b47a4cde72875e4d Mon Sep 17 00:00:00 2001 From: Weizhung Ding Date: Thu, 9 Nov 2023 07:37:59 +0000 Subject: [PATCH 30/59] add HDCP stats paths for zuma devices. Bug: 266898132 Test: Build Change-Id: Ib4bb9f7c05976b1ed60f0701a352f2c5ecb3c078 --- pixelstats/service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 7f79b643..b58bf67b 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -109,6 +109,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_invalid_failures", "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/sink_count_invalid_failures", "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_unstable_failures", + }, + .HDCPStatsPaths = { + "/sys/devices/platform/hdcp/hdcp2_success_count", + "/sys/devices/platform/hdcp/hdcp2_fallback_count", + "/sys/devices/platform/hdcp/hdcp2_fail_count", + "/sys/devices/platform/hdcp/hdcp1_success_count", + "/sys/devices/platform/hdcp/hdcp1_fail_count", + "/sys/devices/platform/hdcp/hdcp0_count", } }; From eae974015c7966a04ec10d4bf9e9189b6c4de570 Mon Sep 17 00:00:00 2001 From: Lei Ju Date: Tue, 5 Dec 2023 11:11:06 -0800 Subject: [PATCH 31/59] Enable multiclient HAL on zuma devices Test: PTS, CHQTS Bug: 247124878 Change-Id: I6267a9d7136d7049d2542bb7bbcb68df4208494c --- device.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/device.mk b/device.mk index b47c807e..a9454af0 100644 --- a/device.mk +++ b/device.mk @@ -76,7 +76,7 @@ PRODUCT_SOONG_NAMESPACES += \ hardware/google/pixel \ device/google/zuma \ device/google/zuma/powerstats \ - system/chre/host/hal_generic \ + vendor/google_devices/common/chre/host/hal \ vendor/google/whitechapel/tools \ vendor/google/interfaces \ vendor/google_devices/common/proprietary/confirmatioui_hal \ @@ -389,7 +389,8 @@ PRODUCT_PACKAGES += \ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += \ chre_power_test_client \ - chre_test_client + chre_test_client \ + chre_aidl_hal_client endif ## HAL @@ -398,10 +399,9 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml ## Enable the CHRE Daemon -CHRE_USF_DAEMON_ENABLED := true +CHRE_USF_DAEMON_ENABLED := false CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true PRODUCT_PACKAGES += \ - chre \ preloaded_nanoapps.json # Filesystem management tools From 9d76c9ea038e8540ca983087aa5cfde9ada9deee Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Thu, 25 Jan 2024 11:59:31 +0000 Subject: [PATCH 32/59] zuma: update c2.android.av1-dav1d.decoder performance point c2.android.av1-dav1d.decoder performance has been improved with CL "C2SoftDav1dDec: Fix performance issues in frame parallel multi-threading" More detail in b/315828433 Bug: 315828433 Test: run cts -m CtsMediaDecoderTestCases -a arm64-v8a -t android.media.decoder.cts.VideoDecoderPerfTest --module-arg CtsMediaDecoderTestCases:instrumentation-arg:codec-prefix:=c2.android.av1-dav1d.decoder Change-Id: I18b1179d9008ed2d2b35c8ead2606b252cf17f48 --- media_codecs_performance_c2.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 2f6645fc..fb148bc0 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -172,10 +172,10 @@ - - - - + + + + From 326c63126df4ae22357b10a052767516f05191d5 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Thu, 25 Jan 2024 15:19:12 -0500 Subject: [PATCH 33/59] zuma: Remove sysprop forcing renderengine to skiaglthreaded This is already the default, so no need to set via sysprop. Moving forward, we will set this using flags, unless a particular category of device needs to override the flag. Bug: 293371537 Test: NA Change-Id: I11b498c08e9faba578e71ceada585e682d9e86e8 --- device.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/device.mk b/device.mk index b47c807e..bccad9e1 100644 --- a/device.mk +++ b/device.mk @@ -293,8 +293,7 @@ PRODUCT_VENDOR_PROPERTIES += \ PRODUCT_VENDOR_PROPERTIES += \ ro.opengles.version=196610 \ - graphics.gpu.profiler.support=true \ - debug.renderengine.backend=skiaglthreaded \ + graphics.gpu.profiler.support=true # b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1 From ab48b5502ce6a48d13a76442cfc68f066f6e5be7 Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Thu, 25 Jan 2024 21:35:37 +0000 Subject: [PATCH 34/59] Revert "dumpstate: Search the path of TCPM psy uevent" Revert submission 25915320-320613177 Reason for revert: Droidfood blocking bug: 322294676 Reverted changes: /q/submissionid:25915320-320613177 Change-Id: I5f56d9f97d173b9971e96959b56e39207b901ac7 --- dumpstate/dump_power.cpp | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index fe604c8a..a79921b1 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -152,26 +152,6 @@ void dumpAcpmStats() { readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); } -void dumpTcpmPsyUevent() { - const char* tcpmPsy = "tcpm-source-psy-"; - DIR *dir = opendir("/sys/class/power_supply/"); - struct dirent *entry; - - if (dir == NULL) - return; - - while ((entry = readdir(dir)) != NULL) { - if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) { - std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name + - "/uevent"); - dumpFileContent("Power supply property tcpm", fullPath.c_str()); - break; - } - } - - closedir(dir); -} - void dumpPowerSupplyStats() { const char* dumpList[][2] = { {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, @@ -182,6 +162,7 @@ void dumpPowerSupplyStats() { {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, + {"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, }; @@ -189,8 +170,6 @@ void dumpPowerSupplyStats() { for (const auto &row : dumpList) { dumpFileContent(row[0], row[1]); } - - dumpTcpmPsyUevent(); } void dumpMaxFg() { From 66b1565ce2d7fd78b94f7bde988f58e27b64639a Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Thu, 25 Jan 2024 21:35:37 +0000 Subject: [PATCH 35/59] Revert "dumpstate: Search the path of TCPM psy uevent" Revert submission 25915320-320613177 Reason for revert: Droidfood blocking bug: 322294676 Reverted changes: /q/submissionid:25915320-320613177 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ab48b5502ce6a48d13a76442cfc68f066f6e5be7) Merged-In: I5f56d9f97d173b9971e96959b56e39207b901ac7 Change-Id: I5f56d9f97d173b9971e96959b56e39207b901ac7 --- dumpstate/dump_power.cpp | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index 562dc7cc..e6ee5799 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -152,26 +152,6 @@ void dumpAcpmStats() { readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); } -void dumpTcpmPsyUevent() { - const char* tcpmPsy = "tcpm-source-psy-"; - DIR *dir = opendir("/sys/class/power_supply/"); - struct dirent *entry; - - if (dir == NULL) - return; - - while ((entry = readdir(dir)) != NULL) { - if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) { - std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name + - "/uevent"); - dumpFileContent("Power supply property tcpm", fullPath.c_str()); - break; - } - } - - closedir(dir); -} - void dumpPowerSupplyStats() { const char* dumpList[][2] = { {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, @@ -182,6 +162,7 @@ void dumpPowerSupplyStats() { {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, + {"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, }; @@ -189,8 +170,6 @@ void dumpPowerSupplyStats() { for (const auto &row : dumpList) { dumpFileContent(row[0], row[1]); } - - dumpTcpmPsyUevent(); } void dumpMaxFg() { From 9bbe072585bc64cc53e3e320fd0bbdb7f1f1fbbe Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Thu, 25 Jan 2024 21:35:37 +0000 Subject: [PATCH 36/59] Revert "dumpstate: Search the path of TCPM psy uevent" Revert submission 25915320-320613177 Reason for revert: Droidfood blocking bug: 322294676 Reverted changes: /q/submissionid:25915320-320613177 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ab48b5502ce6a48d13a76442cfc68f066f6e5be7) Merged-In: I5f56d9f97d173b9971e96959b56e39207b901ac7 Change-Id: I5f56d9f97d173b9971e96959b56e39207b901ac7 --- dumpstate/dump_power.cpp | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index 562dc7cc..e6ee5799 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -152,26 +152,6 @@ void dumpAcpmStats() { readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); } -void dumpTcpmPsyUevent() { - const char* tcpmPsy = "tcpm-source-psy-"; - DIR *dir = opendir("/sys/class/power_supply/"); - struct dirent *entry; - - if (dir == NULL) - return; - - while ((entry = readdir(dir)) != NULL) { - if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) { - std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name + - "/uevent"); - dumpFileContent("Power supply property tcpm", fullPath.c_str()); - break; - } - } - - closedir(dir); -} - void dumpPowerSupplyStats() { const char* dumpList[][2] = { {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, @@ -182,6 +162,7 @@ void dumpPowerSupplyStats() { {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, + {"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, }; @@ -189,8 +170,6 @@ void dumpPowerSupplyStats() { for (const auto &row : dumpList) { dumpFileContent(row[0], row[1]); } - - dumpTcpmPsyUevent(); } void dumpMaxFg() { From 258eac3e55fdbb8e7f1618431068ea0b0672826b Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Fri, 26 Jan 2024 17:05:30 +0800 Subject: [PATCH 37/59] Reapply "dumpstate: Search the path of TCPM psy uevent" This reverts commit ab48b5502ce6a48d13a76442cfc68f066f6e5be7. Bug: 320613177 Bug: 322294676 Change-Id: I54ec2d5bb3bcce168607cedc2f6ce608c6dde9ef Signed-off-by: Kyle Tso --- dumpstate/dump_power.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index e6ee5799..562dc7cc 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -152,6 +152,26 @@ void dumpAcpmStats() { readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); } +void dumpTcpmPsyUevent() { + const char* tcpmPsy = "tcpm-source-psy-"; + DIR *dir = opendir("/sys/class/power_supply/"); + struct dirent *entry; + + if (dir == NULL) + return; + + while ((entry = readdir(dir)) != NULL) { + if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) { + std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name + + "/uevent"); + dumpFileContent("Power supply property tcpm", fullPath.c_str()); + break; + } + } + + closedir(dir); +} + void dumpPowerSupplyStats() { const char* dumpList[][2] = { {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, @@ -162,7 +182,6 @@ void dumpPowerSupplyStats() { {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, - {"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, }; @@ -170,6 +189,8 @@ void dumpPowerSupplyStats() { for (const auto &row : dumpList) { dumpFileContent(row[0], row[1]); } + + dumpTcpmPsyUevent(); } void dumpMaxFg() { From c230a8101ecd6d689c2bf2d143e9eff525566384 Mon Sep 17 00:00:00 2001 From: Joen Chen Date: Wed, 31 Jan 2024 14:40:01 +0000 Subject: [PATCH 38/59] zuma: enable dynamic color mode Enable dynamic color mode to reduce the power overhead of color space conversion when GPU composition exists. Bug: 315787778 Test: check "dumpsys SurfaceFlinger" and state of display color service when playing SDR/HDR video Change-Id: Ie9e87091385ab5247141bf956fbaba3275cc6811 --- device.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/device.mk b/device.mk index 5a2e3763..51967b42 100644 --- a/device.mk +++ b/device.mk @@ -709,10 +709,8 @@ 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 -# force to blend in P3 mode PRODUCT_PROPERTY_OVERRIDES += \ - persist.sys.sf.native_mode=2 \ - persist.sys.sf.color_mode=9 + persist.sys.sf.native_mode=2 PRODUCT_COPY_FILES += \ device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb \ device/google/zuma/display/display_colordata_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal2.pb From 023610f8695a37744b9d3e8c462410c3a9ba626c Mon Sep 17 00:00:00 2001 From: Petri Gynther Date: Wed, 31 Jan 2024 11:09:19 -0800 Subject: [PATCH 39/59] zuma: enable DisplayPort on -user images Bug: 319509617 Change-Id: I3d730f31502a8abe380f160ac394799ce44b30da --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 5a2e3763..92fb6be1 100644 --- a/device.mk +++ b/device.mk @@ -208,7 +208,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.usb.displayport.enabled=1 else PRODUCT_PROPERTY_OVERRIDES += \ - persist.vendor.usb.displayport.enabled=0 + persist.vendor.usb.displayport.enabled=1 endif USE_LASSEN_OEMHOOK := true From c249f683d0bfd4485e01953ce5151cdf5baeb0e5 Mon Sep 17 00:00:00 2001 From: PODISHETTY KUMAR Date: Mon, 5 Feb 2024 06:16:03 +0000 Subject: [PATCH 40/59] Revert "zuma: enable dynamic color mode" This reverts commit c230a8101ecd6d689c2bf2d143e9eff525566384. Reason for revert: Change-Id: I27666c2a0a04a1f93863360aa689a5aad740d0cc --- device.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 51967b42..5a2e3763 100644 --- a/device.mk +++ b/device.mk @@ -709,8 +709,10 @@ 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 +# force to blend in P3 mode PRODUCT_PROPERTY_OVERRIDES += \ - persist.sys.sf.native_mode=2 + persist.sys.sf.native_mode=2 \ + persist.sys.sf.color_mode=9 PRODUCT_COPY_FILES += \ device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb \ device/google/zuma/display/display_colordata_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal2.pb From d9ea492172ab12bb7c2ff27b915971d14d596540 Mon Sep 17 00:00:00 2001 From: PODISHETTY KUMAR Date: Mon, 5 Feb 2024 12:50:32 +0000 Subject: [PATCH 41/59] Revert^2 "zuma: enable dynamic color mode" This reverts commit c249f683d0bfd4485e01953ce5151cdf5baeb0e5. Reason for revert: Change-Id: Ifcaa4febc101676ecf4fb897e9cd32dbbc5913aa --- device.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/device.mk b/device.mk index 5a2e3763..51967b42 100644 --- a/device.mk +++ b/device.mk @@ -709,10 +709,8 @@ 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 -# force to blend in P3 mode PRODUCT_PROPERTY_OVERRIDES += \ - persist.sys.sf.native_mode=2 \ - persist.sys.sf.color_mode=9 + persist.sys.sf.native_mode=2 PRODUCT_COPY_FILES += \ device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb \ device/google/zuma/display/display_colordata_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal2.pb From e49c9e8ee64da583afa4e0cc61ad43c5fd94cf0b Mon Sep 17 00:00:00 2001 From: Richard Hsu Date: Fri, 2 Feb 2024 15:18:15 -0800 Subject: [PATCH 42/59] [Refactor] Include edgetpu targets in final image Make the EdgeTPU targets defined in /proprietary visible by product packages included in edgetpu.mk. Bug: 323601370 Tested: No functionality change. Edgetpu services still work. Change-Id: I29aa594df400d64f155f03e05094c72b8527c838 --- device.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/device.mk b/device.mk index 5a2e3763..8e8a95f2 100644 --- a/device.mk +++ b/device.mk @@ -1095,6 +1095,14 @@ PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true include device/google/gs-common/edgetpu/edgetpu.mk # Config variables for TPU chip on device. $(call soong_config_set,edgetpu_config,chip,rio) +# Include the edgetpu targets defined the namespaces below into the final image. +PRODUCT_SOONG_NAMESPACES += \ + vendor/google_devices/zuma/proprietary/gchips/tpu/metrics \ + vendor/google_devices/zuma/proprietary/gchips/tpu/tflite_delegate \ + vendor/google_devices/zuma/proprietary/gchips/tpu/darwinn_logging_service \ + vendor/google_devices/zuma/proprietary/gchips/tpu/nnapi_stable_aidl \ + vendor/google_devices/zuma/proprietary/gchips/tpu/aidl \ + vendor/google_devices/zuma/proprietary/gchips/tpu/hal # TPU firmware PRODUCT_PACKAGES += edgetpu-rio.fw From 6b2358ac80563345e9affa6da470f340394c319a Mon Sep 17 00:00:00 2001 From: Mark Chang Date: Wed, 31 Jan 2024 12:50:57 +0000 Subject: [PATCH 43/59] Move manifest entries to gs-common. Bug: 322914403 Bug: 323110919 Bug: 324214410 Test: build succeeds on all devices, failing tests pass. Change-Id: Ie5d66c7849dd4610b7c20d6849238effa6b4d164 Signed-off-by: Mark Chang --- device.mk | 1 + device_framework_matrix_product.xml | 24 ------------------------ manifest.xml | 24 ------------------------ 3 files changed, 1 insertion(+), 48 deletions(-) diff --git a/device.mk b/device.mk index fdf33fa8..79891f63 100644 --- a/device.mk +++ b/device.mk @@ -1185,6 +1185,7 @@ endif # Touch service include hardware/google/pixel/input/twoshay.mk +include device/google/gs-common/touch/twoshay/aidl_zuma.mk # Allow longer timeout for incident report generation in bugreport # Overriding in /product partition instead of /vendor intentionally, diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index a59ac59f..ba83dfa4 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -120,30 +120,6 @@ default - - com.google.input.algos.spd - 2 - - IScreenProtectorDetectorService - default - - - - com.google.input - 1-2 - - ITouchContextService - default - - - - com.google.input.algos.gril - 2 - - IGrilAntennaTuningService - default - - hardware.qorvo.uwb diff --git a/manifest.xml b/manifest.xml index a71c165d..69a1bcdd 100644 --- a/manifest.xml +++ b/manifest.xml @@ -12,28 +12,4 @@ android.hardware.boot IBootControl/default - - com.google.input.algos.spd - 2 - - IScreenProtectorDetectorService - default - - - - com.google.input - 2 - - ITouchContextService - default - - - - com.google.input.algos.gril - 2 - - IGrilAntennaTuningService - default - - From 514452495e136520420794872df0c8b8373ede35 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Wed, 7 Feb 2024 16:53:19 +0000 Subject: [PATCH 44/59] Add Youtube back in MRR Small Area Detection Allowlist Bug: 324132231 Test: Make Pixel builds to verify Allowlist Change-Id: I7688694c0628ae4f267a7492f35c2bcd86b2544a --- overlay/frameworks/base/core/res/res/values/config.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 0c741670..921b7522 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -304,6 +304,7 @@ com.zhiliaoapp.musically:0.07 com.bilibili.app.in:0.07 com.twitter.android:0.07 + com.google.android.youtube:0.07 From 2697a88c66e306798112d50a17a46afe2ff689f6 Mon Sep 17 00:00:00 2001 From: Juan Yescas Date: Wed, 7 Feb 2024 13:06:24 -0800 Subject: [PATCH 45/59] zuma: Set max supported page size to 65536 Set the max page size on zuma devices to 65536. Bug: 300367402 Test: readelf -Wl /system/bin/init Change-Id: Idec552d9db4468587bf98466187c8a907142dc8e --- device-common.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/device-common.mk b/device-common.mk index 1998d96d..f3e33959 100644 --- a/device-common.mk +++ b/device-common.mk @@ -44,9 +44,6 @@ 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 - # Trigger fsck on upgrade (305658663) PRODUCT_PRODUCT_PROPERTIES += \ ro.preventative_fsck = 1 From b5769ac1f146d3317ca22d56f828fc9d4e107917 Mon Sep 17 00:00:00 2001 From: Sergey Volk Date: Wed, 14 Feb 2024 00:57:52 +0000 Subject: [PATCH 46/59] Fix permissions for dp_hotplug_error_code sysfs node DisplayPort kernel driver passes error code/status to hardware composer via the dp_hotplug_error_code sysfs file. When HWC receives/consumes the error, it will write "0" into that file to reset the error code. So this file must be readable and writable by the HWC code running with "system" user/group permissions. Previously we used to set the ownership to system:system, but in order to be more consistent with the rest of sysfs files in that directory, we can use root:graphics instead with permissions 0664. HWC runs under the "graphics" group, so this should allow HWC write access. Bug: 324953626 Test: checked permissions of dp_hotplug_error_code sysfs Change-Id: Idf65acc12d158a78565c41f4e2aea24362e2cdff --- conf/init.zuma.rc | 2 -- usb/usb/android.hardware.usb-service.rc | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 9c42d3cb..b6e622e5 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -681,8 +681,6 @@ on fs chown system system /sys/class/dqe0/atc/gain_limit chown system system /sys/class/dqe0/atc/lt_calc_ab_shift - chown system system /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code - chown system system /sys/devices/platform/19470000.drmdecon/early_wakeup chmod 0660 /sys/devices/platform/19470000.drmdecon/early_wakeup diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc index e710451e..9d10bb37 100644 --- a/usb/usb/android.hardware.usb-service.rc +++ b/usb/usb/android.hardware.usb-service.rc @@ -16,6 +16,7 @@ on post-fs chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout + chown root graphics /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code 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 @@ -40,6 +41,7 @@ on post-fs chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout + chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code 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 From 26a8491cd483ea6358724543708b747acbbb2c2f Mon Sep 17 00:00:00 2001 From: Juan Yescas Date: Wed, 14 Feb 2024 17:26:55 +0000 Subject: [PATCH 47/59] Revert "zuma: Set max supported page size to 65536" This reverts commit 2697a88c66e306798112d50a17a46afe2ff689f6. Reason for revert: b/324952273 Change-Id: I1535c2de7d9769bbad5829331092f365193fd40b --- device-common.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device-common.mk b/device-common.mk index f3e33959..1998d96d 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 + # Trigger fsck on upgrade (305658663) PRODUCT_PRODUCT_PROPERTIES += \ ro.preventative_fsck = 1 From 6f86f154f78d74008df4cb081d47c0cccdf099f2 Mon Sep 17 00:00:00 2001 From: Daniel Okazaki Date: Thu, 15 Feb 2024 23:05:05 +0000 Subject: [PATCH 48/59] dumpstate: moving charger nodes to user build Bug: 323415060 Test: adb bugreport Change-Id: Ic40a2a19e9f94ee294d27ac1164d6d192e111660 Signed-off-by: Daniel Okazaki --- dumpstate/dump_power.cpp | 66 ++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index 562dc7cc..5af853fc 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -439,24 +439,49 @@ void printValuesOfDirectory(const char *directory, std::string debugfs, const ch files.clear(); } +void dumpChg() { + const std::string pmic_bus = "/sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0066"; + const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump"; + const std::string chg_name_cmd = "/sys/class/power_supply/main-charger/device/name"; + const std::string pmic_name_cmd = pmic_bus + "/name"; + const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump"; + const std::string reg_dump_str = " registers dump"; + const char* chgConfig [][2] { + {"DC_registers dump", "/sys/class/power_supply/dc-mains/device/registers_dump"}, + }; + std::string chg_name; + std::string pmic_name; + + printf("\n"); + + int ret = android::base::ReadFileToString(chg_name_cmd, &chg_name); + if (ret && !chg_name.empty()) { + chg_name.erase(chg_name.length() - 1); // remove new line + const std::string chg_reg_dump_title = chg_name + reg_dump_str; + + /* CHG reg dump */ + dumpFileContent(chg_reg_dump_title.c_str(), chg_reg_dump_file); + } + + ret = android::base::ReadFileToString(pmic_name_cmd, &pmic_name); + if (ret && !pmic_name.empty()) { + pmic_name.erase(pmic_name.length() - 1); // remove new line + const std::string pmic_reg_dump_title = pmic_name + reg_dump_str; + + /* PMIC reg dump */ + dumpFileContent(pmic_reg_dump_title.c_str(), pmic_reg_dump_file.c_str()); + } + + for (auto &config : chgConfig) { + dumpFileContent(config[0], config[1]); + } +} + void dumpChgUserDebug() { - const char *chgDebugMax77759 [][2] { - {"max77759_chg registers dump", "/d/max77759_chg/registers"}, - {"max77729_pmic registers dump", "/d/max77729_pmic/registers"}, - }; - const char *chgDebugMax77779 [][2] { - {"max77779_chg registers dump", "/d/max77779_chg/registers"}, - {"max77779_pmic registers dump", "/d/max77779_pmic/registers"}, - }; - const std::string debugfs = "/d/"; - const char *maxFgDir = "/d/maxfg"; const char *maxFgStrMatch = "maxfg"; const char *maxFg77779StrMatch = "max77779fg"; - const char *baseChgDir = "/d/max77759_chg"; - const char *dcRegName = "DC_registers dump"; - const char *dcRegDir = "/sys/class/power_supply/dc-mains/device/registers_dump"; const char *chgTblName = "Charging table dump"; const char *chgTblDir = "/d/google_battery/chg_raw_profile"; @@ -479,20 +504,6 @@ void dumpChgUserDebug() { if (isUserBuild()) return; - if (isValidFile(dcRegDir)) { - dumpFileContent(dcRegName, dcRegDir); - } - - if (isValidDir(baseChgDir)) { - for (auto &row : chgDebugMax77759) { - dumpFileContent(row[0], row[1]); - } - } else { - for (auto &row : chgDebugMax77779) { - dumpFileContent(row[0], row[1]); - } - } - dumpFileContent(chgTblName, chgTblDir); if (isValidDir(maxFgDir)) { @@ -944,6 +955,7 @@ int main() { dumpLn8411(); dumpBatteryHealth(); dumpBatteryDefend(); + dumpChg(); dumpChgUserDebug(); dumpBatteryEeprom(); dumpChargerStats(); From 5375e70d9681c82c5cc090627bcfa63f9d23f19c Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Tue, 20 Feb 2024 14:37:30 +0000 Subject: [PATCH 49/59] Enable Secretkeeper HAL service on zuma The prebuilts on `main` for zuma devices have been updated to include: - the Secretkeeper TA in Trusty - the ABL changes to retrieve the Secretkeeper identity pub key. So enable the corresponding HAL service for Secretkeeper when the relevant build flag is enabled. Bug: 291228655 Bug: 306364873 Test: VtsSecretkeeperTargetTest on shiba Change-Id: Ida12d0742c1e74e15e0f5606ab19cdb90afbcb2b --- device.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index e3818ced..2213ebc1 100644 --- a/device.mk +++ b/device.mk @@ -89,6 +89,11 @@ LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4 # Set the environment variable to switch the Keymint HAL service to Rust TRUSTY_KEYMINT_IMPL := rust +ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true) + # Set the environment variable to enable the Secretkeeper HAL service. + SECRETKEEPER_ENABLED := true +endif + # OEM Unlock reporting PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.oem_unlock_supported=1 @@ -833,7 +838,7 @@ PRODUCT_SOONG_NAMESPACES += \ vendor/google/trusty/common PRODUCT_PACKAGES += \ - trusty_metricsd + trusty_metricsd $(call soong_config_set,google_displaycolor,displaycolor_platform,zuma) PRODUCT_PACKAGES += \ From 32305100e247d73e12cecccece17481aa8cda462 Mon Sep 17 00:00:00 2001 From: Hongyang Jiao Date: Fri, 23 Feb 2024 19:36:45 +0000 Subject: [PATCH 50/59] Add betterbug mk to zuma Bug: 322543833 Test: local test, recorded in http://shortn/_iEz9DTCHgo Change-Id: Idd83168e4e4bea43ec88afbc0823a76e879e9674 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index fdf33fa8..4c1b246a 100644 --- a/device.mk +++ b/device.mk @@ -42,6 +42,7 @@ 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/gs-common/bootctrl/bootctrl_aidl.mk +include device/google/gs-common/betterbug/betterbug.mk include device/google/zuma/dumpstate/item.mk From 1433ffe9e2b094325e7fe32f87892d5a20c62667 Mon Sep 17 00:00:00 2001 From: Gaurav Sarode Date: Fri, 23 Feb 2024 16:02:29 -0800 Subject: [PATCH 51/59] Fix properties to enable override bug: 326659788 Test: Local build Change-Id: I7a4d2444b83753dd3f1197b02d6003a99a526d81 --- device.mk | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/device.mk b/device.mk index e3818ced..d8384c51 100644 --- a/device.mk +++ b/device.mk @@ -175,26 +175,26 @@ PRODUCT_PRODUCT_PROPERTIES += \ # Set supported Bluetooth profiles to enabled PRODUCT_PRODUCT_PROPERTIES += \ - bluetooth.profile.asha.central.enabled=true \ - bluetooth.profile.a2dp.source.enabled=true \ - bluetooth.profile.avrcp.target.enabled=true \ - bluetooth.profile.bap.unicast.server.enabled=true \ - bluetooth.profile.bas.client.enabled=true \ - bluetooth.profile.csip.set_coordinator.enabled=true \ - bluetooth.profile.gatt.enabled=true \ - bluetooth.profile.hap.client.enabled=true \ - bluetooth.profile.hfp.ag.enabled=true \ - bluetooth.profile.hid.device.enabled=true \ - bluetooth.profile.hid.host.enabled=true \ - bluetooth.profile.map.server.enabled=true \ - bluetooth.profile.mcp.server.enabled=true \ - bluetooth.profile.opp.enabled=true \ - bluetooth.profile.pan.nap.enabled=true \ - bluetooth.profile.pan.panu.enabled=true \ - bluetooth.profile.pbap.server.enabled=true \ - bluetooth.profile.sap.server.enabled=true \ - bluetooth.profile.tbs.server.enabled=true \ - bluetooth.profile.vc.server.enabled=true + bluetooth.profile.asha.central.enabled?=true \ + bluetooth.profile.a2dp.source.enabled?=true \ + bluetooth.profile.avrcp.target.enabled?=true \ + bluetooth.profile.bap.unicast.server.enabled?=true \ + bluetooth.profile.bas.client.enabled?=true \ + bluetooth.profile.csip.set_coordinator.enabled?=true \ + bluetooth.profile.gatt.enabled?=true \ + bluetooth.profile.hap.client.enabled?=true \ + bluetooth.profile.hfp.ag.enabled?=true \ + bluetooth.profile.hid.device.enabled?=true \ + bluetooth.profile.hid.host.enabled?=true \ + bluetooth.profile.map.server.enabled?=true \ + bluetooth.profile.mcp.server.enabled?=true \ + bluetooth.profile.opp.enabled?=true \ + bluetooth.profile.pan.nap.enabled?=true \ + bluetooth.profile.pan.panu.enabled?=true \ + bluetooth.profile.pbap.server.enabled?=true \ + bluetooth.profile.sap.server.enabled?=true \ + bluetooth.profile.tbs.server.enabled?=true \ + bluetooth.profile.vc.server.enabled?=true # Carrier configuration default location PRODUCT_PROPERTY_OVERRIDES += \ From 553b0f5504265a046c62f28e6b4e5f4b78734a00 Mon Sep 17 00:00:00 2001 From: Chungro Lee Date: Fri, 16 Feb 2024 00:33:57 +0000 Subject: [PATCH 52/59] pixelstats: zuma: add Learning/Update/ModelLoad path Upload more FG data to analyze its trends Bug: 317827237 Change-Id: Id6cff09063ece9c08647f01dfd92bbe2e8e29580 Signed-off-by: Chungro Lee --- pixelstats/pixelstats-vendor.zuma.rc | 2 ++ pixelstats/service.cpp | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pixelstats/pixelstats-vendor.zuma.rc b/pixelstats/pixelstats-vendor.zuma.rc index 70d875ea..6f6da84d 100644 --- a/pixelstats/pixelstats-vendor.zuma.rc +++ b/pixelstats/pixelstats-vendor.zuma.rc @@ -1,4 +1,6 @@ on property:sys.boot_completed=1 + chown system system /sys/class/power_supply/maxfg_base/fg_learning_events + chown system system /sys/class/power_supply/maxfg/fg_learning_events start vendor.pixelstats_vendor on post-fs-data chown system system /sys/kernel/metrics/irq/stats_reset diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index b58bf67b..d764db58 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -122,7 +122,17 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { const struct UeventListener::UeventPaths ueventPaths = { .AudioUevent = "/devices/virtual/amcs/amcs", - .TypeCPartnerUevent = "PRODUCT_TYPE="}; + .TypeCPartnerUevent = "PRODUCT_TYPE=", + .FGLearningPath = { + "/sys/class/power_supply/maxfg/fg_learning_events", + "/sys/class/power_supply/maxfg_base/fg_learning_events" + }, + .FwUpdatePath = "", + .FGModelLoadingPath = { + "/sys/class/power_supply/maxfg/m5_model_state", + "/sys/class/power_supply/maxfg_base/m5_model_state" + } +}; int main() { LOG(INFO) << "starting PixelStats"; From 79baa6c871d1972fa21867d778600d3600350134 Mon Sep 17 00:00:00 2001 From: Mark Chang Date: Mon, 19 Feb 2024 05:58:23 +0000 Subject: [PATCH 53/59] Add sepolicy include to zuma. Bug: 325422902 Test: Manual, system booted without sepolicy denied error. Change-Id: Ife2291ac6e510321217038cdd360603a0f3e3c57 Signed-off-by: Mark Chang --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index e3818ced..c1671f92 100644 --- a/device.mk +++ b/device.mk @@ -1192,8 +1192,8 @@ include device/google/gs-common/pixel_ril/ril.mk endif # Touch service -include hardware/google/pixel/input/twoshay.mk include device/google/gs-common/touch/twoshay/aidl_zuma.mk +include device/google/gs-common/touch/twoshay/twoshay.mk # Allow longer timeout for incident report generation in bugreport # Overriding in /product partition instead of /vendor intentionally, From 7cb45f297897659beaf7826a1636cedafd7113c6 Mon Sep 17 00:00:00 2001 From: Rakesh Raghava Date: Thu, 22 Feb 2024 04:00:23 +0000 Subject: [PATCH 54/59] Removed ImsMedia from zuma - PixelImsMedia is used in zuma, so aosp ImsMedia is removed Bug: 325148061 Test: mm Change-Id: Ifcb93dfa9f06c08d34a7816c2a001f7115fc3baa --- device.mk | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/device.mk b/device.mk index e3818ced..94dee0ed 100644 --- a/device.mk +++ b/device.mk @@ -910,21 +910,6 @@ PRODUCT_PACKAGES += ShannonIms PRODUCT_PACKAGES += ShannonRcs -ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) -#ImsMediaAoc library -FEATURE_TYPE := oem_audio -SOONG_CONFIG_NAMESPACES += audio_lib -SOONG_CONFIG_audio_lib += \ - audio_type - -SOONG_CONFIG_audio_lib_audio_type := $(FEATURE_TYPE) -endif - -# ImsMedia -PRODUCT_PACKAGES += \ - ImsMediaService \ - libimsmedia - # Exynos RIL and telephony # Multi SIM(DSDS) SIM_COUNT := 2 From 009c900677871388b7f2fcc3ba8d76800692313f Mon Sep 17 00:00:00 2001 From: Liana Kazanova Date: Tue, 27 Feb 2024 21:11:56 +0000 Subject: [PATCH 55/59] Revert "Add sepolicy include to zuma." Revert submission 26288713-twoshay-sepolicy-24 Reason for revert: DroidMonitor: Potential culprit for b/327235315 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Bug:327235315 Reverted changes: /q/submissionid:26288713-twoshay-sepolicy-24 Change-Id: I71fa628c86d239b53fdd80a7b124daf7b66e2ca0 --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index c1671f92..e3818ced 100644 --- a/device.mk +++ b/device.mk @@ -1192,8 +1192,8 @@ include device/google/gs-common/pixel_ril/ril.mk endif # Touch service +include hardware/google/pixel/input/twoshay.mk include device/google/gs-common/touch/twoshay/aidl_zuma.mk -include device/google/gs-common/touch/twoshay/twoshay.mk # Allow longer timeout for incident report generation in bugreport # Overriding in /product partition instead of /vendor intentionally, From 45b0145f0cf0b663b5d3599cc6c6e687d1e52ec4 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Wed, 21 Feb 2024 20:13:55 +0800 Subject: [PATCH 56/59] pixelstats: added multiple GMSR paths support different project paths Bug: 308364170 Change-Id: Ifd5f1b609c0bf5fa98677f9880bfa29496add95d Signed-off-by: Jenny Ho --- pixelstats/service.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index d764db58..bb64ea62 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -101,7 +101,10 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .OffloadEffectsIdPath = "/sys/devices/platform/audiometrics/offload_effects_id", .OffloadEffectsDurationPath = "/sys/devices/platform/audiometrics/offload_effects_duration", .BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage", - .GMSRPath = "/sys/class/power_supply/maxfg/gmsr", + .GMSRPath = { + "/sys/class/power_supply/maxfg/gmsr", + "/sys/class/power_supply/maxfg_base/gmsr", + }, .DisplayPortStatsPaths = { "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_negotiation_failures", "/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_read_failures", From 07f89b88fc2b6c0c88652bcfd02a5cc15d39d5cf Mon Sep 17 00:00:00 2001 From: Shashwat Razdan Date: Tue, 5 Mar 2024 23:46:52 -0800 Subject: [PATCH 57/59] Adding android.software.contextualsearch to zuma devices. Bug: 326143814 Test: Built and tested on device (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3ceb5170ce03587387eaf794a4ee5d0c68540664) Merged-In: I4ee1ecd9e292d6e1807ba1f77851e53380db0a07 Change-Id: I4ee1ecd9e292d6e1807ba1f77851e53380db0a07 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 72a74752..0a3ef25b 100644 --- a/device.mk +++ b/device.mk @@ -287,6 +287,7 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ + frameworks/native/data/etc/android.software.contextualsearch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.contextualsearch.xml \ frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml From 1e0c02c5ded132b4a1477a60e0ee0d9c2d088bdc Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Tue, 5 Mar 2024 00:55:40 +0000 Subject: [PATCH 58/59] Revert "Add betterbug mk to zuma" Revert submission 26348985-bb-sepolicy-poc Reason for revert: Droidfood blocking bug: b/327991669 Bug: b/327991669 Reverted changes: /q/submissionid:26348985-bb-sepolicy-poc (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:fe980182cc8f21d7af154271d58aff971f72132c) Merged-In: I83de6f389e4ce5113afd751871e0e10e67fb0b4f Change-Id: I83de6f389e4ce5113afd751871e0e10e67fb0b4f --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index 0a3ef25b..50b872e5 100644 --- a/device.mk +++ b/device.mk @@ -42,7 +42,6 @@ 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/gs-common/bootctrl/bootctrl_aidl.mk -include device/google/gs-common/betterbug/betterbug.mk include device/google/zuma/dumpstate/item.mk From 956405c6c0f79e1c228bc348c342020d288f84e3 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Fri, 22 Mar 2024 21:33:35 +0800 Subject: [PATCH 59/59] Update health AIDL HAL to V3 Bug: 328327545 Test: TH Test: vts-tradefed run vts -m vts_treble_vintf_vendor_test Signed-off-by: Jack Wu (cherry picked from https://android-review.googlesource.com/q/commit:40f89b2d464071389d395f39928ef0e6d99bf2fb) Merged-In: I7582ba278abcb30cebe041f775efe45633a58bad Change-Id: I7582ba278abcb30cebe041f775efe45633a58bad --- health/android.hardware.health-service.zuma.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/health/android.hardware.health-service.zuma.xml b/health/android.hardware.health-service.zuma.xml index 1fe9b8d2..2acaabac 100644 --- a/health/android.hardware.health-service.zuma.xml +++ b/health/android.hardware.health-service.zuma.xml @@ -1,7 +1,7 @@ android.hardware.health - 2 + 3 IHealth/default