From 414213dd66e8b75bcc8b1f1858bac4e63bac6dd6 Mon Sep 17 00:00:00 2001 From: kierancyphus Date: Tue, 28 Nov 2023 14:28:30 +0800 Subject: [PATCH 01/33] 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: I12751f1d037ee9de477285a56bc411f9c6085752 --- 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 0533fb62..a77e5b36 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -144,6 +144,7 @@ com.google.pixel.modem.logmasklibrary + 1 ILiboemserviceProxy default From 7766f6743ce009460b4441657eebc45e7d0bce62 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Mon, 18 Dec 2023 15:37:49 +0800 Subject: [PATCH 02/33] Adjust bd_state to system for read Bug: 316432531 Change-Id: I07aa6aa400acc7db718e0201e61fa6a4f8e4eebb Signed-off-by: Jenny Ho --- conf/init.gs101.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index 13a01b27..c0754502 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -323,6 +323,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 eb637fe0363090c242853fe49c4d6194d641b0a5 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Wed, 20 Dec 2023 09:34:57 -0800 Subject: [PATCH 03/33] Migrate to gs-common/storage/init.storage.rc Bug: 311655524 Change-Id: I084717957a3bdf0bcbdca06502867d8e108ac139 Signed-off-by: Jaegeuk Kim --- conf/init.gs101.rc | 52 ---------------------------------------------- 1 file changed, 52 deletions(-) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index c0754502..79ca1939 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -16,12 +16,8 @@ on init write /proc/vendor_sched/teo_util_threshold "1024 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 @@ -101,15 +97,6 @@ on init chmod 0220 /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-3-0 # ZRAM setup @@ -501,15 +488,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 - on boot # Allow to access debugfs for system:system @@ -697,20 +675,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 64 - write /sys/block/sda/queue/iostats 1 - 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 - # Enable ZRAM on boot_complete swapon_all /vendor/etc/fstab.${ro.board.platform} write /proc/sys/vm/swappiness 60 @@ -722,9 +686,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 - # Reset DDR frequency write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1 @@ -975,16 +936,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 64 - 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 /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1 @@ -1004,10 +955,7 @@ on property:vendor.disable.bcl.control=1 on property:vendor.disable.bcl.control=0 write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1 -# 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 # Disable dock-defend in Off Mode Charger write /sys/devices/platform/google,charger/dd_state -1 From 39980e78f423c8ce720b2ec2a7719481795ffdaf Mon Sep 17 00:00:00 2001 From: Isaac Chiou Date: Thu, 21 Dec 2023 17:06:21 +0800 Subject: [PATCH 04/33] wifi: Enable fast scan Enable fast scan and set the channel cache number to 10 Bug: 317012208 Test: Manual Change-Id: I38777051ba14d13e1e83396309b36c84589de618 --- rro_overlays/WifiOverlay/res/values/config.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml index 7a58d7d4..454d7f89 100644 --- a/rro_overlays/WifiOverlay/res/values/config.xml +++ b/rro_overlays/WifiOverlay/res/values/config.xml @@ -159,4 +159,12 @@ regulatory approval (for example, FCC pre-approval is required according to "594280 D01 Software Configuration Control v02r01").--> true + + + true + + + 3 + From 350dc9f41a19ee5b506d135dc9a60a1f51800ab7 Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Wed, 20 Dec 2023 21:34:37 +0000 Subject: [PATCH 05/33] 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 1376a71a65706013d62dbff9b8f254c3e65088e1 Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Tue, 26 Dec 2023 20:45:34 +0000 Subject: [PATCH 06/33] 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 2bbde5e0ce88ff0b5f77eb5f1669c29d6780200d Mon Sep 17 00:00:00 2001 From: Limon Mia Date: Tue, 19 Dec 2023 05:05:06 +0000 Subject: [PATCH 07/33] Packed vendor log to bugreport for P21 and B3 Bug: 316071157 Test: enable vendor log and take bugreport Flag: . Change-Id: I748d2c2bd260b4fcd71f7bb78fe12e43e903555d --- device.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device.mk b/device.mk index fe6fbbed..555b012a 100644 --- a/device.mk +++ b/device.mk @@ -36,6 +36,9 @@ 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 +ifneq ($(filter oriole raven bluejay, $(TARGET_PRODUCT)),) + include device/google/gs-common/bcmbt/dump/dumplog.mk +endif TARGET_BOARD_PLATFORM := gs101 DEVICE_IS_64BIT_ONLY ?= $(if $(filter %_64,$(TARGET_PRODUCT)),true,false) From d662abbfbcbe72b0a55c966905b9c2476790f613 Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Thu, 14 Dec 2023 18:21:07 +0000 Subject: [PATCH 08/33] gs101: uses Codec2 HIDL 1.2 service - Include mediacodec_samsung setting from gs-common - Enable Codec2 HIDL 1.2 from BoardConfig and update manifest hidl version for samsung.hardware.media.c2 Bug: 318793681 Test: run cts -m CtsMediaDecoderTestCases Test: run cts -m CtsMediaPlayerTestCases Test: run vts -m vts_treble_vintf_vendor_test Change-Id: I5679bee76ca0ff7f430797ed261069e0f7fc3937 --- BoardConfig-common.mk | 1 + device.mk | 24 ++++-------------------- manifest_media.xml | 10 +++++++++- manifest_media_aosp.xml | 2 +- 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index d94a6190..6fd0c2a7 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -163,6 +163,7 @@ TARGET_COPY_OUT_SYSTEM_EXT := system_ext # Video Codec ######################## # 1. Exynos C2 +BOARD_USE_CODEC2_HIDL_1_2 := true BOARD_USE_CSC_FILTER := false BOARD_USE_DEC_SW_CSC := true BOARD_USE_ENC_SW_CSC := true diff --git a/device.mk b/device.mk index 555b012a..efc2b0d4 100644 --- a/device.mk +++ b/device.mk @@ -730,30 +730,14 @@ endif $(call soong_config_set,bigo,soc,gs101) # 1. Codec 2.0 -# exynos service -PRODUCT_SOONG_NAMESPACES += vendor/samsung_slsi/codec2 +# for settings used by different C2 hal +include device/google/gs-common/mediacodec/common/mediacodec_common.mk +# for Exynos C2 Hal +include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk PRODUCT_COPY_FILES += \ device/google/gs101/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \ -PRODUCT_PACKAGES += \ - samsung.hardware.media.c2@1.0-service \ - codec2.vendor.base.policy \ - codec2.vendor.ext.policy \ - libExynosC2ComponentStore \ - libExynosC2H264Dec \ - libExynosC2H264Enc \ - libExynosC2HevcDec \ - libExynosC2HevcEnc \ - libExynosC2Mpeg4Dec \ - libExynosC2Mpeg4Enc \ - libExynosC2H263Dec \ - libExynosC2H263Enc \ - libExynosC2Vp8Dec \ - libExynosC2Vp8Enc \ - libExynosC2Vp9Dec \ - libExynosC2Vp9Enc - PRODUCT_PROPERTY_OVERRIDES += \ debug.stagefright.c2-poolmask=458752 \ debug.c2.use_dmabufheaps=1 \ diff --git a/manifest_media.xml b/manifest_media.xml index 3ed9e247..38e56ba2 100644 --- a/manifest_media.xml +++ b/manifest_media.xml @@ -5,8 +5,16 @@ 1.0 IComponentStore - default default1 + + android.hardware.media.c2 + hwbinder + 1.2 + + IComponentStore + default + + diff --git a/manifest_media_aosp.xml b/manifest_media_aosp.xml index 3bc347c9..9a1a3dba 100644 --- a/manifest_media_aosp.xml +++ b/manifest_media_aosp.xml @@ -2,7 +2,7 @@ android.hardware.media.c2 hwbinder - 1.0 + 1.2 IComponentStore default From 291642b702d01d672fab04e99e26cc41b1fa86e3 Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Thu, 4 Jan 2024 01:15:16 +0000 Subject: [PATCH 09/33] 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 (cherry picked from commit 9164eae7cdee032381d8bf045fbbed33f62b00bf) --- 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 a898b053..b8c5c8ea 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -564,6 +564,11 @@ Usb::Usb() ALOGE("pthread_condattr_destroy 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 9903962c7901fbb5946e9d515f75219ef93f51ff Mon Sep 17 00:00:00 2001 From: Devika Krishnadas Date: Tue, 9 Jan 2024 23:23:10 +0000 Subject: [PATCH 10/33] Revert^3 "Use graphics allocator 2" 0a894f5d0d4f21ae88a0ecc69925b6d79318066a Reverting to comply with the Allocator VTS for 24Q1, do not merge to main. Bug: 310046460 Test: VtsHalGraphicsAllocatorAidl_TargetTest Change-Id: I57a9dc98122f312ad98dacbab343d7eb98700cec --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index efc2b0d4..767f7b7b 100644 --- a/device.mk +++ b/device.mk @@ -514,7 +514,7 @@ PRODUCT_PACKAGES += \ # for now include gralloc here. should come from hardware/google_devices/exynos5 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 0b113f5208f76f633cb8800ca1930091e9653d14 Mon Sep 17 00:00:00 2001 From: Mahesh Kallelil Date: Thu, 11 Jan 2024 09:45:41 -0800 Subject: [PATCH 11/33] Set owner as system for logbuffer_cpif Setting the owner of /dev/logbuffer_cpif as system to allow the dump_modem script to read the logs as part of bugreport Test: Tested bugreport on device Bug: 305600375 Change-Id: I20c1a843edadbc4ed2da51af3e242957b5849d6b Signed-off-by: Mahesh Kallelil --- conf/init.gs101.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index 79ca1939..e22dfe6f 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -234,6 +234,7 @@ on init chown system system /dev/logbuffer_pca9468 chown system system /dev/logbuffer_cpm chown system system /dev/logbuffer_bd + chown system system /dev/logbuffer_cpif # Dump maxfg chown system system /sys/class/power_supply/maxfg/m5_model_state From cf5d0db6b76de95369885344320f696c5dd6db51 Mon Sep 17 00:00:00 2001 From: Utku Utkan Date: Fri, 12 Jan 2024 00:24:51 +0000 Subject: [PATCH 12/33] Pregrant ACCESS_FINE_LOCATION as default permission to PCS on G1 Bug: 309676824 Test: m && flashall + pair & connect to remote device Wi-Fi AP Change-Id: Iefda3dd96019aea2022339d180a702315e8951b8 --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index ff0094a2..fb5ed945 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -54,6 +54,8 @@ + + From 8133e314e8e3caa3be4410c0c2879f9c1d771281 Mon Sep 17 00:00:00 2001 From: Midas Chien Date: Wed, 17 Jan 2024 07:50:19 +0000 Subject: [PATCH 13/33] display: allow hwcomposer to access allow_wakeup_by_state_change Bug: 311495944 Test: check permission Change-Id: Ie7dc6cdbd2290272cbf8bab820739b234d7c0b3f --- conf/init.gs101.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index e22dfe6f..ab7c27ae 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -581,6 +581,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 aa5fcd6d371ef47c99b5a46a78e75d0b0ed0c273 Mon Sep 17 00:00:00 2001 From: Wayne Lin Date: Thu, 18 Jan 2024 15:07:38 +0800 Subject: [PATCH 14/33] gps: add new certificate Bug: 319329731 Test: confirm certificate is included Change-Id: Iafdbb7ad53da68c7f14fa94c1458f56016f70680 --- location/gps.cer | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/location/gps.cer b/location/gps.cer index 934e0c5c..eab842b3 100644 --- a/location/gps.cer +++ b/location/gps.cer @@ -159,3 +159,17 @@ Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ HInwg85pGm+sEkYbYFRBD0woPBsL3g== -----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- From ad7f854c3453dbfa61208b4920ea938028cc8c67 Mon Sep 17 00:00:00 2001 From: Spade Lee Date: Mon, 22 Jan 2024 16:52:23 +0000 Subject: [PATCH 15/33] dumpstate: add SoC residency dump Bug: 319536756 Change-Id: Ied43b9b5bd13a4b36d73399e4dd2fc389ecaa276 Signed-off-by: Spade Lee --- conf/init.gs101.rc | 1 + dumpstate/dump_gs101.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index ab7c27ae..a33829b0 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -286,6 +286,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_gs101.sh b/dumpstate/dump_gs101.sh index 43eaeaa1..fb9dae10 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -123,6 +123,8 @@ cat "/dev/logbuffer_pca9468" echo "\n------ Battery Health ------" cat "/sys/class/power_supply/battery/health_index_stats" +echo "\n------ Battery Health SoC Residency ------" +cat "/sys/class/power_supply/battery/swelling_data" echo "\n------ BMS ------" cat "/dev/logbuffer_ssoc" echo "\n------ TTF ------" From 4f72ae23ccbae9cf4be679cfcaef5b2c225c6148 Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Thu, 25 Jan 2024 09:24:24 +0000 Subject: [PATCH 16/33] gs101: 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: I73a3db45cb58a228ac68408468923101d79322b8 --- 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 fc03c53d..49f131f8 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -175,10 +175,10 @@ - - - - + + + + From d790cec56965464a9eb53ace6b047fdb92105c3f Mon Sep 17 00:00:00 2001 From: Robin Peng Date: Fri, 26 Jan 2024 12:50:28 +0000 Subject: [PATCH 17/33] Disable stripping vendor_dlkm modules Need to disable stripping the vendor_dlkm modules to retain the GKI modules' signature. Fortunately, the kernel build strips the modules for us. Bug: 290274601 Bug: 322457552 Change-Id: I4c8ff2196d062dc65a1f707a738f78bc8bfda704 Signed-off-by: Robin Peng --- BoardConfig-common.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index 6fd0c2a7..2fdbc7ff 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -348,6 +348,14 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist +# Since Pixel 6/6pro doesn't have a system_dlkm partition, the GKI modules are +# on the vendor_dlkm partition. In order to allow them to load properly, we +# need to retain the module signature which would normally get stripped during +# packaging. Disable stripping the vendor_dlkm modules to retain the GKI +# modules' signature. Note, the pixel kernel builds always strip the modules in +# favor of saving space via the kleaf property: strip_modules = True. +BOARD_DO_NOT_STRIP_VENDOR_MODULES := true + # Prebuilt kernel modules that are *not* listed in vendor_boot.modules.load BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES = fips140/fips140.ko BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k))) From 34f3ee5073cbe8d99533120e71e285e71c633b3d Mon Sep 17 00:00:00 2001 From: kierancyphus Date: Wed, 24 Jan 2024 15:23:17 +0800 Subject: [PATCH 18/33] liboemservice_proxy: Remove service defs `Liboemservice_proxy` was originally included as a part of the build target for DMD, which meant that the binder aidl declaration had to be done on all devices that used DMD (all Lassen devices), even if they didn't use the service. `Liboemservice_proxy` has now been decoupled from DMD so it only needs to be included on our target devices now. This CL removes the outdated service definitions. Test: Build gs101 and ensure it still builds. Bug: 321867236 Change-Id: Iefd8a4e563c41ffc5221810e3fb042dbe4a3e733 --- device_framework_matrix_product.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index a77e5b36..280c120f 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -142,14 +142,6 @@ sced0 - - com.google.pixel.modem.logmasklibrary - 1 - - ILiboemserviceProxy - default - - vendor.samsung_slsi.telephony.hardware.radioExternal 1.1 From 9f8d68108898e598a6b498b3c5e11f68215e06cb Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Mon, 29 Jan 2024 11:26:08 +0800 Subject: [PATCH 19/33] powerstats: expose display MRR state residency data provider Bug: 321848496 Test: vts-tradefed run vts -m VtsHalPowerStatsTargetTest Change-Id: I967210bef1d33d8bc344ea80e6c31f70a3414604 Signed-off-by: Darren Hsu --- powerstats/Gs101CommonDataProviders.cpp | 7 +++++++ powerstats/include/Gs101CommonDataProviders.h | 1 + 2 files changed, 8 insertions(+) diff --git a/powerstats/Gs101CommonDataProviders.cpp b/powerstats/Gs101CommonDataProviders.cpp index 035810b4..615bb164 100644 --- a/powerstats/Gs101CommonDataProviders.cpp +++ b/powerstats/Gs101CommonDataProviders.cpp @@ -18,6 +18,7 @@ #include #include "AocStateResidencyDataProvider.h" #include "DevfreqStateResidencyDataProvider.h" +#include #include "DvfsStateResidencyDataProvider.h" #include "UfsStateResidencyDataProvider.h" #include @@ -34,6 +35,7 @@ using aidl::android::hardware::power::stats::AocStateResidencyDataProvider; 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; @@ -669,6 +671,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/drm/card0/device/primary-panel/")); +} + void addGs101CommonDataProviders(std::shared_ptr p) { setEnergyMeter(p); diff --git a/powerstats/include/Gs101CommonDataProviders.h b/powerstats/include/Gs101CommonDataProviders.h index 98e69538..469d5143 100644 --- a/powerstats/include/Gs101CommonDataProviders.h +++ b/powerstats/include/Gs101CommonDataProviders.h @@ -22,4 +22,5 @@ using aidl::android::hardware::power::stats::PowerStats; void addGs101CommonDataProviders(std::shared_ptr p); +void addDisplayMrr(std::shared_ptr p); void addNFC(std::shared_ptr p, const std::string& path); From 1acd6a2870f357eb04fda3428e8efdd4aa127c09 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Thu, 25 Jan 2024 15:16:52 -0500 Subject: [PATCH 20/33] gs101: 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: Ifd34f14af1948b0d30d0583e4ed71d32680b5c99 --- device.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/device.mk b/device.mk index 767f7b7b..3537cee8 100644 --- a/device.mk +++ b/device.mk @@ -256,8 +256,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 69fc18eb88dc0f899075c6d1b00aa8397461bca8 Mon Sep 17 00:00:00 2001 From: Joen Chen Date: Wed, 31 Jan 2024 14:58:17 +0000 Subject: [PATCH 21/33] gs101: 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 3537cee8..32d2a61d 100644 --- a/device.mk +++ b/device.mk @@ -678,10 +678,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/gs101/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb From 06501969ec34cf2d4be0495323d97bac93200939 Mon Sep 17 00:00:00 2001 From: Jacky Liu Date: Fri, 2 Feb 2024 11:55:42 +0800 Subject: [PATCH 22/33] Update i2c device paths Update i2c device paths with static bus numbers. Also remove some redundant paths. Bug: 323447554 Test: Boot to home Change-Id: I90a723018f6628c825e97ff75a80350843684959 --- conf/ueventd.gs101.rc | 38 +++++++++++++++----------------------- dumpstate/dump_gs101.sh | 15 ++++----------- 2 files changed, 19 insertions(+), 34 deletions(-) diff --git a/conf/ueventd.gs101.rc b/conf/ueventd.gs101.rc index 3a8e39d0..4321e738 100644 --- a/conf/ueventd.gs101.rc +++ b/conf/ueventd.gs101.rc @@ -55,7 +55,6 @@ /dev/video55 0666 system graphics /dev/g2d 0660 system graphics /dev/fimg2d 0666 system graphics -/dev/i2c-2 0660 system system /dev/HPD 0660 system system # wfd @@ -221,31 +220,24 @@ /sys/devices/platform/11110000.usb/11110000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1/*/*/leds/* multi_intensity 0664 system system # Dump Battery EEPROM history for pixelstats -/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050 eeprom 0644 system system +/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050 eeprom 0644 system system /dev/battery_history 0644 system system # ODPM /sys/bus/iio/devices/iio:device* enabled_rails 0660 system system # USB -/sys/class/typec/port0 power_role 664 root system -/sys/class/typec/port0 data_role 664 root system -/sys/class/typec/port0 port_type 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc contaminant_detection 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_current 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_current 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_source_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc update_sdp_enum_timeout 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 contaminant_detection 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_current 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_current 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_source_enable 664 root system -/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 update_sdp_enum_timeout 664 root system -/sys/devices/platform/11110000.usb dwc3_exynos_otg_b_sess 664 root system -/sys/devices/platform/11110000.usb dwc3_exynos_otg_id 664 root system -/sys/devices/platform/11110000.usb usb_data_enabled 664 root system -/sys/devices/platform/google,pogo move_data_to_usb 664 root system +/sys/class/typec/port0 power_role 664 root system +/sys/class/typec/port0 data_role 664 root system +/sys/class/typec/port0 port_type 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 contaminant_detection 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_current 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_enable 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_current 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_enable 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_source_enable 664 root system +/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 update_sdp_enum_timeout 664 root system +/sys/devices/platform/11110000.usb dwc3_exynos_otg_b_sess 664 root system +/sys/devices/platform/11110000.usb dwc3_exynos_otg_id 664 root system +/sys/devices/platform/11110000.usb usb_data_enabled 664 root system +/sys/devices/platform/google,pogo move_data_to_usb 664 root system diff --git a/dumpstate/dump_gs101.sh b/dumpstate/dump_gs101.sh index fb9dae10..7bd10d51 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -35,11 +35,7 @@ cat "/sys/class/power_supply/main-charger/uevent" echo "\n------ Power supply property pca9486-mains ------" cat "/sys/class/power_supply/pca9468-mains/uevent" echo "\n------ Power supply property tcpm ------" -if [ -e "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent" ]; then - cat "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent" -elif [ -e "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent" ]; then - cat "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent" -fi +cat "/sys/class/power_supply/tcpm-source-psy-12-0025/uevent" echo "\n------ Power supply property usb ------" cat "/sys/class/power_supply/usb/uevent" echo "\n------ Power supply property wireless ------" @@ -93,10 +89,7 @@ then fi echo "\n------ TCPC ------" -max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc" -if [ -e "/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025" ]; then - max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025" -fi +max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025" echo "registers:" cat $max77759tcpc_path/registers echo "frs:" @@ -206,9 +199,9 @@ then fi echo "\n------ Battery EEPROM ------" -if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom" ] +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom" ] then - xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom + xxd /sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom fi echo "\n------ Charger Stats ------" From 8f8ce29d4671505e070daf2532c2aca601fcc6d0 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Wed, 7 Feb 2024 16:37:42 +0000 Subject: [PATCH 23/33] Add Youtube back in MRR Small Area Detection Allowlist Bug: 324132231 Test: Make Pixel builds to verify Allowlist Change-Id: I5bdaee773d517a3fbd2e41c04192db30bb002b1a --- 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 bd9ebd61..a32fd947 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -297,6 +297,7 @@ com.zhiliaoapp.musically:0.07 com.bilibili.app.in:0.07 com.twitter.android:0.07 + com.google.android.youtube:0.07 From 4bf2e493a89166d153ef4676777a5ee60aa3dcac Mon Sep 17 00:00:00 2001 From: Richard Hsu Date: Mon, 5 Feb 2024 15:06:38 -0800 Subject: [PATCH 24/33] [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: Ic1acd66301f7eefc3f5282545f612721c59e6e23 --- device.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/device.mk b/device.mk index 32d2a61d..a8ce9527 100644 --- a/device.mk +++ b/device.mk @@ -1020,6 +1020,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,abrolhos) +# Include the edgetpu targets defined the namespaces below into the final image. +PRODUCT_SOONG_NAMESPACES += \ + vendor/google_devices/gs101/proprietary/gchips/tpu/metrics \ + vendor/google_devices/gs101/proprietary/gchips/tpu/tflite_delegate \ + vendor/google_devices/gs101/proprietary/gchips/tpu/darwinn_logging_service \ + vendor/google_devices/gs101/proprietary/gchips/tpu/nnapi_stable_aidl \ + vendor/google_devices/gs101/proprietary/gchips/tpu/aidl \ + vendor/google_devices/gs101/proprietary/gchips/tpu/hal # TPU firmware PRODUCT_PACKAGES += edgetpu-abrolhos.fw From 76895c0293b282b2471211c92817c98c9d9cee56 Mon Sep 17 00:00:00 2001 From: Mark Chang Date: Wed, 31 Jan 2024 12:46:01 +0000 Subject: [PATCH 25/33] Move manifest entries to gs-common. Bug: 322914403 Bug: 324214410 Test: build succeeds on all devices, failing tests pass. Change-Id: I69b1cb9118b077d8594a6dcd5bc8643ffd417820 Signed-off-by: Mark Chang --- device.mk | 3 +++ device_framework_matrix_product.xml | 8 -------- manifest.xml | 8 -------- manifest_64.xml | 8 -------- 4 files changed, 3 insertions(+), 24 deletions(-) diff --git a/device.mk b/device.mk index a8ce9527..ea89db65 100644 --- a/device.mk +++ b/device.mk @@ -1117,3 +1117,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=tru # Hardware Info Collection include hardware/google/pixel/HardwareInfo/HardwareInfo.mk + +# Touch service +include device/google/gs-common/touch/twoshay/aidl_gs101.mk diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 280c120f..e365bbb0 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -84,14 +84,6 @@ default - - com.google.input - 2 - - ITouchContextService - default - - hardware.qorvo.uwb 2 diff --git a/manifest.xml b/manifest.xml index fdc85f37..02a3b593 100644 --- a/manifest.xml +++ b/manifest.xml @@ -34,13 +34,5 @@ android.hardware.boot IBootControl/default - - com.google.input - 2 - - ITouchContextService - default - - diff --git a/manifest_64.xml b/manifest_64.xml index 5f6d83ae..d8d7b111 100644 --- a/manifest_64.xml +++ b/manifest_64.xml @@ -26,13 +26,5 @@ hwbinder @1.3::IDevice/google-edgetpu - - com.google.input - 2 - - ITouchContextService - default - - From e3ec636b99326e0cc1922588502533243317460c Mon Sep 17 00:00:00 2001 From: George Lee Date: Thu, 15 Feb 2024 17:03:55 +0000 Subject: [PATCH 26/33] bcl: Adjust GPU clk divider ratio Revert GPU clk divider ratios. Bug: 324534203 Test: Confirm no DATA_INVALID_FAULT while running GFXBench under stress Change-Id: I9379988d68665924de72441bc0ea24f5fc12be4d Signed-off-by: George Lee --- conf/init.gs101.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index a33829b0..90966778 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -849,7 +849,7 @@ on property:vendor.thermal.link_ready=1 # BCL write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3 write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 - write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04381 + write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385 write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 write /dev/thermal/tz-by-name/smpl_gm/policy user_space From 908d73a76a4749391bbf0de64be3a5d59ca3b97a Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Mon, 19 Feb 2024 18:28:28 +0000 Subject: [PATCH 27/33] init.gs101.rc: Increase uclamp_min at boot time by 1.25 With uclamp changes against margins, we need to bump this value by 1.25 to retain previous boost. Bug: 314123492 Signed-off-by: Qais Yousef Change-Id: I0b001772116bdbc2285e942b5795451dee925eda --- conf/init.gs101.rc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index 90966778..d0aaabe0 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -148,11 +148,11 @@ on init mkdir /dev/socket/pdx/system/vr/sensors 0775 system system # Boot time 183626384 - write /proc/vendor_sched/groups/ta/uclamp_min 161 + write /proc/vendor_sched/groups/ta/uclamp_min 201 write /proc/vendor_sched/groups/ta/prefer_idle 1 - write /proc/vendor_sched/groups/fg/uclamp_min 161 + write /proc/vendor_sched/groups/fg/uclamp_min 201 write /proc/vendor_sched/groups/fg/prefer_idle 1 - write /proc/vendor_sched/groups/sys/uclamp_min 161 + write /proc/vendor_sched/groups/sys/uclamp_min 201 write /proc/vendor_sched/groups/sys/prefer_idle 1 # governor setting From b87b77a43af98646c08d1c3a678e46696da21ced Mon Sep 17 00:00:00 2001 From: Lei Ju Date: Sat, 17 Feb 2024 10:37:44 -0800 Subject: [PATCH 28/33] [gs101] Enable Multiclient HAL Test: 1) complile and flash a gs101 device, passed PTS and CHQTS; 2) checked logs to make sure no sepolicy violations Bug: 247124878 Change-Id: I77925374dee75076de1820227cc8879a053af09b --- device.mk | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/device.mk b/device.mk index ea89db65..baa919f1 100644 --- a/device.mk +++ b/device.mk @@ -69,7 +69,7 @@ PRODUCT_SOONG_NAMESPACES += \ hardware/google/pixel \ device/google/gs101 \ device/google/gs101/powerstats \ - system/chre/host/hal_generic \ + vendor/google_devices/common/chre/host/hal \ vendor/google/whitechapel/tools \ vendor/google/camera \ vendor/google/interfaces \ @@ -339,24 +339,20 @@ 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 + chre_test_client \ + chre_aidl_hal_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 - -# Enable the CHRE Daemon -CHRE_USF_DAEMON_ENABLED := true PRODUCT_PACKAGES += \ - chre \ preloaded_nanoapps.json # Filesystem management tools From 536524e4cd306d763fda5b0d10d5f0a0a716bc87 Mon Sep 17 00:00:00 2001 From: Daniel Okazaki Date: Thu, 15 Feb 2024 23:01:36 +0000 Subject: [PATCH 29/33] dumpstate: moving charger nodes to user build Bug: 323415060 Test: adb bugreport Change-Id: I757d17f45f0cb302ec186ec5c1467e158c04a81a Signed-off-by: Daniel Okazaki --- dumpstate/dump_gs101.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dumpstate/dump_gs101.sh b/dumpstate/dump_gs101.sh index 7bd10d51..92f9ed34 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -154,14 +154,15 @@ do echo "$f: `cat $f`" done +echo "\n------ DC_registers dump ------" +cat "/sys/class/power_supply/pca9468-mains/device/registers_dump" +echo "\n------ max77759_chg registers dump ------" +cat "/sys/class/power_supply/main-charger/device/registers_dump" +echo "\n------ max77729_pmic registers dump ------" +cat /sys/devices/platform/10d50000.hsi2c/i2c-*/*-0066/registers_dump + if [ $build_type = "userdebug" ] then - echo "\n------ DC_registers dump ------" - cat "/sys/class/power_supply/pca9468-mains/device/registers_dump" - echo "\n------ max77759_chg registers dump ------" - cat "/d/max77759_chg/registers" - echo "\n------ max77729_pmic registers dump ------" - cat "/d/max77729_pmic/registers" echo "\n------ Charging table dump ------" cat "/d/google_battery/chg_raw_profile" From 91bda4797a9beb3f1ef749280a463d4a99d7bdb5 Mon Sep 17 00:00:00 2001 From: Will McVicker Date: Fri, 16 Feb 2024 15:00:07 -0800 Subject: [PATCH 30/33] Update tcpm-source-psy i2c name Use a regex to accomodate for the new and old name. Bug: 315190967 Bug: 323447554 Change-Id: I41c4882fdccdbc3f98eedf6fc518d04b73ee92a0 --- dumpstate/dump_gs101.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dumpstate/dump_gs101.sh b/dumpstate/dump_gs101.sh index 92f9ed34..e5a72254 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -35,7 +35,7 @@ cat "/sys/class/power_supply/main-charger/uevent" echo "\n------ Power supply property pca9486-mains ------" cat "/sys/class/power_supply/pca9468-mains/uevent" echo "\n------ Power supply property tcpm ------" -cat "/sys/class/power_supply/tcpm-source-psy-12-0025/uevent" +cat /sys/class/power_supply/tcpm-source-psy-*/uevent echo "\n------ Power supply property usb ------" cat "/sys/class/power_supply/usb/uevent" echo "\n------ Power supply property wireless ------" From 4d1085e4a2d95c699f9ae607f028fc1bc6f91b87 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Fri, 23 Feb 2024 23:09:10 +0800 Subject: [PATCH 31/33] pixelstats: gs101: add Learning/Update/ModelLoad path Upload more FG data to analyze its trends Bug: 317827237 Change-Id: Idf59bbe47b17de52592a1cc8fd33296c027930ba Signed-off-by: Jenny Ho --- pixelstats/pixelstats-vendor.gs101.rc | 1 + pixelstats/service.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pixelstats/pixelstats-vendor.gs101.rc b/pixelstats/pixelstats-vendor.gs101.rc index 70d875ea..4c8ca20f 100644 --- a/pixelstats/pixelstats-vendor.gs101.rc +++ b/pixelstats/pixelstats-vendor.gs101.rc @@ -1,4 +1,5 @@ on property:sys.boot_completed=1 + 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 a9397403..96d10645 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -74,7 +74,15 @@ 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" + }, + .FwUpdatePath = "", + .FGModelLoadingPath = { + "/sys/class/power_supply/maxfg/m5_model_state" + } +}; int main() { LOG(INFO) << "starting PixelStats"; From 7e12c967fb059bbc4b11240283ca0a8a574ae3f7 Mon Sep 17 00:00:00 2001 From: Hongyang Jiao Date: Fri, 23 Feb 2024 19:31:18 +0000 Subject: [PATCH 32/33] Add betterbug mk to gs101 Bug: 322543833 Test: local test, recorded in http://shortn/_iEz9DTCHgo Change-Id: Id10b95f2c0169f036f759a513cf16703d5f4e732 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index baa919f1..9edf65e8 100644 --- a/device.mk +++ b/device.mk @@ -36,6 +36,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 ifneq ($(filter oriole raven bluejay, $(TARGET_PRODUCT)),) include device/google/gs-common/bcmbt/dump/dumplog.mk endif From 49ae2f663bbdc44b803b6c77d98338f0767c9504 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Wed, 21 Feb 2024 20:11:07 +0800 Subject: [PATCH 33/33] pixelstats: added multiple GMSR paths support different project paths Bug: 308364170 Change-Id: I4ef71192ad2b2717c515164bd65463759320b32a 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 96d10645..d4b803aa 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -69,7 +69,10 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset" } }, - .GMSRPath = "/sys/class/power_supply/maxfg/gmsr" + .GMSRPath = { + "/sys/class/power_supply/maxfg/gmsr", + "/sys/class/power_supply/maxfg_base/gmsr", + }, }; const struct UeventListener::UeventPaths ueventPaths = {