From 09fb5092d92fbad7b5c2e6d1f71d68b0403106e7 Mon Sep 17 00:00:00 2001 From: Devika Krishnadas Date: Mon, 26 Feb 2024 17:58:11 +0000 Subject: [PATCH 001/150] Move Gralloc packages to gs-common Bug: 275906497 Test: Boot succeeds Change-Id: I879a5ef8365abe018c501cdb0b06c9753e0e5902 Signed-off-by: Devika Krishnadas --- device.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/device.mk b/device.mk index 22d6529..3f14125 100644 --- a/device.mk +++ b/device.mk @@ -567,10 +567,6 @@ PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000 PRODUCT_PACKAGES += \ com.android.future.usb.accessory -PRODUCT_PACKAGES += \ - android.hardware.graphics.mapper@4.0-impl \ - android.hardware.graphics.allocator-V1-service - PRODUCT_PACKAGES += \ android.hardware.memtrack-service.pixel \ libion_exynos \ From ba0173550a0c68bb8002b1b3f1c8b9b06ff19d20 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Tue, 27 Feb 2024 17:38:48 +0000 Subject: [PATCH 002/150] Add media.c2 aidl fragments Bug: 321808716 Change-Id: I0469c5b7d61ebafdfb0ef3164f82915ed8bb79e9 --- manifest_media.xml | 12 ++++++++++++ manifest_media_aosp.xml | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/manifest_media.xml b/manifest_media.xml index 195d587..d369247 100644 --- a/manifest_media.xml +++ b/manifest_media.xml @@ -1,4 +1,5 @@ + android.hardware.media.c2 hwbinder @@ -9,4 +10,15 @@ default1 + + + android.hardware.media.c2 + 1 + IComponentStore/default1 + + + android.hardware.media.c2 + 1 + IComponentStore/default + diff --git a/manifest_media_aosp.xml b/manifest_media_aosp.xml index 9a1a3db..2d1888b 100644 --- a/manifest_media_aosp.xml +++ b/manifest_media_aosp.xml @@ -1,4 +1,5 @@ + android.hardware.media.c2 hwbinder @@ -8,4 +9,10 @@ default + + + android.hardware.media.c2 + 1 + IComponentStore/default + From b3ce1b4f17a83f089ebb988320df47ff53f09620 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Tue, 27 Feb 2024 17:17:47 +0000 Subject: [PATCH 003/150] Enable AIDL media.c2 Bug: 321808716 Change-Id: I1acae79b9ee7ad8096401aa869abc3608a86b902 --- device.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device.mk b/device.mk index 7d2095b..707c7d3 100644 --- a/device.mk +++ b/device.mk @@ -802,6 +802,8 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ debug.stagefright.c2inputsurface=-1 \ +PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl + # 2. OpenMAX IL PRODUCT_COPY_FILES += \ device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ From cb371217172dd37c4c65e821a5d53ddfedfdf978 Mon Sep 17 00:00:00 2001 From: Mark Chang Date: Wed, 28 Feb 2024 13:39:11 +0000 Subject: [PATCH 004/150] Add sepolicy include to zumapro. Bug: 325422902 Test: Manual, system booted without sepolicy denied error. Change-Id: I73395f078495dd93488dddcc3a7b0bc82b36b3b3 Signed-off-by: Mark Chang --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index a24a656..f05b1ba 100644 --- a/device.mk +++ b/device.mk @@ -1179,8 +1179,8 @@ PRODUCT_COPY_FILES += \ device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat # 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 PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true From be1d9ec9f49cf49ec340ab9444c20a38a3733310 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Thu, 15 Feb 2024 15:38:36 +0800 Subject: [PATCH 005/150] Modem ML: Add TFLiteService to device specific services. Bug: 307449478 Change-Id: Idab76b6afc60dc76c196910376ea8d1fc980e749 --- device.mk | 6 ++++++ overlay/frameworks/base/core/res/res/values/config.xml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/device.mk b/device.mk index 28e7c1e..e47d425 100644 --- a/device.mk +++ b/device.mk @@ -970,6 +970,12 @@ PRODUCT_PACKAGES += modem_svc_sit # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit +# Modem ML TFLite service. +PRODUCT_PACKAGES += modemml-tflite-service \ + libtensorflowlite_jni + +PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service + # modem ML models configs ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index ffbbf72..81e4b11 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -300,6 +300,12 @@ com.bilibili.app.in:0.07 com.twitter.android:0.07 com.google.android.youtube:0.07 + + + + + com.android.server.modemml.TFLiteService From 743b5d57c6f37ed741f064e1b87562c279c78fe8 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Thu, 15 Feb 2024 15:39:27 +0800 Subject: [PATCH 006/150] Modem ML: Add TFLite config files Users will specify the default configurations for the TFLite models registered in the config files. Bug: 307449476 Change-Id: I22b753f7995abeae8e7ce477415dc6dc723d6220 --- device.mk | 6 ++++-- ..._ml_models_user.conf => modem_ml_nnapi_models_user.conf} | 0 ..._userdebug.conf => modem_ml_nnapi_models_userdebug.conf} | 0 modem_ml/modem_ml_tflite_models_user.conf | 1 + modem_ml/modem_ml_tflite_models_userdebug.conf | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) rename modem_ml/{modem_ml_models_user.conf => modem_ml_nnapi_models_user.conf} (100%) rename modem_ml/{modem_ml_models_userdebug.conf => modem_ml_nnapi_models_userdebug.conf} (100%) create mode 100644 modem_ml/modem_ml_tflite_models_user.conf create mode 100644 modem_ml/modem_ml_tflite_models_userdebug.conf diff --git a/device.mk b/device.mk index e47d425..4c897fe 100644 --- a/device.mk +++ b/device.mk @@ -979,10 +979,12 @@ PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service # modem ML models configs ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ - device/google/zumapro/modem_ml/modem_ml_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf + device/google/zumapro/modem_ml/modem_ml_nnapi_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ + device/google/zumapro/modem_ml/modem_ml_tflite_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf else PRODUCT_COPY_FILES += \ - device/google/zumapro/modem_ml/modem_ml_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf + device/google/zumapro/modem_ml/modem_ml_nnapi_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ + device/google/zumapro/modem_ml/modem_ml_tflite_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf endif # modem logging binary/configs diff --git a/modem_ml/modem_ml_models_user.conf b/modem_ml/modem_ml_nnapi_models_user.conf similarity index 100% rename from modem_ml/modem_ml_models_user.conf rename to modem_ml/modem_ml_nnapi_models_user.conf diff --git a/modem_ml/modem_ml_models_userdebug.conf b/modem_ml/modem_ml_nnapi_models_userdebug.conf similarity index 100% rename from modem_ml/modem_ml_models_userdebug.conf rename to modem_ml/modem_ml_nnapi_models_userdebug.conf diff --git a/modem_ml/modem_ml_tflite_models_user.conf b/modem_ml/modem_ml_tflite_models_user.conf new file mode 100644 index 0000000..9122b5e --- /dev/null +++ b/modem_ml/modem_ml_tflite_models_user.conf @@ -0,0 +1 @@ +#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,use_nnapi,execution_preference,accelerator_name,allow_fp16_precision diff --git a/modem_ml/modem_ml_tflite_models_userdebug.conf b/modem_ml/modem_ml_tflite_models_userdebug.conf new file mode 100644 index 0000000..9122b5e --- /dev/null +++ b/modem_ml/modem_ml_tflite_models_userdebug.conf @@ -0,0 +1 @@ +#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,use_nnapi,execution_preference,accelerator_name,allow_fp16_precision From 2912685d47b2ba38e460cc5e453d3ab0e37bf490 Mon Sep 17 00:00:00 2001 From: Spade Lee Date: Mon, 4 Mar 2024 17:23:03 +0000 Subject: [PATCH 007/150] pixelstats: add max77779fg abnormal event path for zumapro Bug: 303122793 Change-Id: I5493e3d6b514d615bfe0a4b0e3468052d8ba8ca5 Signed-off-by: Spade Lee --- pixelstats/pixelstats-vendor.zumapro.rc | 5 +++-- pixelstats/service.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pixelstats/pixelstats-vendor.zumapro.rc b/pixelstats/pixelstats-vendor.zumapro.rc index 5993978..aca60f7 100644 --- a/pixelstats/pixelstats-vendor.zumapro.rc +++ b/pixelstats/pixelstats-vendor.zumapro.rc @@ -1,7 +1,8 @@ on property:sys.boot_completed=1 chown system system /sys/class/power_supply/max77779fg/fg_learning_events + chown system system /sys/class/power_supply/max77779fg/fg_abnormal_events chown system system /sys/class/power_supply/maxfg_base/fg_learning_events - chown system system /sys/devices/platform/maxim,max77779fwu/update_stats + chown system system /sys/devices/platform/maxim,max77779fwu/update_stats start vendor.pixelstats_vendor on post-fs-data chown system system /sys/kernel/metrics/irq/stats_reset @@ -9,4 +10,4 @@ service vendor.pixelstats_vendor /vendor/bin/pixelstats-vendor class hal user system group system context_hub readproc - disabled \ No newline at end of file + disabled diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 690ac75..02fe03b 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -104,7 +104,8 @@ const struct UeventListener::UeventPaths ueventPaths = { .FGModelLoadingPath = { "/sys/class/power_supply/max77779fg/model_state", "/sys/class/power_supply/maxfg_base/model_state" - } + }, + .FGAbnlPath = "/sys/class/power_supply/max77779fg/fg_abnormal_events" }; int main() { From 8d27b29ae1c4603700a7b2a2891438a1f2e1ba9d Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Tue, 5 Mar 2024 00:55:40 +0000 Subject: [PATCH 008/150] Revert "Add betterbug mk to zumapro" Revert submission 26348985-bb-sepolicy-poc Reason for revert: Droidfood blocking bug: b/327991669 Reverted changes: /q/submissionid:26348985-bb-sepolicy-poc Change-Id: I77595ebfa5c9bb7b8673dd132e7021fb0ed7e7ad --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index b7442df..df3769d 100644 --- a/device.mk +++ b/device.mk @@ -41,7 +41,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/zumapro/dumpstate/item.mk From 35d07fcc986eabd7797409da14ee4579669faa02 Mon Sep 17 00:00:00 2001 From: Mitch Phillips Date: Tue, 5 Mar 2024 11:26:44 +0000 Subject: [PATCH 009/150] [v2] Disable MTE on certain system processes that have it enabled by default A bunch of stuff in build/make/target/product/memtag-common.mk is specified has having MTE by default, in order to ensure that OEMs that have MTE-capable devices get a default level of MTE on security sensitive processes. For now, on these devices, ensure that devices that enable MTE through the developer toggle (or the bootloader cmdline) only have the zygote with MTE. Last attempt was accidentally only applied to dev boards (I thought the device product inherited), but now set it as the base of zumapro. Bug: 327060622 Change-Id: I57b08b6edcf3ebdcbc790e29b89e70bc0edbc5fd Test: Boot device, `fastboot oem mte enable`, follow instructions at b/b/327060622 --- device-common.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device-common.mk b/device-common.mk index b419ba2..b67982a 100644 --- a/device-common.mk +++ b/device-common.mk @@ -53,4 +53,8 @@ PRODUCT_VENDOR_PROPERTIES += \ # force enable MTE. ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT))) PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1 +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off endif From bdd366b359aecaf9ccf3c29404961d718ca00cc8 Mon Sep 17 00:00:00 2001 From: Hongyang Jiao Date: Tue, 5 Mar 2024 23:32:22 +0000 Subject: [PATCH 010/150] Add betterbug.mk to zumapro Test: manul test Bug: 322543833 Change-Id: I985ed9e7945ff18b83624f3764319f8f64674845 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 07073a7..fe3f669 100644 --- a/device.mk +++ b/device.mk @@ -41,6 +41,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/zumapro/dumpstate/item.mk From 8122febec5ab0d1d761eacabc2796d77abba0e3a Mon Sep 17 00:00:00 2001 From: Shashwat Razdan Date: Tue, 5 Mar 2024 23:50:00 -0800 Subject: [PATCH 011/150] Adding android.software.contextualsearch to zumapro devices. Bug: 326143814 Test: Built and tested on device Change-Id: Idfa95159b310800819742c3e265cf7301138a9cb --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index a7a653f..90d0470 100644 --- a/device.mk +++ b/device.mk @@ -292,6 +292,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 e5089df66fde5bd6d0982a0cb831dd910ebcaa0e Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Wed, 6 Mar 2024 10:17:03 +0000 Subject: [PATCH 012/150] Update default.nprf to add missing log groups Bug: 328362943 Test: Check log mask from modem logs Change-Id: Iec0d9cd475fbae71ef3858d516cc7b34b15de3cc --- radio/config/default.nprf | Bin 9061 -> 9811 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/radio/config/default.nprf b/radio/config/default.nprf index 34afa5098bc81144e71780abe0303c3db9cb7e8c..72e3429d6b3829e4b1e6785080b5193f6f3aa272 100644 GIT binary patch delta 9109 zcmZ8{Wl$YWur?k%xZ8nX!7aGEyTbtv?(QLrJHZLA!Civ~2p-(sEm&}uOWynAtNU%$ zOn3D@yVE<h)K!2KsbG5@c$;)aXCezO;-VKy^a z>RMD1*>3Q4E!OrkEPoxzC>P05`(AWP`FVa3S~NK4b+N>{!nXEXiZ@uFX|As_ zCWSj%k#@D6-u}gb)9`dr$bm3#RIRL2()!lZwF-Z6WcX_pyA>KEw;XQ=`+&f}`O5KA zlCg_@*8Q#zpHgYPjfSsan+|ZUpW*U8DYNC}YBBXIetD9&PK39h-iVit+Mz0SnP3*6 z7(b94*OTm(AB;dY&G^mwz9~q-dgK^1XJ*t|exX7eRMzuC!A-a@p zLuY2SOPkt01lIeaYNqr|*To<7ZEg5Oh4d?``(+6qh?mpg=ctamh8pk*C_8LMJd=zX z3M(t0rYteG^=##1p-)}T<700jJ*@v7t@)1DliRg|PnhsXftiIG^Lm)R&Jg@*DRk!W za2A4dY{sxRh)gwl%d5y>W}DkxqKPcNRK8)d|#Na&N2=X>F1R1@Mdebm=P>|2E! z_H{kwMbc1Jm5V!^yAt5d%SIm7V;-oVHRGgCQtxiL>?@v3Qjv!@`>I_ql%yifWx>~f zord|*y2pH9s-zI9g_mE9SFvX6Ua;)Teij9Pf92Sm2QA3xK?p$@!rOXLXwV?j%@{89Fm zZCmOc{F-Je=lT6>3MP|jUkY0b;tS-$-0eJTf-}<4o=$AqE4h8q>cNj!*CLZ02jaM_ z1Hvr~#R;P!dQTh&mmrdm`Qgh3TdDdPT%-slUBY!HH7^++zm)_(oQpphOu+*v6&9{L z+z&oj08)J;;RL)3r>qH5z}x_pB?%`t94pxo#e)PVa|hggcj3zDYW3AaYE#ca_N7fC zN&49E&&)UD*KN%dChNC_0pf@-q7*Wbv@EketykGkNZCqfZh_46V3SsKEhK)5%ooisSk@QdNOUK__t!|~{P#KS%LsKvphxjQw! zg{^BK4WP}A1-DrrbXO-6l`HM?&ze|l8>n1UmochdL3*!KzJm1UD2Z1*CPCy_8;0_OtjL#JG>~{8 z;!-e_JMHh;&*y@lzU355UQmG~=FQw{@pg>H)Bx_Qn1rBF4v48sI-EpoV(y?f76z9J z(l4JR9%`9|OC)c(I4c>XBnp`ALdkG7v;IXUN;vw>x;BY}JLj_psd%k+SJn>Q?^Wxe zC`(CS*17sB@Qdo!e*_&}WGL!RxsOVU4<}SzL8KH~GRqAP7HY+5j3~^7-CZ>+Cy){F zL;(kZ@5lM-9(Zif6$}e`_;u{*Xbo$)J*hn zef+={X%|Kyv388DzQ7fz-HUPKn}kYZ2~qQ52(-#b8jGY@V91DT+xe;^weX&96<74$ zFvA_GTmEJSdD-D)gJ#4T{C@b*g$zqS5zuFYp3GnqjbCPi&I3K7pe??Lv@k74eXq_g z>4#4|8A_9*^C`iK&MXTSt8ft3x)+e_P`QCKSTGTBEQHCXV#$Z2Z?>7CV`1k>Y_LiqfM;`_0nU1fi&h%j z;=k~}a<|MW+_$E|e%H48>^n&@*@KT}-Oa%?z(L679f*XqxQ&WpFLuB~kq#2u>Fu*= zd`)gRQ9#Sd-ymq>6ct^Bm;}NQ)g)%;PVE0}Y1+F!m_S$(Ax{3JUBC5R)AxNYT0_7m zWP2ev@zNQAKn^E_v69RPGr&^CasxF}mDe=m!fd|?-TEzORAsRV;y<7v!2Hu?5&`)< z?(zRpX?JR8zwBrf;VrA;q^K43)r!!~b5WC2>9KjHCKgS3U@bSId(u{j)5BB{hD8WN z*gs$BYA5U={f7rBo>tO?j=td+%M}JV)f8IHP^-FtWOa|id1Gz)_$@lto$J_Pt`Ds5 z_A*;}?OBZHQg{j8`SY?C&t&%aNHPisv8zbsDGYLddK7%I#;0Pv zX)t9#6zDu$HLhSF>=AxTxY89NOl*}Zi!MjzpIcSU~BtJ95So~zKpj(K#UjMh@b zT@!c=NQIB{x(N|Pkeo=-2*rQy0b$kRmL3}FGd1I&0f%OIV z_v-~JVMd~nk;hLMv1Bc&qUnZ#VQ;U4cXImt<)c%)TbStW8; z7SAK5C;9cWxIWvRS@ekxss25_8ySkN+$?W;TROVTMUIBhzivIG%>_=h_f?87#al#o zTC}|ZJRhAO_{p5lhLloaUFAlRPW(6=RoplJeUjqgtX)0Gd#B_!mGt+tPLebtF&UaaIEOKYGHLhVk7&iEzD8Ut^4*kbT;_Y_03wkjOdjNnp6mBNg2vm}M{b|(6hskv3FnYNK{Q1i zBN{l+N9gPy)WOx5fvH%az)B1VMgRuFK@gn`Sug02!cKyuNcB=`mv7m3rc!^Kvecp6 z!nDpU*{kI4Vt00++7ZasXUr`u?VLzRKiXoUOL z|Io#w%EFj2oPWNeYyNblcGNXt$<5L5ir+Wo?9fqhm3oJbD)@uuJ?g6B_|M-{*`^sw z;>A`+Mn#7qXbOV3iaAAD_+i#Q4;!CXrj*Q|I2ADOaPr`iPb{*_dh6+muU5G5NOCV->_vTXmi1lZonhDo&n;rkPUN2O9@pSzFxU><8P;nUp3P#CK#C7X(Ghabo2>?bN*qXF*)|JA-A5=SE#%% zn;}vyocpY4GYV)IE?0(g_&KZUlI^yZM@rkw8)*qBG0Yli3#gTM2hz~%dCueJjHAI# z-hFnUh*a86UNR=g>bJf4LXy>=RX{FN9Nn_QobahXCH8i6uZe`mScCgqH4C+2`&H*q z}91rZK_9bdGH$1(KheG~w&v&tdR3SHIIi)yZFO#Q2e!c*N?y5>7FmL=PBuW_8oDHxuS z#@dt|VFD2I@-eZmF4Y|M8c_Kn)Yk1USlnPNkCAN=KXAhNsW`9Ts^^rIUV^_WrNY4W z)1a2K3J#)gz(Gq|aAnPF`*-W3vwO?eiF?aa>pf%CYl{pmx~R-9COp+TMHQxGzcbJ@ z0-YG6KuArZE^Zz47#o=cc8+n`=^RAuw2miVuz-SPM5YuzRw2C1R!M36*X4r5VkI5{ z@8j>=iTg@|BHpJnR7v|^G{f~4EXaaOe37oz!3Gr;Pk3JAlv!ul2uJj>7r*doMJy{) zCjXE+TSN2esgzQ4{$!XLPPta6Ftb;sv#~d!aI#mW@JKUALx=)1MfO+Yg;MIsi?LNu z*8+5N`Bo&hCUgmnW9q(7?UsBTRE>WWZ&JI0y}X=G7k8OX-_f43{hE^`U>WrgnUgwa){skP z67Us3qm*o<%`009GS)p&EvdSp(9k(j2mo3lWO%r|@vL7WeqCS%80%4Djmc$8B0%+; z(3dhB#OzRwn+y#miqKpT#DzW)KFC=j4~gsJ$xG-H4NB;9a^bqGT$X(D;H}y5`mnSe zRQ~l*{S4m?{|nx2S={L!;habF^qxt<>aPv**d3D-|F-u_CdK6quu9t2?^eDz@d^Vc zSixonJqtrAsSR0E{c3N7XhkI7O^Ep7_>W0h&1)KCy1aw6Q(&eIS z{O%L~j(kO;1?z)FAn%1r2c=mR_Ye!PRylVdp9L&uioi zrbu_a07aFp(Lt!;sDWp9$>+e5Ja`Pq3F0Vq1E^D5p~Fmr%v6)|i6 z*k+ysMU0P>rqFRU!y%CbS|!6FY4%YS!yyUTVO5mto=X-vvi7_CJj=hqld>~Q*?||Z z&QDJwDtccC?lraCb>V-?9oI)|dP8R-gOCruM{Ije!JQ8*w2Gk9VZn2KXoW(jJA_%# ztCTm?$z`zSEn%~k&E>Y{%@qXLl&>J6oOHGrHmZ6!R%&|aR_b*XVy!r_qKe1?BC%pP z6Zy?3-^D@5HYzLd6FJRMGdCZu_Mcz~<$Y1pWv~%Z3nF0lCR(KW$6NY~###_UM_W2K zqwk$>y|WgaKNR0z!-&eX6@fm-5N8L_btcSQ638LeEx%tU)?7-cBp;3LH9j8jCdS$}s4q?*f6j<8c; z^J!9~{V&=~EMJXdvo?Ct58=?EhwyP1=Abx%EbxNv0xM}ht~fW8SDP{>nW46SI9bGW zcX+1XX69^F+jb1tvHp`}19}0+2rxZkXQv1qwibH0;%dx!_OE*6rwn#b#EPCrifn)} zRJ%HIBeX;+D3K#Iduz)LAz0#?h`Kx7=@EV4iZq>_q4WsJwTiSICD3lwevQw3qDc2q z?M&otiQ2D>o%g5GHYhxcfHAR(FXu>QT;Z^`Xq54KK{YdaRK3H>M&J$+1Up--jM_?F5r5|m@(md z%~p1a$xV|EO}ACPE{sR9q`x2RA)@FOd3xPS7Ts#lKOe}oBR`fM=F;$IL~2NUq)g7% z03P(&JtgV$aa84$>3>n}x~fK%NX|@Y%UjoPbgjU~M+{1sO?{KqY<;LvZ=q7dEDhK2 zQR7`n6G&u;pu~eiu@hp9$#KMdS|4xni2{}T` z>szhdiuTNn<2h;v9e)gdWEet^veR1V!t(6J`nimC`R9tUdDc~0NoEi!!YF=5c{{jw zC9OhtwEpAW`fz~b8#~-9F_SwXD!h3ic%JaTii(hfevtIux0V*gg7%f{fxuWV0q;u> zXEmLa^_Z*VEaFGlX-K%^AcQh9BI6&P<3OLH10x)Vf_#N>(9`_2TyHg79n|f7|VQLdOU#2?ps#HN$3# z+Cg7(N<7Tp&b1ncXO*%1bxbUQm_T-PKdU4uW`%pfa)<60TO=_rIccu=gggWI@KUDD2 zOuahhP%U4(*H)Rh&?KNq0Nj4sno2})sG?QD;-}-H6796IN#fwN2d;;!CZMpc7*f9| zqF?gri*8l-^LSu!m81FLf=dw1>hQjA=V(CpIm$nj%^F9 zr&judI*R;92oilec2-$jAb(kFvy3VJreZ9it;_B9T5qai*jCQp(a2JcbGxT|))Nu$ zdSlb`g|@Y0ZAM_JoNEkS38?FBMs&n-d-4qChFuyj&; zmxOZGxz@K?tsDUFl+po_+096vh6w&`183gas2}aMwjG3jI%uI8mWr5z7VJOXA9s@} z&eQBNmfPL-2a9XxR2K=uKEyb4qY!Ws7Gzki#!SAOkD;gg>rlaK3uL=;&lLqM-o(V} zYWX-jY8G=Tdh8z0OoG?#`rUFx2N8;3Pdri@ve6n=^tOr<+}U>_o^^t?qdSC*#*6TH zEj*8bemY)@;oqKhZHM_naDI)x4;NMFNOdTc(u)lZRDA!bCO}azg9jU>9CZ{Uh#)pK zd1!=+ccD|0nJE^W2lTxTkmaN#M~r~U)#0Lq;TRir`dwK2D{{ICAU1smGDxhRM}~Sn zi+Z6_MQr9eabBJB^2YAj%^C2he7WsJZ9<}kGm^^IZ;O7j6Yq|is`ramhp5mr$<_>mQz zl#Zkfm{^zyftDoI2+YI8n&!SWuuU~FSciRgSDsRnP5dhH?Ob*}#C1SWBlm(Em-Kyu zt;(u+8K+~L+~pHmk{(*GzSo%k!jL{|1W^|4o_%S8_w&1RsjpsC{N7Y^!`0JljwVNr zpwZRWn5bYtw`*xc#YPyf#?59{kwjm+CNTM0%dIql(bYbgtkACf7cfr9h<7>JUKHZb<5p$09_p0{u_gO1p%R!NF~8#R+z^Br zEucfCSFYB__i@_9S?{oud6B;k;cc}!(Nm?uco>AJJo>V&QrNq$a@h7(q zU;0{GZXvFitVXkruAZ+?CPl?tkCUt2x293${*|2+j4+?Pu=F28k1KLWJ0c}K#((fH zDKT5>Rv6848h5N{{H^ZPp3Z@mt2$CW7~0)Y=R%8Puk6&A{yQ61oaNsblaX8HI(2uC zM#T?!D0rM_nPm2W7cEXqsB*sP>U4a)C`{&lAakak!*1PHbQ^e#Pt=c_l>FEmmt3Ho zr;RD0G^Gk+FdW?rT{#x77OUO@Q89o=N1S$HELgYMOrt+slCZ}GM8`(snUzSx5Dr$* znrhkJka?a3;R`q>{9tg%IbgaFKh1p ztC&CauAZ^KPN)8+CegeWKE7&j##NYJiq&OVMwtNA5%{)YQqk(IsQjiwAw9t0+sZp7 zo=5OKE`IX~E>0mTL8EO!VckL%g$!7u@LEBMowU^zX#JH2{tS12H+=&Wu!4TX=}_l= z3dZq9zQEa`pVMcfYH|D?hS!i=C>5pHYmmMg;S})OhdHFFO7~h|sN>7^y}ZXYeU*?> zr(v*v3)1IXCb$uHJ1}wOJr0Dh!A^ga7V~$ry6L&G;| zPJ$bcva6@isr$M9uy3K^FZk0u1m@ogWv0~f;y+^F@O1|#BY<>t9nCS!%UIKF6Owwm zP%Ugmq7mu>pI5OO^n1l#1C#CbYgH4j4K`LQ1kU0KT9zKiXHW0Jp@gvFK7N? zJ9$cmumY#-OeQ7QtYLbufK6KjQF(yxg`HXMwa~;I@lD?Pgv2Jd?`_jECkCAHU9yaf zjLV-YQaj9`T`skjx?G$RxbJdm(2lX{Enc6(Nckt=dS0OlTF<}uo*f_e7p5smI@}Pp zESm0H*c&XNoFn(Q2V%De&bx&5gljuJX=CiD>hwo2fp;By+Xyb0fv+#jQ|xF7MMR+} z?Mu&R4^I)e7v2?d>eCW2&02w62)3y2@$}Q9EPVPD!O=9)G|U*DoqZixh@#;*7wpRm z9b?`7BQ2?}_g&2y^YlPJ3i!r%=(og&4&GS;W~X!Kv}>1o?+8D@Eiy|(TEcZC8O3Y{ zzHd96*XcPwz}tElUt>45W;n9`W4X^F|0Tthh*0TeYST=5nF;0*$XEEqV-I!*MBvA38N5!7 ze)ZS3DSM$w186kz?D}wfAv`T|ZIHE2qq$e3ux~2xmA=X7KVSLsPwDut_B4|YZuzeE zkGfiqjwW)nRo}x}hpn|oCWt$Q33W8L8cKT{j8E?l+*!1wvwU$on4E6=dqkcu?g^Hh z`RV;_tUXc>c;&Z|W)|C;J@nwq0FLTDlt9Szf?FvU5M9ZY9WgfNV?3&Ugnl$T+Pq3p zk!%?+;ttvI@b=pk%38xY4Qk4M!`wQLVc%TeU@%|auO9krDs5g#on!pC&-ClC7YJ^R zE#v+=T$9fQn zh37oHmlTJ$Kc6se88;VU-ChbQ%)}khNlw{F zGY~9ch(fv!6|y-!BoNi?$?Rf7^26X+A1ZsC>Y&2!r#jk+no>N@TPu0Qyn_bbD7 zpftik5h)M{uJPa_ECMTXssJvemxq;$uFK+r{Jj0_Eg22&eD zZNqP$e#od{_(vn6WU*~~g@-6$2?xD~nu&*K?9QbBjd+T*i|xXi+O2@X@w_*mcZ0=| zsyaHzVsRW3fNF-r-h;ybbRLNR6aUuj0?8Wq=Qounqw>ObEJ3eV-=O43>IWL|S>3uk zL_ybV^N7Z4=CKm(cQ|k#)=N_7d@uYi5upgRFWRm*`uO#{2ho)vbr4hh1?!(f5%yMv zgb8e^-O&Rh4c3~^#V@!cmq#qW7oSYMo;Occ_tDM2{oGnxb*F2qC`hO#-#bBJIm&G{ zX=LfB*v{{RbXpnt>Pn~ejUMhDp6p909HnIThqUx z`?kVGN3478z$??+u)_ahj*4MmV1^F*ZTbn~#mH)9k=_oWKr!Poca+!X`Wma07{)p=Kyo2mUn6BM=UvCdyv#Ww5_2 zvBh_zTEKC*Cm%KbL{>0=V}2$admHSDcYy7HI{VwqTG6a)mi|Po81_ftq$DEt;1sxc zi+|LNMGpi^fvYz)++rz+1KbaX_V(9V*-aRgp4vU)Pl){`fwR*_K8=R0dpMZXJbe(3 zUeQJ%iH5UJ7CVC}@n=h{qiY4Xc*5Qhqw`|b%3adJM>S0xEnFpS?-Nr4uY?7yI>R*kGzii8Y__@yb**V`=B!m=hIhHqmp>BJF=1wVGAT=t2WI=`>yfQ@pDKFc|f zOg?+dRS`}8`q!&|&Q5row*tJg6XXYKx1EPmm+thK@V=^-IOsit%cXPLI=uF~O~06z zFXtXhxOuyIyPjMy6X1iv1yblJtJPH;Jim`TNP36i@zEH_r{&xc$IdvEoB|WcXb0|l zt;z5+X{lJ>*n+gYZ|v1_#!+V@d=g3(fr=0fPGem+{Tehpoyeac2r#cyzVQKHB>-8& zr-Z;fOLOy(ZXD~3vAZqxUOAh(rra3%YliV_jioi^b~0yPyiCy*gQ5j;y!EPFVmh1| zq?*0`&dU8y-3J|6Bi6hyLPYsSIY2BaoO0+e2$7dG>kCR|0{(_e5K%g*ZXTb+tX<& zF&9MoUp-8sK1k@@(x3m&*bS2YKgNF*Gl{H}kavO&KYS7z|M>U5@%&t3&72;l z>0VzOla0SObtY-w#`?xm=g-vF*y#c~b1J!aGd@n29pAI>+FGu{v~oE18W|UXq=1?`Gk}EF8t)nDir@d0~NOsON{t>kf4}L6y+}+ zGIsQC_(hWd!^`}efx&?G*!GNpwWRWiw5@bsUg+W*nWf^yn;Yp*DNlyq**>M)#ylRf zp01q|Uh@wX>`>rGu386%eJDt7|KcWJ-Bs`$s0Gh>e!#VwwgIj^^hOfCz6rKS2$r{+ z1ixteQfg%yB6I&yjbT9rKX5aSiuTXsI)i9rmXG=5b-3mv3R{59qUw>wH6|;w{HJ_F#$>`@XO#-f(qdLUQx>77 zK%2*%@h_j$^#tGYJ5!TFDy?YQ3ejJ|OOYSQ_gT|ri={gzEkeDaW!VnDuEs0^p}|#f z*LnTatvKh>m)x!OmV)XVHf_$yK@@Zmf`6Q2<`ZYA#6??d5F#y^U;q4?%_y#*u}Z7B zN#hrj?6TPmiaR-FgGRNT3F=qV*$L{#1OCAg2+kGzKTzp{I*w8|loiozYEUA&w8sd4@Cwzu!R|mPJ>{GYVIrn&11O?t;yJ6b)1erMd z5*$!_X^-J_hn;$o-n}&If&C6Zyio4=TPml1#DE7|l_eu-@@0DjUDFi8^-ID6{FOdw z8t#Hf4gC`DS{zy$^b_-8AKHvrI4fz4MCWU1=5k5+IBeCa*YM0r<-W$Sm?k|P%S|d@ z%Sv||c2i~k)RsVLY~-ftBUWD`^>YCYTYz z?8A#j4K&U9^_J%pL_{qS59}R zyQH4HESpqtuY^bREKv&CiKZuXG30{5A}B{rC=IT(y?1^ilWOfVEH@js>rNv(gMI*# zB@HDiwW~BrgP&`wz}NsSuH9~CM@=&OT#}+=#}7Gz-JF+azH(M!Y_Q#&M8WyA+Y!rs z^$4?5hx0@^WF80J%oZCrw15pvWIEo+z^>0t_6tL$z?hA}7=u0T^Q$pDqxd5>UKSOE zu>dc-%7{Vu0=AkJ5pVBH`_zwNbOIhG*P#m(TY?@hd%TDjD5C*A%Nw7mA=UA3DMwR@ z*#RpWt)Jr#z`9+^-@^7$^=I%{Onn61r-1g_6XrJ8%J(gDEXnNcRFTD!R2VGnl##^} zl<-+}BOWRfia02=wxF%Ga?-9i#(iEBLN6;I3@`b{S>EU#-2i7k{LMw9+b~#uVa_(w z#+^^8)%f%=b0FXr=gqqxn{gcfHnM);BW%6QMJDB&&DJ{4q`xh3^|v2#Y$+TI5VDe| z4rwe44rD57m&82HXG+2L!4=RzSu7|Li|p4el7vn9?M7)L5k5x}1G72?vjTkW?9q?o z6onG_uuR@v+MOSY#QB(oZ9=BYyGiuuy-+cP~eBj-uQaEZ@2 z-&|X+NFHaFqe$~2M7`B_bZcdz0&u2#Y4Syr>!uk!vJp75O0@Z6#gx3Wc1&mwdXm^x zJB9NB1@NG2n(*s|T~{o)zOBFu;ok#SOaN+T0O=(0|jHzSoEqIym; zu0+FCYNW2KaKJMw7a{g=uj|{fuCIfQG!On|<1N`|^yi=fCj@qL#`tVg9igf%VSR5V z^yw?TfL2ezI8~kJU#gyaWBb}ozm%*vicJJgkWtE_NK9XzDQ>>wAuByDOee8%@TOhI z8o70XMez^yrTZDrU+5urpN`rp@_#<`Hx((B!}A{+4%%pw5z?8cLts=`7@Y{!o2Ts? zPb_V5Oz2dk+bSY_5Fh$MZkh3?&<$r$5~hEVewoZBtNo4bb{^zZ^m~M?OrXVKJQ08; zUsGBg6(L@U=`Xf_$jBrmpL1f$5G{lI+KmzA+LS9%(KsYr{{7a><@5Jlg8eZ7oy8vh9vpD-HTrQCq0bZ$1TY}v~X>=W2GhS z^g$<#EUxlWR6fZiQ+*^6myRQx`Xj*Mq2GL?=*}7?u3qw;I0uxA78ddOAA%Z=8baa21l9W9``=Umz}Pu zN$GUCM^8}RAnKe6GNFGuFo^yDYIPZR{=1k8`v1~}kK`UZZ|0oYHnLFw$G!P40wqM} zUvo+x;fR*mKc1`-8(C3oi7^OKdQw?xR3W5dSMuRsS8eH%ypx}R{`@Qc9y8GI7&gz~ z|FhNLp>8~1X>7dWZ-z~7+>zWwK1}*$QtYLeivsxni%AqFvIfVgXwvI)+T(*82!Eg< zO{2)U$Insn(vBUd-&XoC-bfK+&uwBC-o7)cDk= z9T>9_RAX?*$C~ODFA&9A&sj@IXRyGcZ;HmMlOAcn$N`dR{Vpni0f2TeWOtC4k1%XjSUT?huo!~8`cYXerdst94`m9D#ap9te(W#oi#AVgA z@HW4yyb$t9Ot{^rB!y%D!zoHSHTZ7g{58Gur$9{qGcLcouhkStw-TluJ^Hm^^1(v) zx`?WI+8npKtH^m7XoY1 zo?>g0*cRt6#5Kr5UdxkzPJ^X%6uRi0}&I&Qjli->TwE%ScBw$aHxfi1hUr3eP z0j}nyAM_fDg*P>#sDwAwqb`Lu)zXWU6J=)DT**}#bFlOvyDH@7xR4{|r>)$D0iGzf zRGa*ZeHMAtX^8)gZeaVUKEqmSo}9w2j=q5ORVwuC!zoxA;rEjf?_;uPlH;aJPJVQu zTL8|go3KJ6Rv9R}3a50`9DXW1h>_h6M2mP4IIc=aoUc06_&3y@OSKev5zh9q;^Q+9 zqsa$5gi{p=YZ5Z!H>6V$D`;G z{u9dmo?6{4)_l;-Kw;m1f@g2=4i;))GizQ0pi_j+Q4FMPR zVUUA3R&tW?Ftj=~II)R-GbZ1@JYoL_eaZlV(XA%MMiG4LhBITTp2~`nHRA*t5$}}C zjW2L9DgV;KUR;ZhPv@tpaqDJD{Aw<62&&{6s+p)yN)f`QV!#PW}Bwxng7NTu!_dBC)^q4yrT{(-3Yn5!|#EcXRW?7R8 zqWj+2l!b|}SORf4K$qo^79%itRGfe^B?2{9Gs~KbuO$LzQ|%BlH1%5i(HOHnNqe)O z{8Fki)HL(&M-km>F)jROEh@7r{f&7DrJ{G*6o|*wL$?%KI8S2BB9pOlsvl#XDP?lM z72Xi4_tcpyNJef zpxzv84D<))=Lo&)z{=g3Qei*zNYo^8 zTMROhz(HU&jxF4~948a=Ra?=|Mu1HDt)@0f^LIcS)G?$-s0c^(?pIG251HkkFPQsJ zE7Hzn$VlGKk@CmTBV3h>wB0_8`jRo2E6$zMkm*{J5LEEvoAUDG4t^1;1 z3~NcSzwiXa!^~udN~-fQl)vgnAip`9u$7a=44Gm?Ahk_BbbnRqvg+;WI&|&oV)F0m zt^tkbw=F=X{;r#sQ}NVybJgI;=23G`0*_3#Q5HSf{>HW^5lUOhTww>E&isaUWZ0C* zL3E!~uA=^DV%%gDcmpad5lTvI_>W@!om0IvK~#_Nu=<&eG^KP+xERX0K_qh&ad0<$ z7`O(?#zqzs4aSH-XqtLxey5hXUXWiQ2D}`)zAngTDw#RyR8}{$_f$7KIhy%tzEO=&)T&k>IA26;e}LJ?J(Rp$hXS#$--03Xyrc-6B^6en zL!vm958BSjiR(MA$_8zhRmRr(om)sqX9R zHg&0vB`C&kHCK}JN);o;6d2O74B1LSqs=(=waky)#su8gXLFoF-&wnl+8lhmB$S}A z+?^Z6rhXj7LJ-kQNexENVkC+7SYstz?$Kasj7X_meDXSE=llMott~-@0=fUyDeIb1 zD`>OE3UO3#6@S#kae4MNqR%Czj?O0gWG_ohMdd?l-tR)YTio+1 z)K{1F>18Ta&n|x^z$>QokK~&E_$ONd8}wyS38rRMhomz}w_52tg(R)3{VkVulEEBR zedQLmdk{E5Z8iSD;e4Smf|cZA-*&B(wv|6}2n6*TjDd&_r zxY4VGfb!|dPdDY{jnV2vjoqBqse=YRT2;h(wW?JrU6emPR4~*Q{zS*!5nRey8Fd&Fqnm9=|=+FhvjVhpX)#apImbW3qi^TqinK8 z^1GiFi!#so6I%Ay*NKiG zE-6*IA5DrgadTvZYti-?Oyxlw|P5Iw|BS|L&QH5@A^Z+ zy)5V3G-x1YHqHXfci&{e(;DJ>SHL%zUno`(AoDjP`;k zdtf34`~&-~&Y%#Vs~_&c<3hi#2ND{*c4>oSiYp4cZC+nrL^^Ek>H2ucnlKhZb!E() zKBsl1EDw9H_GlZJ{aoQa+1lS6h!t_@G_Q*gnEKfj4I!yonon#(wyk?nT-Xx zvzV|0TXAu14c>hXpL$ll3JQS6w_qh1@^hV{IMbaJF-pKFzZh_xK41$(+e zCter6Ca07(NY5%I^2lzRgBq5!HdlGODu@ zD~kmcY;68I4kkGn3#V~7_}x~^h6XiDaLj)MI+{>?VN)v>)*?@rQwrW4f=|~6ZbEbe zc3Qp+Scj@1GB8O;NypJWT=1R|gl+3!Ae z7rxPF5#4i-w~Hf2*CCnE7Z@JBwoGK^;8J(d4!?Tlr*$D>5kzxFC1<{Qf4FSv*4o&g zNft?97iqWcv)F~CgpfobkswZjapGsdAO?}^rmIYxVpfw9W)2gr$@n0E2kJ%Rz$ot! zDMbsXnFLQAzNNXQvd0m%7gZOS3_7|$$QPn@ypzK(;xY_5lM2SaV9hlSHVeO z=TYYM_An-8 z%4#Y4jj&-%VEo|UUvP%(6YbtQybTFHN)9PNL)XNGkFg_!3qE5#Qku>sE=6lvHjW!X z1?R=}Q$^P?AypFK{qroO(ePR95-0nFWo$HbIHS#uRUVhK1J;w>p96Hkd_TenpKw=c z(h`fLipC(~E_8fk7E~qx`6^jEG;)kN$6@G=}5W$<`9^;at{OS08sf?$p76eUH`)EdC zU(#&m!Q>@cXbJu=UZ$u9E5KY;#H7(@Exl$YX_+6TssPof?L3wh3QON66n?}WgUNOd zrOnUTlcD!29$ufdNd>&|e7IfI^Skq8ZIhc^6qs_DMX5)@Xso$te9s)7`+gN*Xn+c+eiUdTt1Z^iNQC$G;WH- z!~NZl#c_koaAV#f7wHYh$e^OwvDRtWK%BhlJ}^*5<-cC&C~L18%cUN<`q?1ajyQs> z+O#FqfXgW7@aD$o^7St-o_kf7Ko!KPH%)Pl01kuS{=d#N0vIT&$h# zEuetincxE|K_IxW-n#wUEq&{9JjeO3Yx}nM_e&1mYhrHlc`{pGR?);2mobN)6|n~< zz~AQ+GfIVrC*~VbRidG%jUT)481+uDJ|$ThR0Kxv1oUA({#AgeJN!F$eJPw*eR16Q zvi&AcH8f{gf{3woPN^xdlA-$V)=+58#`^=A0XoiWJXyK?Vb{>;KAzj>wf&*Tw`0Ndo;hTGCSm$%PdO^Xj|EQUYbn96&1PXyJs8C64{X0L|uo zIQpc$P=d3vx+V^OMu@b7ELcC2Bs^?NT>C|` zN&7&9OzNatWgrz{xU%ju-Bf<4a*QFNBU34&sfyb1(eQs6+dD16A-bbV9Qqu!e01d5 z5rmEuBBJOq?-lLPO2dJsG7{A%91xOHcnvmU+MuF6HgH*0EKmeh$&|KeS<5gf~*C3&@sVHOTKK=b|UtdO*r87iL!d~str&DNv9+!i7kfi6~kJ^Nw1bk-+`#_U+ zsK#u7N7T$BXe@IZ5uux?dvk^yTXKJW!)R2O2pa56My}*K;2a7?;fVQ&HTy{yYvKrn z8}K+FAuejOb z04MrGzG|nC3Do^t4Dx>$!IPW-m8_sXoi92TVcFh?BLAwzs+#4Iwt+1e+qD>NSx`|g zG*#n}MJR%ZOBYrX|Mc?w_z&XY`=k&p6m%J?K=J?Nj-r_yoLW3^a{iPXsPTr-Ss#LW z@BTNL!*{zYY-Mn=UO?}h3_hlWVsl(w5Zl@oQ|-SmyqtEDv-Nr%l^L{;Z14z#Ju4^qKmp9xmOe+$$~P5!(12^cv1$#ni!hG)yG93qeqrrS(Q_k#I&}iO$bin<2XJeW5$A; zlI^se%&)Wad%vHl$HXi^Y4V>ft@B?k9{yg=H=F6}i_xPzq6Iv@n9kJq4eL?n+b+GW zDyiE-1c?bwl(g9B(T*6IA}ek2yPH3%OGsxO`Mo`J83_OxGZ@?0n%E?KZ0yqT=Og$P zxbLSPyc8T|S2m=B$@_auyE{Pr4~Bj(p46!~6lp-e<1;N~6cIu7d9!p#o_U4vwAof3 zJ%h@Nu;@D{mmFX`O=63VuY}H}VE9Fs;Fu7KW*Uxfcv@r(Eu#$VC|%SE@4}L_M-?8j z8>Y^M53npUI#aRk>Bo`!!`RpwKzff@?A?YcBhm0Cd3JJBv^DdG^*KYs@#IO+S;WC$ z8@(s$1-*|z=&Tiqc>;tz`v2*QXYAIpbk{#aIm#hN^7(By5Xq*Ace{xL3mXRlbOD!% z42+Ar#B>FA&)NH{y~C*E5#3bGE3f}bbVd1-O_iP3;XAi@|Gs-4BB@eub`_*-)G@X5 z=Im&sQ}gO(fZ9+89YYcA|I-4}k66WUQ74zFk0_VYli8m9#|=o=VpG6nO8otQjSXxX zxQ<+Z{-5z5dmx>G9fAx0n~{h2UpO7fBeefZCP;5)_r=Bk((NtFxRlPv!Hjdl^gu{J F`yVT%o9+Mr From 9987bd2c998392aad7a4641f75845b096a6076d4 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Tue, 12 Mar 2024 16:46:16 +0800 Subject: [PATCH 013/150] Modem ML: Fix failing artifact path requirement check This adds modules that will be installed for TFLite service into the allowed list. Bug: 329193384 Change-Id: I6b3ad9bd41243fbc7c86ec73f73cad9beb6a4b0e --- device.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/device.mk b/device.mk index 6a89267..114160e 100644 --- a/device.mk +++ b/device.mk @@ -970,6 +970,14 @@ PRODUCT_PACKAGES += modem_ml_svc_sit PRODUCT_PACKAGES += modemml-tflite-service \ libtensorflowlite_jni +# Allow TFLite service modules to be installed to the system partition +PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ + system/etc/vintf/manifest/modemml_tflite_service.xml \ + system/framework/modemml-tflite-service.jar \ + system/framework/oat/arm64/modemml-tflite-service.odex \ + system/framework/oat/arm64/modemml-tflite-service.vdex \ + system/lib64/libtensorflowlite_jni.so + PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service # modem ML models configs From aa343943069e2c4442bfe3a48da8d9a1098ed87e Mon Sep 17 00:00:00 2001 From: Chungro Lee Date: Mon, 11 Mar 2024 20:14:38 +0000 Subject: [PATCH 014/150] pixelstats: move learning/model load path to sysfs Reporting learning(relaxation) and model loading once a day * learning and model loading path moved from uevent to sysfs collector. Bug: 329124192 Change-Id: I5f5281e42d15477d586c732372c476c494d880f3 Signed-off-by: Chungro Lee --- pixelstats/service.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 02fe03b..56744c4 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -80,6 +80,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/class/power_supply/max77779fg/gmsr", "/sys/class/power_supply/maxfg_base/gmsr", }, + .FGLearningPath = { + "/sys/class/power_supply/max77779fg/fg_learning_events", + "/sys/class/power_supply/maxfg_base/fg_learning_events" + }, + .FGModelLoadingPath = { + "/sys/class/power_supply/max77779fg/model_state", + "/sys/class/power_supply/maxfg_base/model_state" + }, .PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state", .WavesPath = "/sys/devices/platform/audiometrics/waves", .AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count", @@ -96,15 +104,7 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { const struct UeventListener::UeventPaths ueventPaths = { .AudioUevent = "/devices/virtual/amcs/amcs", .TypeCPartnerUevent = "PRODUCT_TYPE=", - .FGLearningPath = { - "/sys/class/power_supply/max77779fg/fg_learning_events", - "/sys/class/power_supply/maxfg_base/fg_learning_events" - }, .FwUpdatePath = "/sys/devices/platform/maxim,max77779fwu/update_stats", - .FGModelLoadingPath = { - "/sys/class/power_supply/max77779fg/model_state", - "/sys/class/power_supply/maxfg_base/model_state" - }, .FGAbnlPath = "/sys/class/power_supply/max77779fg/fg_abnormal_events" }; From 0cf027cad763cbcf02cc14e5c8b0bd27596611f4 Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Wed, 13 Mar 2024 11:50:59 +0800 Subject: [PATCH 015/150] powerstats: support for display VRR power stats Bug: 329201432 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: Idaeb973dfa9c72d8e6adde1a83b183c3b90b2180 Signed-off-by: Darren Hsu --- powerstats/ZumaProCommonDataProviders.cpp | 7 +++++++ powerstats/include/ZumaProCommonDataProviders.h | 1 + 2 files changed, 8 insertions(+) diff --git a/powerstats/ZumaProCommonDataProviders.cpp b/powerstats/ZumaProCommonDataProviders.cpp index 31c3b37..a6518e0 100644 --- a/powerstats/ZumaProCommonDataProviders.cpp +++ b/powerstats/ZumaProCommonDataProviders.cpp @@ -656,6 +656,13 @@ void addDisplayMrr(std::shared_ptr p) { addDisplayMrrByEntity(p, "Display", "/sys/class/drm/card0/device/primary-panel/"); } +void addDisplayVrr(std::shared_ptr p, std::string name) { + auto provider = std::make_unique(); + provider->addEntity(name, {}); + provider->start(); + p->addStateResidencyDataProvider(std::move(provider)); +} + void addZumaProCommonDataProviders(std::shared_ptr p) { setEnergyMeter(p); diff --git a/powerstats/include/ZumaProCommonDataProviders.h b/powerstats/include/ZumaProCommonDataProviders.h index 6e94533..0356be4 100644 --- a/powerstats/include/ZumaProCommonDataProviders.h +++ b/powerstats/include/ZumaProCommonDataProviders.h @@ -25,6 +25,7 @@ void addCPUclusters(std::shared_ptr p); void addDevfreq(std::shared_ptr p); void addDisplayMrr(std::shared_ptr p); void addDisplayMrrByEntity(std::shared_ptr p, std::string name, std::string path); +void addDisplayVrr(std::shared_ptr p, std::string name); void addDvfsStats(std::shared_ptr p); void addGNSS(std::shared_ptr p); void addGPU(std::shared_ptr p); From 9398f0eb15861e2a44deff3d00a1e7cca10d9617 Mon Sep 17 00:00:00 2001 From: Shashwat Razdan Date: Tue, 5 Mar 2024 23:50:00 -0800 Subject: [PATCH 016/150] Adding android.software.contextualsearch to zumapro devices. Bug: 326143814 Test: Built and tested on device (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8122febec5ab0d1d761eacabc2796d77abba0e3a) Merged-In: Idfa95159b310800819742c3e265cf7301138a9cb Change-Id: Idfa95159b310800819742c3e265cf7301138a9cb CP feature CLs to 24d1-dev --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 28e7c1e..a8a35a3 100644 --- a/device.mk +++ b/device.mk @@ -293,6 +293,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 aab13b2ec65258dbee3ebe410951bf8e572f653e Mon Sep 17 00:00:00 2001 From: SaiChand Duppala Date: Thu, 14 Mar 2024 14:37:26 -0700 Subject: [PATCH 017/150] Disable dumpstate strict-run flag in zumapro The change disables the dumpstate strict-run flag in zumapro devices, which is enabled by default. Disabling this flag increases the timeout for capturing incident report to 120 seconds, from the default 20 seconds. This is done because 20s isn't enough to capture incident report proto in some cases, especially when device is throttling. Bug: 329683355 Test: Booted a zumapro device with the change. Then manually thermal throttled the device and captured bugreports. In some tests Incident report took more than 20s, up to 55s, and in all these cases it was succesfully captured. Change-Id: I0b12c041c8ac864897db53f44ce51292e1ca36bb --- device.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/device.mk b/device.mk index 28e7c1e..5686eea 100644 --- a/device.mk +++ b/device.mk @@ -1191,3 +1191,9 @@ PRODUCT_CHECK_DEV_TYPE_VIOLATIONS := true # TODO(b/322518837): Remove the property override once the flag is launched. PRODUCT_PROPERTY_OVERRIDES += \ debug.bugle.enable_emergency_satellite_messaging=true + +# Allow longer timeout for incident report generation in bugreport +# Overriding in /product partition instead of /vendor intentionally, +# since it can't be overridden from /vendor. +PRODUCT_PRODUCT_PROPERTIES += \ + dumpstate.strict_run=false From 8d3964566d300c5004f514cfe4dfd0b118c82377 Mon Sep 17 00:00:00 2001 From: Justin Gross Date: Mon, 18 Mar 2024 15:58:33 +0000 Subject: [PATCH 018/150] Add notification pregrant for OobConfig Bug: 329919507 Test: Manual Change-Id: I6f41a4bab0b459d98bca2e0d5debe1d1f7ca17d7 --- default-permissions.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 384d66b..02c5e85 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -143,6 +143,11 @@ + + + + From 94c9c1ac86f398c22ddc446f17bd7ab3fddb675c Mon Sep 17 00:00:00 2001 From: RD Babiera Date: Tue, 19 Mar 2024 18:28:45 +0000 Subject: [PATCH 019/150] usb: handle displayport debounce timer empty reads If the device is unplugged then plugged before mDisplayPortDebounceTimer triggers, then the new displayPortPollWork could process the trigger in the intial epoll handling loop. Because the timer can be rearmed, the timerfd read results in -EAGAIN because no data is ready, but stale data was ready to begin with. Disarm the debounce timer when displayPortPollWork closes to prevent new work threads from reading timer when not ready. Also log debounce read errors as a warning and not an error. Test: manual test on device Bug: 328553922 Change-Id: Icf3dbe929eb9f0520941a4efe3dcea79a71d46c3 Signed-off-by: RD Babiera --- usb/usb/Usb.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 74686e5..b2b49b6 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -1749,8 +1749,10 @@ void *displayPortPollWork(void *param) { std::vector currentPortStatus; ret = read(usb->mDisplayPortDebounceTimer, &res, sizeof(res)); ALOGI("usbdp: dp debounce triggered, val:%lu ret:%d", res, ret); - if (ret < 0) - ALOGE("usbdp: debounce read errno:%d", errno); + if (ret < 0) { + ALOGW("usbdp: debounce read error:%d", errno); + continue; + } queryVersionHelper(usb, ¤tPortStatus); } else if (events[n].data.fd == usb->mDisplayPortActivateTimer) { string activePartner, activePort; @@ -1801,6 +1803,7 @@ void *displayPortPollWork(void *param) { error: /* Need to disarm so new threads don't get old event */ + armTimerFdHelper(usb->mDisplayPortDebounceTimer, 0); armTimerFdHelper(usb->mDisplayPortActivateTimer, 0); close(link_training_status_fd); link_training_status_fd_error: From 7789adbf502107179e96f82155c21dff01e03a37 Mon Sep 17 00:00:00 2001 From: kierancyphus Date: Wed, 13 Mar 2024 15:23:25 +0800 Subject: [PATCH 020/150] shamp: Replace modem_svc with shamp Bug: 328704096 Newer devices will depend upon the new soong build target for modem_svc (now named shared_modem_platform). Since the target is included in gs-common, and is thus on all devices, the only thing that needs to be done it this build file is to specify that we need the lassen instance. Test: build, flash and check for lassen logs Doc: 328704096 Change-Id: I48af45ee76b3ec55422be81462212986b3d97322 --- device.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/device.mk b/device.mk index 7be7a5d..6c35e86 100644 --- a/device.mk +++ b/device.mk @@ -961,9 +961,6 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ ifneq ($(BOARD_WITHOUT_RADIO),true) -# modem_svc_sit daemon -PRODUCT_PACKAGES += modem_svc_sit - # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit @@ -1210,3 +1207,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ # since it can't be overridden from /vendor. PRODUCT_PRODUCT_PROPERTIES += \ dumpstate.strict_run=false + +# Shared Modem Platform +SHARED_MODEM_PLATFORM_VENDOR := lassen +include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk From 0189948a030401177b5c9bd27a623940b65e745f Mon Sep 17 00:00:00 2001 From: Oleg Blinnikov Date: Mon, 18 Mar 2024 20:22:06 +0000 Subject: [PATCH 021/150] persist.sys.hdcp_checking controls max hdcp Change-Id: Iea4237f9bf9334dbe1df3c9c90c7786cf88ac748 Bug: 321344894 Test: set persist.sys.hdcp_checking, check the file is updated --- conf/init.zumapro.usb.rc | 9 +++++++++ device.mk | 3 +++ 2 files changed, 12 insertions(+) diff --git a/conf/init.zumapro.usb.rc b/conf/init.zumapro.usb.rc index 8f33d1e..ae67506 100644 --- a/conf/init.zumapro.usb.rc +++ b/conf/init.zumapro.usb.rc @@ -306,3 +306,12 @@ on property:persist.vendor.usb.displayport.enabled=1 on property:persist.vendor.usb.displayport.enabled=0 write /sys/module/exynos_drm/parameters/dp_enabled 0 write /sys/class/typec/port0/port0.0/mode1/active "no" + +on property:persist.sys.hdcp_checking=always + write /sys/module/exynos_hdcp2/parameters/max_ver 2 + +on property:persist.sys.hdcp_checking="drm-only" + write /sys/module/exynos_hdcp2/parameters/max_ver 2 + +on property:persist.sys.hdcp_checking=never + write /sys/module/exynos_hdcp2/parameters/max_ver 0 diff --git a/device.mk b/device.mk index 07146a7..7ab84b7 100644 --- a/device.mk +++ b/device.mk @@ -214,6 +214,9 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.usb.displayport.enabled=1 endif +PRODUCT_PROPERTY_OVERRIDES += \ + persist.sys.hdcp_checking=always + USE_LASSEN_OEMHOOK := true # Use for GRIL From 606d2534c712330739de81764fcf9f8b81bdb928 Mon Sep 17 00:00:00 2001 From: Mitch Phillips Date: Tue, 5 Mar 2024 11:26:44 +0000 Subject: [PATCH 022/150] [v2] Disable MTE on certain system processes that have it enabled by default A bunch of stuff in build/make/target/product/memtag-common.mk is specified has having MTE by default, in order to ensure that OEMs that have MTE-capable devices get a default level of MTE on security sensitive processes. For now, on these devices, ensure that devices that enable MTE through the developer toggle (or the bootloader cmdline) only have the zygote with MTE. Last attempt was accidentally only applied to dev boards (I thought the device product inherited), but now set it as the base of zumapro. Bug: 327060622 Test: Boot device, `fastboot oem mte enable`, follow instructions at b/b/327060622 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:35d07fcc986eabd7797409da14ee4579669faa02) Merged-In: I57b08b6edcf3ebdcbc790e29b89e70bc0edbc5fd Change-Id: I57b08b6edcf3ebdcbc790e29b89e70bc0edbc5fd --- device-common.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device-common.mk b/device-common.mk index b419ba2..b67982a 100644 --- a/device-common.mk +++ b/device-common.mk @@ -53,4 +53,8 @@ PRODUCT_VENDOR_PROPERTIES += \ # force enable MTE. ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT))) PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1 +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off +PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off endif From 0c2ebbd77a0476493f61a81b86ca7c4fbc80af04 Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Thu, 21 Mar 2024 06:48:30 +0000 Subject: [PATCH 023/150] zumapro: update c2.android.hevc.decoder performance point Update media_codecs_performance_c2.xml from zumapro Bug: 328544066 Test: run cts -m CtsMediaDecoderTestCases -t android.media.decoder.cts.VideoDecoderPerfTest --module-arg CtsMediaDecoderTestCases:instrumentation-arg:codec-prefix:=c2.android.hevc.decoder Change-Id: I91703fdb7b930ef5f53cee7390d0265f7de19dcd --- media_codecs_performance_c2.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 118db0f..dea0956 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -124,15 +124,15 @@ - + - + - + - + - + From 2e22aaccbe9518e284bfbfb9f5b7323b8afd68b1 Mon Sep 17 00:00:00 2001 From: Wesley Lee Date: Thu, 21 Mar 2024 14:34:53 -0700 Subject: [PATCH 024/150] reduce 720p performance number Bug: 325950790 Change-Id: I749970ef970ee9268ac48da248daec1748c72231 Signed-off-by: Wesley Lee --- media_codecs_bo_c2.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml index 443c27e..41aa533 100644 --- a/media_codecs_bo_c2.xml +++ b/media_codecs_bo_c2.xml @@ -57,10 +57,10 @@ - + - + From a5987e127d3871ccf894dc4401e12acd9476483d Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Wed, 20 Mar 2024 07:47:33 +0000 Subject: [PATCH 025/150] Increase modem log numbers for bugreport collection Bug: 329593679 Test: Trigger bugreport Change-Id: Idaa1a80c4a85452ea69d24f8e6d14a1df594d687 --- device.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device.mk b/device.mk index b3b6ce7..11eaf69 100644 --- a/device.mk +++ b/device.mk @@ -449,7 +449,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.sys.silentlog.tcp = "On" \ ro.vendor.cbd.modem_removable = "1" \ ro.vendor.cbd.modem_type = "s5100sit" \ - persist.vendor.sys.modem.logging.br_num=5 \ + persist.vendor.sys.modem.logging.br_num=10 \ persist.vendor.sys.modem.logging.enable=true # Enable silent CP crash handling From 62a0021bb635ff6d5c290874718fc29e3086f711 Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Fri, 22 Mar 2024 14:19:27 +0000 Subject: [PATCH 026/150] Update default.nprf to add missing log groups Bug: 330814551 Change-Id: I23850db1493b37a7d40caa17f22f21b2d297d846 --- radio/config/default.nprf | Bin 9811 -> 9259 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/radio/config/default.nprf b/radio/config/default.nprf index 72e3429d6b3829e4b1e6785080b5193f6f3aa272..528444f8f77b63a5f552e15fc62b3c8fe31405f2 100644 GIT binary patch delta 8595 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 literal 9811 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 JO7Z9J{{SPPwcG#z From d55a1eb732fb6deac79b21cabaf606f0c477612f Mon Sep 17 00:00:00 2001 From: Hiroshi Akiyama Date: Fri, 22 Mar 2024 22:26:06 +0000 Subject: [PATCH 027/150] dumpstate: add checks in irq duration count Add checks to vector size before accessing vector contents to prevent null pointer exception. Bug: 330796833 Test: adb bugreport Change-Id: I1a50337b1fde3b763ee7f154fa206f98681045dd Signed-off-by: Hiroshi Akiyama --- dumpstate/dump_power.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index b44aa16..bcd65e0 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -827,6 +827,13 @@ void dumpIrqDurationCounts() { "s2mpg15-odpm/iio:device0/lpf_current", }; + const char *lpfCurrentDirsAlt[] = { + "/sys/devices/platform/acpm_mfd_bus@15500000/i2c-7/7-001f/s2mpg14-meter/" + "s2mpg14-odpm/iio:device0/lpf_current", + "/sys/devices/platform/acpm_mfd_bus@15510000/i2c-8/8-002f/s2mpg15-meter/" + "s2mpg15-odpm/iio:device1/lpf_current", + }; + bool titlesInitialized = false; std::vector channelNames; @@ -889,7 +896,9 @@ void dumpIrqDurationCounts() { } for (int i = 0; i < PWRWARN_MAX; i++) { - if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content)) { + if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content) && + !android::base::ReadFileToString(lpfCurrentDirsAlt[i], &content)) { + printf("Cannot find %s\n", lpfCurrentDirs[i]); continue; } @@ -927,8 +936,27 @@ void dumpIrqDurationCounts() { } channelNameSuffix = ""; + if (pmicSel >= PWRWARN_MAX) { + printf("invalid index: pmicSel >= pwrwarnCode size\n"); + return; + } + + if (i - offset >= pwrwarnCode[pmicSel].size()) { + printf("invalid index: i - offset >= pwrwarnCode size\n"); + return; + } code = pwrwarnCode[pmicSel][i - offset]; + + if (i - offset >= pwrwarnThreshold[pmicSel].size()) { + printf("invalid index: i - offset >= pwrwarnThreshold size\n"); + return; + } threshold = pwrwarnThreshold[pmicSel][i - offset]; + + if (i - offset >= lpfCurrentVals[pmicSel].size()) { + printf("invalid index: i - offset >= lpfCurrentVals size\n"); + return; + } current = lpfCurrentVals[pmicSel][i - offset]; } From bceb3e553bd628dbd884171f98a5da596869446a Mon Sep 17 00:00:00 2001 From: Herbert Xue Date: Wed, 13 Mar 2024 17:11:28 +0800 Subject: [PATCH 028/150] Update SOONG_NAMESPACES to include power-anomaly-sitril folder Bug: 326175117 Test: m PowerAnomalySitril Change-Id: I98604630e48b284fb1c931cb55b55ca6fd9096ab --- device.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/device.mk b/device.mk index 7be7a5d..5d2feab 100644 --- a/device.mk +++ b/device.mk @@ -215,6 +215,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ endif USE_LASSEN_OEMHOOK := true +# The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when +# $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true. +ifneq ($(BOARD_WITHOUT_RADIO),true) + PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril +endif # Use for GRIL USES_LASSEN_MODEM := true From cc02e0259d886b1f8bb3520d47adc3edee3d6548 Mon Sep 17 00:00:00 2001 From: Hiroshi Akiyama Date: Fri, 22 Mar 2024 22:26:06 +0000 Subject: [PATCH 029/150] dumpstate: add checks in irq duration count Add checks to vector size before accessing vector contents to prevent null pointer exception. Bug: 330796833 Test: adb bugreport Signed-off-by: Hiroshi Akiyama (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d55a1eb732fb6deac79b21cabaf606f0c477612f) Merged-In: I1a50337b1fde3b763ee7f154fa206f98681045dd Change-Id: I1a50337b1fde3b763ee7f154fa206f98681045dd --- dumpstate/dump_power.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index b44aa16..bcd65e0 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -827,6 +827,13 @@ void dumpIrqDurationCounts() { "s2mpg15-odpm/iio:device0/lpf_current", }; + const char *lpfCurrentDirsAlt[] = { + "/sys/devices/platform/acpm_mfd_bus@15500000/i2c-7/7-001f/s2mpg14-meter/" + "s2mpg14-odpm/iio:device0/lpf_current", + "/sys/devices/platform/acpm_mfd_bus@15510000/i2c-8/8-002f/s2mpg15-meter/" + "s2mpg15-odpm/iio:device1/lpf_current", + }; + bool titlesInitialized = false; std::vector channelNames; @@ -889,7 +896,9 @@ void dumpIrqDurationCounts() { } for (int i = 0; i < PWRWARN_MAX; i++) { - if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content)) { + if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content) && + !android::base::ReadFileToString(lpfCurrentDirsAlt[i], &content)) { + printf("Cannot find %s\n", lpfCurrentDirs[i]); continue; } @@ -927,8 +936,27 @@ void dumpIrqDurationCounts() { } channelNameSuffix = ""; + if (pmicSel >= PWRWARN_MAX) { + printf("invalid index: pmicSel >= pwrwarnCode size\n"); + return; + } + + if (i - offset >= pwrwarnCode[pmicSel].size()) { + printf("invalid index: i - offset >= pwrwarnCode size\n"); + return; + } code = pwrwarnCode[pmicSel][i - offset]; + + if (i - offset >= pwrwarnThreshold[pmicSel].size()) { + printf("invalid index: i - offset >= pwrwarnThreshold size\n"); + return; + } threshold = pwrwarnThreshold[pmicSel][i - offset]; + + if (i - offset >= lpfCurrentVals[pmicSel].size()) { + printf("invalid index: i - offset >= lpfCurrentVals size\n"); + return; + } current = lpfCurrentVals[pmicSel][i - offset]; } From 57d671706bdb70692c64aaa02c18612cf850ee85 Mon Sep 17 00:00:00 2001 From: Chien Kun Niu Date: Wed, 27 Mar 2024 15:04:23 +0800 Subject: [PATCH 030/150] usb: change CPU to big core 7 Change the big core number from 8 to 7 for change platform. Bug: 316995755 Change-Id: Iec0fe10621296d557ae66da76318a6339ea16d44 Signed-off-by: Chien Kun Niu --- usb/gadget/UsbGadget.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usb/gadget/UsbGadget.h b/usb/gadget/UsbGadget.h index eac32a4..28a9a67 100644 --- a/usb/gadget/UsbGadget.h +++ b/usb/gadget/UsbGadget.h @@ -80,7 +80,7 @@ static MonitorFfs monitorFfs(kGadgetName); #define SPEED_PATH UDC_PATH "current_speed" -#define BIG_CORE "8" +#define BIG_CORE "7" #define MEDIUM_CORE "4" #define POWER_SUPPLY_PATH "/sys/class/power_supply/usb/" From 7279c7ee0fe90431052ef4b643d95b7dfaee3896 Mon Sep 17 00:00:00 2001 From: "Sean.JS Tsai" Date: Wed, 27 Mar 2024 06:39:37 +0000 Subject: [PATCH 031/150] Add notification permission pregrant for WfcActivation APP - It was already approved at gs201 go/ag/19997820 Bug: 323482401 Test: manual and local build verify Change-Id: I5016d3b4fdc16277eecac313a87ab9426e6fbdb0 --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 02c5e85..c30a17c 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -116,6 +116,8 @@ + + From 2d5a44e562a5da472ff04473ea8837e401bd28e2 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 30 Jan 2024 10:08:29 +0000 Subject: [PATCH 032/150] zumapro: upgrade IDisplay to V11 Bug: 307787644 Test: build pass Change-Id: I4da486e3746bd8296a3b3dab73ebd247c6404495 --- device_framework_matrix_product.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index eb39013..25259b0 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -114,7 +114,7 @@ com.google.hardware.pixel.display - 10 + 11 IDisplay default From 22e7babe48b84f6fa0910cc353ec9b1659e0f67a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 30 Jan 2024 10:09:24 +0000 Subject: [PATCH 033/150] init: change owners of sysfs nodes te2_rate_hz and te2_option Bug: 307787644 Test: the sysfs nodes can be read and written by the composer Change-Id: I659c902f8cf3a20f2e48e2d1f3d4996baec94876 --- conf/init.zumapro.board.rc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 5887039..ae7c21d 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -425,6 +425,8 @@ on fs chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit chown system system /sys/devices/platform/exynos-drm/primary-panel/op_hz chown system system /sys/devices/platform/exynos-drm/primary-panel/refresh_ctrl + chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz + chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/debug chown system system /sys/class/dqe0/atc/ambient_light From 29efbe3c509de1968ef8985ccea4b4e1651222ed Mon Sep 17 00:00:00 2001 From: Samridhi Date: Mon, 18 Mar 2024 07:01:32 +0000 Subject: [PATCH 034/150] Add pixelsupport to zumapro AVC error logs: https://paste.googleplex.com/4870439005847552 Test: Manual Bug: 329276535 Change-Id: I1fc34137dae554fbe3819cbde32e88c1fc574168 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 5686eea..15071fd 100644 --- a/device.mk +++ b/device.mk @@ -42,6 +42,7 @@ 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/gs-common/pixelsupport/pixelsupport.mk include device/google/zumapro/dumpstate/item.mk From a413187ec79d785e85018d95c13a44bc73b95e30 Mon Sep 17 00:00:00 2001 From: Shamali Patwa Date: Thu, 28 Mar 2024 16:03:58 +0000 Subject: [PATCH 035/150] Revert "Add pixelsupport to zumapro" Revert submission 26588695-sepolicy_cavalry Reason for revert: b/331774111 Reverted changes: /q/submissionid:26588695-sepolicy_cavalry Bug: 329276535 Change-Id: I4c896a309c69408a37789314aa6b51d4136b7d7c --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index 15071fd..5686eea 100644 --- a/device.mk +++ b/device.mk @@ -42,7 +42,6 @@ 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/gs-common/pixelsupport/pixelsupport.mk include device/google/zumapro/dumpstate/item.mk From d3bffd2d6600e86e8fa69ea38c6aed476cb5842e Mon Sep 17 00:00:00 2001 From: Shashwat Razdan Date: Thu, 28 Mar 2024 18:59:22 +0000 Subject: [PATCH 036/150] Revert "Adding android.software.contextualsearch to zumapro devices." Revert submission 26467635-feature_cs Reason for revert: b/329350496 - Introducing new config with `android.*` namespace is not allowed in 24Q2. Reverted changes: /q/submissionid:26467635-feature_cs Change-Id: I19a535c988182c67295408520c299044535a8104 --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index 90d0470..a7a653f 100644 --- a/device.mk +++ b/device.mk @@ -292,7 +292,6 @@ 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 c56b9493ae4c917ea3a5729d57b4a028ea0ad327 Mon Sep 17 00:00:00 2001 From: Ziyi Yang Date: Sat, 30 Mar 2024 00:06:16 +0000 Subject: [PATCH 037/150] Adding post notification to gca default permissions Bug: 331677590 Test: Build and flash. Permission was pregranted to gca. Change-Id: Ia8b6a1bbf34bf6b2d703d4a124c61469a586e03f --- default-permissions.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index c30a17c..ad72ca3 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -51,6 +51,10 @@ + + + + From 6bc7f345aa11395e9c6205ea7ef187f699f8ea10 Mon Sep 17 00:00:00 2001 From: Chien Kun Niu Date: Wed, 27 Mar 2024 15:04:23 +0800 Subject: [PATCH 038/150] usb: change CPU to big core 7 Change the big core number from 8 to 7 for change platform. Bug: 316995755 Change-Id: Iec0fe10621296d557ae66da76318a6339ea16d44 Signed-off-by: Chien Kun Niu (cherry picked from commit 57d671706bdb70692c64aaa02c18612cf850ee85) --- usb/gadget/UsbGadget.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usb/gadget/UsbGadget.h b/usb/gadget/UsbGadget.h index eac32a4..28a9a67 100644 --- a/usb/gadget/UsbGadget.h +++ b/usb/gadget/UsbGadget.h @@ -80,7 +80,7 @@ static MonitorFfs monitorFfs(kGadgetName); #define SPEED_PATH UDC_PATH "current_speed" -#define BIG_CORE "8" +#define BIG_CORE "7" #define MEDIUM_CORE "4" #define POWER_SUPPLY_PATH "/sys/class/power_supply/usb/" From 6afae0f81651b0ee7a00b73b40e2bdb2578774f8 Mon Sep 17 00:00:00 2001 From: wenchangliu Date: Mon, 1 Apr 2024 04:05:05 +0000 Subject: [PATCH 039/150] update odd resolution support in vpx and av1 codecs [VSR-4.2.004.001] MUST support the smallest width/height alignment allowed by the video standard. For AVC/HEVC/VCC, this requires 2x2 pixel alignment for YUV 4:2:0 profiles, and 2x1 pixel alignment for YUV 4:2:2 profiles. For VP8/VP9/AV1, this requires 1x1 pixel alignment for any profiles. Note: This is usually stored as the crop rectangle in the bitstream. Bug: 329378524 Test: CtsMediaV2TestCases Change-Id: I0e84a342bf1093c74c712d2c811b37eca9c7908c --- media_codecs_aosp_c2.xml | 10 +++++----- media_codecs_bo_c2.xml | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/media_codecs_aosp_c2.xml b/media_codecs_aosp_c2.xml index c1d4a89..ab61ca9 100644 --- a/media_codecs_aosp_c2.xml +++ b/media_codecs_aosp_c2.xml @@ -108,7 +108,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -238,7 +238,7 @@ - + diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml index 443c27e..ebafe95 100644 --- a/media_codecs_bo_c2.xml +++ b/media_codecs_bo_c2.xml @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -52,7 +52,7 @@ - + From 61f182961746c41f6333ac79c0e5aef2f55872d9 Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Thu, 28 Mar 2024 07:05:20 +0000 Subject: [PATCH 040/150] Add modem log mask for stability issues Bug: 331721411 Change-Id: I9daeac57b90b4a5a45a0443380df9fe3515baea6 --- device.mk | 13 +++--- radio/Android.bp | 72 ++++++++++++++++++++++++++++++ radio/config/Pixel_stability.cfg | 1 + radio/config/Pixel_stability.nprf | Bin 0 -> 10112 bytes radio/config/default.nprf | Bin 9259 -> 10120 bytes 5 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 radio/Android.bp create mode 100644 radio/config/Pixel_stability.cfg create mode 100644 radio/config/Pixel_stability.nprf diff --git a/device.mk b/device.mk index 11eaf69..52b406c 100644 --- a/device.mk +++ b/device.mk @@ -987,14 +987,15 @@ PRODUCT_PACKAGES += modem_logging_control PRODUCT_PACKAGES += liboemservice_proxy_default # modem logging configs -PRODUCT_COPY_FILES += \ - device/google/zumapro/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \ - device/google/zumapro/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \ - device/google/zumapro/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \ - device/google/zumapro/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml -# modem extensive logging config PRODUCT_PACKAGES += \ + logging.conf \ + default.cfg \ + default.nprf \ + default_metrics.xml \ + Pixel_stability.cfg \ + Pixel_stability.nprf \ extensive_logging.conf + # Vendor modem extensive logging default property PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.modem.extensive_logging_enabled=false diff --git a/radio/Android.bp b/radio/Android.bp new file mode 100644 index 0000000..0657c3a --- /dev/null +++ b/radio/Android.bp @@ -0,0 +1,72 @@ +// +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zuma:device_google_zuma_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} +prebuilt_etc { + name: "logging.conf", + vendor: true, + proprietary: true, + src: "config/logging.conf", + relative_install_path: "modem" +} + +prebuilt_etc { + name: "default.cfg", + vendor: true, + proprietary: true, + src: "config/default.cfg", + relative_install_path: "modem" +} + +prebuilt_etc { + name: "default.nprf", + vendor: true, + proprietary: true, + src: "config/default.nprf", + relative_install_path: "modem" +} + +prebuilt_etc { + name: "default_metrics.xml", + vendor: true, + proprietary: true, + src: "config/default_metrics.xml", + relative_install_path: "modem" +} + +prebuilt_etc { + name: "Pixel_stability.cfg", + vendor: true, + proprietary: true, + src: "config/Pixel_stability.cfg", + relative_install_path: "modem" +} + +prebuilt_etc { + name: "Pixel_stability.nprf", + vendor: true, + proprietary: true, + src: "config/Pixel_stability.nprf", + relative_install_path: "modem" +} diff --git a/radio/config/Pixel_stability.cfg b/radio/config/Pixel_stability.cfg new file mode 100644 index 0000000..dcc0a63 --- /dev/null +++ b/radio/config/Pixel_stability.cfg @@ -0,0 +1 @@ +Pixel_stability.nprf,default_metrics.xml \ No newline at end of file diff --git a/radio/config/Pixel_stability.nprf b/radio/config/Pixel_stability.nprf new file mode 100644 index 0000000000000000000000000000000000000000..b8f9e8c7c592f188cceb6d7cf245334e0db3c9e8 GIT binary patch literal 10112 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 literal 9259 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 Ik^MFLKi|uL9RL6T From 831c32fac6b7ff6857c795c929eac2fc1b2430f6 Mon Sep 17 00:00:00 2001 From: Enzo Liao Date: Mon, 18 Mar 2024 22:35:28 +0800 Subject: [PATCH 041/150] Apply common SELinux policies related to ramdumps and coredumps to zumapro. Refer: ag/26620507 Bug: 298102808 Design: go/sys-software-logging Test: Manual Change-Id: I975b5ac3fa9e13692903cd92bdf094520736f8b1 --- device.mk | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/device.mk b/device.mk index edc837f..0c2f00f 100644 --- a/device.mk +++ b/device.mk @@ -16,7 +16,7 @@ include device/google/gs-common/device.mk include device/google/gs-common/gs_watchdogd/watchdog.mk -include device/google/gs-common/ramdump/ramdump.mk +include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk include device/google/gs-common/soc/soc.mk include device/google/gs-common/modem/modem.mk include device/google/gs-common/aoc/aoc.mk @@ -1149,9 +1149,6 @@ else BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app endif -# sscoredump -include hardware/google/pixel/sscoredump/device.mk - # RadioExt Version USES_RADIOEXT_V1_7 = true From 873821de8d7f2929acffbfeaa35602c8b76261df Mon Sep 17 00:00:00 2001 From: Ziyi Yang Date: Sat, 30 Mar 2024 00:06:16 +0000 Subject: [PATCH 042/150] Adding post notification to gca default permissions Bug: 331677590 Test: Build and flash. Permission was pregranted to gca. Change-Id: Ia8b6a1bbf34bf6b2d703d4a124c61469a586e03f --- default-permissions.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index c30a17c..ad72ca3 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -51,6 +51,10 @@ + + + + From 3978ad2a8065602fadec46cd52c0a4bb4618d0ed Mon Sep 17 00:00:00 2001 From: chengrace Date: Wed, 3 Apr 2024 22:33:57 +0000 Subject: [PATCH 043/150] [ZumaPro] Update SGP23 device capability to match with Modem setting Bug: 323837363 Test: Confirm device capabilities matching PICS Change-Id: Id0c4dd8abe3c1a08f43c19bafa66fa91bb17c569 --- overlay/frameworks/base/core/res/res/values/config.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index ffbbf72..9761a77 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -227,12 +227,12 @@ - "gsm,8" + "gsm,9" "utran,9" - "eutran,15" - "nrepc,15" - "nr5gc,15" - "eutran5gc,15" + "eutran,16" + "nrepc,16" + "nr5gc,16" + "eutran5gc,16" From 56e8ae88c0d60ccfc96bc5d37a2ba657988124f1 Mon Sep 17 00:00:00 2001 From: Dinesh Yadav Date: Thu, 4 Apr 2024 04:47:26 +0000 Subject: [PATCH 044/150] TPU Rio Pro Tachyon Migration This change includes tachyon targets for edgetpu in the final image. TESTED: Create a private build with this change and verified that the tachyon targets were present after flashing on a local device. Bug: 307591410 Change-Id: I30c6727855d05094dcdbcb6aab9dc8313253bb10 --- device.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index edc837f..a1a2890 100644 --- a/device.mk +++ b/device.mk @@ -1099,7 +1099,9 @@ PRODUCT_SOONG_NAMESPACES += \ vendor/google_devices/zumapro/proprietary/gchips/tpu/darwinn_logging_service \ vendor/google_devices/zumapro/proprietary/gchips/tpu/nnapi_stable_aidl \ vendor/google_devices/zumapro/proprietary/gchips/tpu/aidl \ - vendor/google_devices/zumapro/proprietary/gchips/tpu/hal + vendor/google_devices/zumapro/proprietary/gchips/tpu/hal \ + vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/api \ + vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/service # TPU firmware PRODUCT_PACKAGES += edgetpu-rio.fw From 3d226761499a3f077b07eb2f1975488c5f96f561 Mon Sep 17 00:00:00 2001 From: Daniel Chapin Date: Tue, 5 Mar 2024 00:55:40 +0000 Subject: [PATCH 045/150] Revert "Add betterbug mk to zumapro" Revert submission 26348985-bb-sepolicy-poc Reason for revert: Droidfood blocking bug: b/327991669 Bug: 327991669 Reverted changes: /q/submissionid:26348985-bb-sepolicy-poc (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8d27b29ae1c4603700a7b2a2891438a1f2e1ba9d) Merged-In: I77595ebfa5c9bb7b8673dd132e7021fb0ed7e7ad Change-Id: I77595ebfa5c9bb7b8673dd132e7021fb0ed7e7ad 24D1-dev is based on 24Q2-release. Therefore, we merged this CL to 24D1-dev. --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index b3b6ce7..3cbe99c 100644 --- a/device.mk +++ b/device.mk @@ -41,7 +41,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/zumapro/dumpstate/item.mk From 712d76e9fb1cf59e4d68826316fedbbbe80996b0 Mon Sep 17 00:00:00 2001 From: vincentkao Date: Sat, 6 Apr 2024 17:51:50 +0800 Subject: [PATCH 046/150] Enable log mask for b/333170735 Bug: 333170735 Enable trace group trace groups as b/331658217#comment27 Test: TH build pass Type: bugfix CL dep: no Change-Id: If81ba1389daeb1223e7d52b2b5eb91dc2e879e7b --- radio/config/Pixel_stability.nprf | Bin 10112 -> 9329 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/radio/config/Pixel_stability.nprf b/radio/config/Pixel_stability.nprf index b8f9e8c7c592f188cceb6d7cf245334e0db3c9e8..abbcba0b48b2bdd64306812de0155c0cf1a027d1 100644 GIT binary patch delta 8462 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 O{8mB$fv6b&)&3u12`{Sv From b88c443fefa946add43547994c3333d6b02e0ea1 Mon Sep 17 00:00:00 2001 From: timtmlin Date: Tue, 2 Apr 2024 19:11:14 +0800 Subject: [PATCH 047/150] Shorten NTN timer Modem needs to connect with satellite before this timer expire. Otherwise the telephony will cancel the outgoing message. Bug: 332613856 Test: make Change-Id: I355e2846826b772464e1d13944e2727901a48b4e --- 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 ffbbf72..96e0cb0 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -449,5 +449,5 @@ In OFF or IDLE state, the duration of the timer is the sum of this config and the config_satellite_modem_image_switching_duration_millis. --> - 900000 + 180000 From da8582fd02c00598eb31fb84176aa1912a37bc69 Mon Sep 17 00:00:00 2001 From: Julian Thomassie Date: Mon, 8 Apr 2024 16:51:23 +0000 Subject: [PATCH 048/150] Add missing POST_NOTIFICATION pregrant for SCONE Pregrant was previously approved on b/233243584, but never added for zumapro. Bug: 331811749 Test: manual Change-Id: I4decd647f87cefe85fb39ef14055e41496eeaedb --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index ad72ca3..6230f4c 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -77,6 +77,8 @@ + + Date: Mon, 4 Mar 2024 17:23:03 +0000 Subject: [PATCH 049/150] pixelstats: add max77779fg abnormal event path for zumapro Bug: 333314833 Change-Id: I5493e3d6b514d615bfe0a4b0e3468052d8ba8ca5 Merged-In: I5493e3d6b514d615bfe0a4b0e3468052d8ba8ca5 Signed-off-by: Spade Lee (cherry picked from commit 2912685d47b2ba38e460cc5e453d3ab0e37bf490) --- pixelstats/pixelstats-vendor.zumapro.rc | 5 +++-- pixelstats/service.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pixelstats/pixelstats-vendor.zumapro.rc b/pixelstats/pixelstats-vendor.zumapro.rc index 5993978..aca60f7 100644 --- a/pixelstats/pixelstats-vendor.zumapro.rc +++ b/pixelstats/pixelstats-vendor.zumapro.rc @@ -1,7 +1,8 @@ on property:sys.boot_completed=1 chown system system /sys/class/power_supply/max77779fg/fg_learning_events + chown system system /sys/class/power_supply/max77779fg/fg_abnormal_events chown system system /sys/class/power_supply/maxfg_base/fg_learning_events - chown system system /sys/devices/platform/maxim,max77779fwu/update_stats + chown system system /sys/devices/platform/maxim,max77779fwu/update_stats start vendor.pixelstats_vendor on post-fs-data chown system system /sys/kernel/metrics/irq/stats_reset @@ -9,4 +10,4 @@ service vendor.pixelstats_vendor /vendor/bin/pixelstats-vendor class hal user system group system context_hub readproc - disabled \ No newline at end of file + disabled diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 690ac75..02fe03b 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -104,7 +104,8 @@ const struct UeventListener::UeventPaths ueventPaths = { .FGModelLoadingPath = { "/sys/class/power_supply/max77779fg/model_state", "/sys/class/power_supply/maxfg_base/model_state" - } + }, + .FGAbnlPath = "/sys/class/power_supply/max77779fg/fg_abnormal_events" }; int main() { From 22fc2d880c11675aa1cb2578a3d25b2a93185a8d Mon Sep 17 00:00:00 2001 From: Chungro Lee Date: Mon, 11 Mar 2024 20:14:38 +0000 Subject: [PATCH 050/150] pixelstats: move learning/model load path to sysfs Reporting learning(relaxation) and model loading once a day * learning and model loading path moved from uevent to sysfs collector. Bug: 329124192 Change-Id: I5f5281e42d15477d586c732372c476c494d880f3 Merged-In: I5f5281e42d15477d586c732372c476c494d880f3 Signed-off-by: Chungro Lee (cherry picked from commit aa343943069e2c4442bfe3a48da8d9a1098ed87e) --- pixelstats/service.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 02fe03b..56744c4 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -80,6 +80,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/class/power_supply/max77779fg/gmsr", "/sys/class/power_supply/maxfg_base/gmsr", }, + .FGLearningPath = { + "/sys/class/power_supply/max77779fg/fg_learning_events", + "/sys/class/power_supply/maxfg_base/fg_learning_events" + }, + .FGModelLoadingPath = { + "/sys/class/power_supply/max77779fg/model_state", + "/sys/class/power_supply/maxfg_base/model_state" + }, .PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state", .WavesPath = "/sys/devices/platform/audiometrics/waves", .AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count", @@ -96,15 +104,7 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { const struct UeventListener::UeventPaths ueventPaths = { .AudioUevent = "/devices/virtual/amcs/amcs", .TypeCPartnerUevent = "PRODUCT_TYPE=", - .FGLearningPath = { - "/sys/class/power_supply/max77779fg/fg_learning_events", - "/sys/class/power_supply/maxfg_base/fg_learning_events" - }, .FwUpdatePath = "/sys/devices/platform/maxim,max77779fwu/update_stats", - .FGModelLoadingPath = { - "/sys/class/power_supply/max77779fg/model_state", - "/sys/class/power_supply/maxfg_base/model_state" - }, .FGAbnlPath = "/sys/class/power_supply/max77779fg/fg_abnormal_events" }; From db4841156edf96ee328fcff0d5f3de11cd4dfa5d Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Wed, 14 Feb 2024 12:27:26 +0000 Subject: [PATCH 051/150] BoardConfig-common.mk: Enable Lazy RCU by default Which should help save power by reducing number of wakeups when the system is idle. Bug: 258241771 Change-Id: I9d7fe310f34c6afb508d6cd47a4aaa7d06c8b54f Signed-off-by: Qais Yousef --- BoardConfig-common.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index 15f6fcc..a3ca747 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -37,7 +37,7 @@ BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10870000 console=ttySAC0,115200 an BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y BOARD_KERNEL_CMDLINE += cgroup_disable=memory BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem -BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all +BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy BOARD_KERNEL_CMDLINE += swiotlb=noforce BOARD_KERNEL_CMDLINE += disable_dma32=on BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4 From 0c5bec3c415fe9eece2b75bca25167d44b53a9eb Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Wed, 14 Feb 2024 12:25:12 +0000 Subject: [PATCH 052/150] init.zumapro.board.rc: Tune scheduler parameter So that we can get better sched latencies by default without having to use prefer_idle and help overall with starvation issues when the system is busy. Bug: 269111781 Change-Id: Ia59382fc841ad3bcf9502a219b1c130fa4588acd Signed-off-by: Qais Yousef --- conf/init.zumapro.board.rc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index ae7c21d..d020e7b 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -522,6 +522,12 @@ on property:sys.boot_completed=1 # Cancel boot devfreq write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 + # Setup scheduler parameters + write /proc/vendor_sched/min_granularity_ns 1000000 + write /proc/vendor_sched/latency_ns 8000000 + write /proc/vendor_sched/max_load_balance_interval 4 + write /proc/vendor_sched/enable_hrtick 1 + # Setup final cpu.uclamp write /proc/vendor_sched/groups/ta/uclamp_min 1 write /proc/vendor_sched/groups/fg/uclamp_min 0 From da3aed8ec34308d2fd540e6c74877d0d0e2b336c Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Thu, 11 Apr 2024 02:05:00 +0000 Subject: [PATCH 053/150] Disable proactive compaction From field data, sometimes kcompactd is pretty activated and can impact critical CUJs. Disable it first to mitigate the impact. Bug: 332916849 Test: boot Change-Id: I22aded6be919279d04b4032a64a6bf15111fe1c3 Signed-off-by: Martin Liu --- conf/init.zumapro.board.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index ae7c21d..8cdd334 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -84,6 +84,9 @@ on init write /sys/block/zram0/comp_algorithm lz77eh write /proc/sys/vm/page-cluster 0 + # disable proactive compaction + write /proc/sys/vm/compaction_proactiveness 0 + # Some user code relies on ro.boot.hardware.revision setprop ro.boot.hardware.revision ${ro.revision} From ce2d2adc76612fc35eeed200cc9fb15c01649c59 Mon Sep 17 00:00:00 2001 From: kadirpili Date: Tue, 26 Mar 2024 04:06:12 +0000 Subject: [PATCH 054/150] Enable USE_GOOGLE_PREBUILT_MODEM_SVC Bug: 275954131 Change-Id: Id44d2e9d2e8c8b6cbfff952ab3d310cb6e2469d7 --- device.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device.mk b/device.mk index 52b406c..ea07495 100644 --- a/device.mk +++ b/device.mk @@ -225,6 +225,10 @@ USE_GOOGLE_DIALER := true USE_GOOGLE_CARRIER_SETTINGS := true endif +ifeq ($(USES_GOOGLE_PREBUILT_MODEM_SVC),true) +USE_GOOGLE_PREBUILT_MODEM_SVC := true +endif + # Audio client implementation for RIL USES_GAUDIO := true From b05549e3a717b4435a82f0f320d5cc2442a300bd Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Thu, 11 Apr 2024 08:19:02 +0000 Subject: [PATCH 055/150] adjust PCP high level align the setting with P23 and we will revisit this once the watermark level is adjusted. Bug: 333838316 Test: boot Change-Id: I9667a59acd0c12679a9fdc464ddf3f68969d0df7 Signed-off-by: Martin Liu --- conf/init.zumapro.board.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 8cdd334..e46f86f 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -84,6 +84,9 @@ on init write /sys/block/zram0/comp_algorithm lz77eh write /proc/sys/vm/page-cluster 0 + # adjust PCP high level + write /proc/sys/vm/percpu_pagelist_high_fraction 430 + # disable proactive compaction write /proc/sys/vm/compaction_proactiveness 0 From a930b61aa397e3714a2bef118bf5fa5db7456077 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Wed, 10 Apr 2024 10:43:18 -0700 Subject: [PATCH 056/150] Zumapro: disable compression on apex Compression on apex disables direct IO for loopback, which introduces double buffering and longer latency. Bug: 298717358 Change-Id: I3b1de10f17931bec7769947bad62a22637a8a528 Signed-off-by: Jaegeuk Kim --- conf/fstab.zumapro.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/fstab.zumapro.in b/conf/fstab.zumapro.in index b2a5f14..9fb13e7 100644 --- a/conf/fstab.zumapro.in +++ b/conf/fstab.zumapro.in @@ -20,6 +20,6 @@ vendor_dlkm /vendor_dlkm /dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait /dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount #/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount -/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=apex,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,zoned_device +/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,zoned_device /dev/block/platform/13200000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount /devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto From 97762978d9afef0f3f3b358f2c4ce32527bfd7b5 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Fri, 12 Apr 2024 07:10:00 +0800 Subject: [PATCH 057/150] dump_power: add maxfg_history permission allow to dump secondary battery history for dual battery projects Bug: 333952062 Change-Id: Id2732c04bdeb7c955e67a427e4d41c224943983a Signed-off-by: Jenny Ho --- dumpstate/dump_power.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dumpstate/dump_power.rc b/dumpstate/dump_power.rc index 125ee4f..60234e2 100644 --- a/dumpstate/dump_power.rc +++ b/dumpstate/dump_power.rc @@ -11,6 +11,9 @@ on init chown system system /dev/battery_history chmod 0644 /dev/battery_history + chown system system /dev/maxfg_history + chmod 0644 /dev/maxfg_history + # Charge stats (write 0) chown system system /sys/class/power_supply/battery/charge_stats From 18db77ac1cbc62916a82f83ea6449d8900dd1852 Mon Sep 17 00:00:00 2001 From: Akash Malik Date: Fri, 12 Apr 2024 22:30:13 +0000 Subject: [PATCH 058/150] Pregrant POST_NOTIFICATIONS to CreativeAssistant This will allow showing persistent, cancellable notifications when downloading models in a foreground service. Demo: https://drive.google.com/file/d/1IoSQsVxUrUN8ohqY3nGbuXvCD-C_78ao/view?usp=drive_link&resourcekey=0-QQ4z3f4XCoIf4H9CdEDa4g Note: I'm submitting to main before, and I will cp into 24D1. Note: Yes, zumapro default permissions also apply to caimito. Bug: 308029155 Test: m Change-Id: I9e9017fc056a5c9f13f481f43317f551413390ca --- default-permissions.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 6230f4c..1988aea 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -65,6 +65,10 @@ + + + + From bc9752ea636883f41b0b6e56779ac172148aba94 Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Mon, 15 Apr 2024 17:25:08 +0800 Subject: [PATCH 059/150] dumpstate: Dump logbuffer_pogo_transport Bug: 328314131 Change-Id: I2ff93e33efa9727d14f21a68e8261221a1091638 Signed-off-by: Kyle Tso --- dumpstate/dump_power.cpp | 3 ++- dumpstate/dump_power.rc | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index bcd65e0..c6f1032 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -299,7 +299,8 @@ void dumpTcpc() { void dumpPdEngine() { const char* pdEngine [][2] { - {"PD Engine logbuffer", "/dev/logbuffer_usbpd"}, + {"TCPC logbuffer", "/dev/logbuffer_usbpd"}, + {"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"}, {"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"}, }; const char* ppsDcMsg = "PPS-dc logbuffer"; diff --git a/dumpstate/dump_power.rc b/dumpstate/dump_power.rc index 60234e2..850a058 100644 --- a/dumpstate/dump_power.rc +++ b/dumpstate/dump_power.rc @@ -103,6 +103,7 @@ on early-boot chown system system /dev/logbuffer_ttf chown system system /dev/logbuffer_tcpm chown system system /dev/logbuffer_usbpd + chown system system /dev/logbuffer_pogo_transport chown system system /dev/logbuffer_wireless chown system system /dev/logbuffer_pca9468 chown system system /dev/logbuffer_ln8411 From cd9e0185ec012c90a02b4206c18ef651482b82e3 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Mon, 15 Apr 2024 16:13:54 +0800 Subject: [PATCH 060/150] dump_power: add dual battery debugfs path Bug: 334773288 Change-Id: If8d69a88b0d3c1fb5ab37b855e1efd265eab618b Signed-off-by: Jenny Ho --- dumpstate/dump_power.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index bcd65e0..e312cb0 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -475,6 +475,11 @@ void dumpChgUserDebug() { const std::string debugfs = "/d/"; const char *maxFgDir = "/d/maxfg"; const char *maxFgStrMatch = "maxfg"; + const char *maxBaseFgDir = "/d/maxfg_base"; + const char *maxBaseFgStrMatch = "maxfg_base"; + const char *maxSecFgDir = "/d/maxfg_secondary"; + const char *maxSecFgStrMatch = "maxfg_secondary"; + const char *max77779FgDir = "/d/max77779fg"; const char *maxFg77779StrMatch = "max77779fg"; const char *chgTblName = "Charging table dump"; const char *chgTblDir = "/d/google_battery/chg_raw_profile"; @@ -495,6 +500,11 @@ void dumpChgUserDebug() { "debug_registers", }; + const char *max1720xFgInfo [] { + "registers", + "nv_registers", + }; + if (isUserBuild()) return; @@ -504,10 +514,19 @@ void dumpChgUserDebug() { for (auto & directory : maxFgInfo) { printValuesOfDirectory(directory, debugfs, maxFgStrMatch); } - } else { + } else if (isValidDir(max77779FgDir)) { for (auto & directory : max77779FgInfo) { printValuesOfDirectory(directory, debugfs, maxFg77779StrMatch); } + } else if (isValidDir(maxBaseFgDir)) { + for (auto & directory : max77779FgInfo) { + printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch); + } + if (isValidDir(maxSecFgDir)) { + for (auto & directory : max1720xFgInfo) { + printValuesOfDirectory(directory, debugfs, maxSecFgStrMatch); + } + } } } From 6f882f635b06cb9abd4602911c97e18542854351 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Mon, 15 Apr 2024 14:31:49 +0000 Subject: [PATCH 061/150] Move tasks from cpuset root group to system group Bug: 328210236 Test: build pass Change-Id: If6f035d989eb6cfd9864b493d07befee95456868 --- conf/init.zumapro.soc.rc | 15 +++++++++++++++ task_profiles.json | 13 +++++++++++++ 2 files changed, 28 insertions(+) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 52205a8..b53139c 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -1,4 +1,16 @@ on init + # Move cpuset root group to system group + mkdir /dev/cpuset/system + copy /dev/cpuset/cpus /dev/cpuset/system/cpus + copy /dev/cpuset/mems /dev/cpuset/system/mems + chown system system /dev/cpuset/system + chown system system /dev/cpuset/system/tasks + chown system system /dev/cpuset/system/cgroup.procs + chmod 0664 /dev/cpuset/system/tasks + chmod 0664 /dev/cpuset/system/cgroup.procs + + copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency @@ -150,6 +162,9 @@ on property:init.svc.vendor.charger=running write /sys/devices/system/cpu/cpu6/online 0 on property:sys.boot_completed=1 + # Move remaining tasks + copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks + # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f diff --git a/task_profiles.json b/task_profiles.json index 732ccd1..a16c507 100644 --- a/task_profiles.json +++ b/task_profiles.json @@ -1,5 +1,18 @@ { "Profiles": [ + { + "Name": "ProcessCapacityNormal", + "Actions": [ + { + "Name": "JoinCgroup", + "Params": + { + "Controller": "cpuset", + "Path": "system" + } + } + ] + }, { "Name": "MaxPerformance", "Actions": [ From 3aace138c59d0d7db2b878b98444fd027b8a6444 Mon Sep 17 00:00:00 2001 From: Hongyang Jiao Date: Tue, 5 Mar 2024 23:32:22 +0000 Subject: [PATCH 062/150] Add betterbug.mk to zumapro Test: manul test Bug: 322543833 Change-Id: I985ed9e7945ff18b83624f3764319f8f64674845 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index a7929a1..ea07495 100644 --- a/device.mk +++ b/device.mk @@ -41,6 +41,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/zumapro/dumpstate/item.mk From f31af5a3a47825f9950814989f4dec4079255485 Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Wed, 17 Apr 2024 15:58:24 +0800 Subject: [PATCH 063/150] powerstats: merge two callback data providers to single Bluetooth HAL and Display HWC will register callback with PowerStats HAL. Single PixelStateResidencyDataProvider supports multiple callback registerings. Bug: 335379104 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: I24da89fbcd26e6472f047a504e2603186925cdc8 Signed-off-by: Darren Hsu --- powerstats/ZumaProCommonDataProviders.cpp | 17 ++++++++--------- powerstats/include/ZumaProCommonDataProviders.h | 3 +-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/powerstats/ZumaProCommonDataProviders.cpp b/powerstats/ZumaProCommonDataProviders.cpp index a6518e0..8b14a6d 100644 --- a/powerstats/ZumaProCommonDataProviders.cpp +++ b/powerstats/ZumaProCommonDataProviders.cpp @@ -636,12 +636,19 @@ void addTPU(std::shared_ptr p) { * that live in user space. Entities are defined here and user space clients of this provider's * vendor service register callbacks to provide state residency data for their given pwoer entity. */ -void addPixelStateResidencyDataProvider(std::shared_ptr p) { +void addPixelStateResidencyDataProvider(std::shared_ptr p, std::string displayName) { auto pixelSdp = std::make_unique(); + // Bluetooth power stats are provided by BT HAL callback pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}}); + // Display VRR power stats are provided by HWC callback. If display entity + // name is empty, the device doesn't support VRR power stats. + if (!displayName.empty()) { + pixelSdp->addEntity(displayName, {}); + } + pixelSdp->start(); p->addStateResidencyDataProvider(std::move(pixelSdp)); @@ -656,18 +663,10 @@ void addDisplayMrr(std::shared_ptr p) { addDisplayMrrByEntity(p, "Display", "/sys/class/drm/card0/device/primary-panel/"); } -void addDisplayVrr(std::shared_ptr p, std::string name) { - auto provider = std::make_unique(); - provider->addEntity(name, {}); - provider->start(); - p->addStateResidencyDataProvider(std::move(provider)); -} - void addZumaProCommonDataProviders(std::shared_ptr p) { setEnergyMeter(p); addAoC(p); - addPixelStateResidencyDataProvider(p); addCPUclusters(p); addSoC(p); addGNSS(p); diff --git a/powerstats/include/ZumaProCommonDataProviders.h b/powerstats/include/ZumaProCommonDataProviders.h index 0356be4..4f1696f 100644 --- a/powerstats/include/ZumaProCommonDataProviders.h +++ b/powerstats/include/ZumaProCommonDataProviders.h @@ -25,14 +25,13 @@ void addCPUclusters(std::shared_ptr p); void addDevfreq(std::shared_ptr p); void addDisplayMrr(std::shared_ptr p); void addDisplayMrrByEntity(std::shared_ptr p, std::string name, std::string path); -void addDisplayVrr(std::shared_ptr p, std::string name); void addDvfsStats(std::shared_ptr p); void addGNSS(std::shared_ptr p); void addGPU(std::shared_ptr p); void addMobileRadio(std::shared_ptr p); void addNFC(std::shared_ptr p); void addPCIe(std::shared_ptr p); -void addPixelStateResidencyDataProvider(std::shared_ptr p); +void addPixelStateResidencyDataProvider(std::shared_ptr p, std::string displayName); void addPowerDomains(std::shared_ptr p); void addSoC(std::shared_ptr p); void addTPU(std::shared_ptr p); From c0a451d4f25b23fa1e12386c95e39de675e4dc66 Mon Sep 17 00:00:00 2001 From: Achigo Liu Date: Wed, 17 Apr 2024 09:35:40 +0000 Subject: [PATCH 064/150] Revert "Move tasks from cpuset root group to system group" Revert submission 26931570-cpuset_system_group Reason for revert: b/335346990 suspend/resume ramdump or black screen Reverted changes: /q/submissionid:26931570-cpuset_system_group Change-Id: I41b3eaeddba8725defa742c5bd4c5377ac3a33fe --- conf/init.zumapro.soc.rc | 15 --------------- task_profiles.json | 13 ------------- 2 files changed, 28 deletions(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index b53139c..52205a8 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -1,16 +1,4 @@ on init - # Move cpuset root group to system group - mkdir /dev/cpuset/system - copy /dev/cpuset/cpus /dev/cpuset/system/cpus - copy /dev/cpuset/mems /dev/cpuset/system/mems - chown system system /dev/cpuset/system - chown system system /dev/cpuset/system/tasks - chown system system /dev/cpuset/system/cgroup.procs - chmod 0664 /dev/cpuset/system/tasks - chmod 0664 /dev/cpuset/system/cgroup.procs - - copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks - chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency @@ -162,9 +150,6 @@ on property:init.svc.vendor.charger=running write /sys/devices/system/cpu/cpu6/online 0 on property:sys.boot_completed=1 - # Move remaining tasks - copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks - # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f diff --git a/task_profiles.json b/task_profiles.json index a16c507..732ccd1 100644 --- a/task_profiles.json +++ b/task_profiles.json @@ -1,18 +1,5 @@ { "Profiles": [ - { - "Name": "ProcessCapacityNormal", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system" - } - } - ] - }, { "Name": "MaxPerformance", "Actions": [ From 9c1848090b7d2e600254dd4ff3039631a5486996 Mon Sep 17 00:00:00 2001 From: Achigo Liu Date: Wed, 17 Apr 2024 09:35:40 +0000 Subject: [PATCH 065/150] Revert "Move tasks from cpuset root group to system group" Revert submission 26931570-cpuset_system_group Reason for revert: b/335346990 suspend/resume ramdump or black screen Reverted changes: /q/submissionid:26931570-cpuset_system_group (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:c0a451d4f25b23fa1e12386c95e39de675e4dc66) Merged-In: I41b3eaeddba8725defa742c5bd4c5377ac3a33fe Change-Id: I41b3eaeddba8725defa742c5bd4c5377ac3a33fe --- conf/init.zumapro.soc.rc | 15 --------------- task_profiles.json | 13 ------------- 2 files changed, 28 deletions(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index b53139c..52205a8 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -1,16 +1,4 @@ on init - # Move cpuset root group to system group - mkdir /dev/cpuset/system - copy /dev/cpuset/cpus /dev/cpuset/system/cpus - copy /dev/cpuset/mems /dev/cpuset/system/mems - chown system system /dev/cpuset/system - chown system system /dev/cpuset/system/tasks - chown system system /dev/cpuset/system/cgroup.procs - chmod 0664 /dev/cpuset/system/tasks - chmod 0664 /dev/cpuset/system/cgroup.procs - - copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks - chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency @@ -162,9 +150,6 @@ on property:init.svc.vendor.charger=running write /sys/devices/system/cpu/cpu6/online 0 on property:sys.boot_completed=1 - # Move remaining tasks - copy_per_line /dev/cpuset/tasks /dev/cpuset/system/tasks - # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f diff --git a/task_profiles.json b/task_profiles.json index a16c507..732ccd1 100644 --- a/task_profiles.json +++ b/task_profiles.json @@ -1,18 +1,5 @@ { "Profiles": [ - { - "Name": "ProcessCapacityNormal", - "Actions": [ - { - "Name": "JoinCgroup", - "Params": - { - "Controller": "cpuset", - "Path": "system" - } - } - ] - }, { "Name": "MaxPerformance", "Actions": [ From 16b3aa94ce52fd155e6dfbfe339729d061caec30 Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Thu, 18 Apr 2024 03:48:16 +0000 Subject: [PATCH 066/150] move common MM settings to gs common folder Bug: 332916849 Bug: 309409009 Test: boot Change-Id: Ie773d9090dbd347e4736b95e34e9c5798f0a124d Signed-off-by: Martin Liu --- conf/init.zumapro.board.rc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index e46f86f..ae7c21d 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -84,12 +84,6 @@ on init write /sys/block/zram0/comp_algorithm lz77eh write /proc/sys/vm/page-cluster 0 - # adjust PCP high level - write /proc/sys/vm/percpu_pagelist_high_fraction 430 - - # disable proactive compaction - write /proc/sys/vm/compaction_proactiveness 0 - # Some user code relies on ro.boot.hardware.revision setprop ro.boot.hardware.revision ${ro.revision} From 402880058c97516165ebeb2b4ee0516e6fc10cea Mon Sep 17 00:00:00 2001 From: sashwinbalaji Date: Fri, 19 Apr 2024 03:14:19 +0800 Subject: [PATCH 067/150] thermal: enable thermal dfs stats Add trip counter path to monitor dfs count. Bug: 333368025 Test: Local build and verify logs Change-Id: I6d83e88c715b2e212ccc8c21f72a2b7a71f8c43b --- pixelstats/service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 56744c4..3368af7 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -64,6 +64,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics", .StormIRQMetricsPath = "/sys/kernel/metrics/irq/storm_irq_metrics", .IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset", + .ThermalStatsPaths = { + "/sys/devices/platform/100a0000.BIG/trip_counter", + "/sys/devices/platform/100a0000.MID/trip_counter", + "/sys/devices/platform/100a0000.LITTLE/trip_counter", + "/sys/devices/platform/100b0000.G3D/trip_counter", + "/sys/devices/platform/100b0000.TPU/trip_counter", + "/sys/devices/platform/100b0000.AUR/trip_counter", + }, .TempResidencyAndResetPaths = { { "/sys/kernel/metrics/thermal/tr_by_group/tmu/stats", From bc854b4539c33e4f4588510834ce06e1d455a7a5 Mon Sep 17 00:00:00 2001 From: Taeju Park Date: Wed, 17 Apr 2024 22:10:29 +0000 Subject: [PATCH 068/150] init: remove lcpi paramter for PMU limit PMU-based soft freq limit no longer use lcpi parameter Bug: 295054083 Change-Id: I0c43c944278852388384c4e8647d3c5dc5b36f94 Signed-off-by: Taeju Park --- conf/init.zumapro.soc.rc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 52205a8..241d846 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -1,13 +1,10 @@ on init - chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable - chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable - chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable @@ -174,13 +171,10 @@ on property:sys.boot_completed=1 setprop vendor.powerhal.init 1 # Set PMU freq limit parameters - write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 0 write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 76 write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1328000 - write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 0 write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 73 write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1836000 - write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold 0 write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 68 write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency 2363000 write /proc/vendor_sched/pmu_poll_time 10 From 26d9c26e0103118b140b82fe73608ec561747ae5 Mon Sep 17 00:00:00 2001 From: Priyanka Advani Date: Fri, 19 Apr 2024 20:44:19 +0000 Subject: [PATCH 069/150] Revert "Enable AIDL media.c2" Revert submission 26384060-c2aidl-pixel-enable Reason for revert: Culprit for b/335892284. Will be verifying through ABTD for confirmation and before submitting the revert. Reverted changes: /q/submissionid:26384060-c2aidl-pixel-enable Change-Id: If9a370f178bed0cb3ad8219e39d25a6b29f41632 --- device.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/device.mk b/device.mk index 707c7d3..7d2095b 100644 --- a/device.mk +++ b/device.mk @@ -802,8 +802,6 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ debug.stagefright.c2inputsurface=-1 \ -PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl - # 2. OpenMAX IL PRODUCT_COPY_FILES += \ device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ From 33d2fb39675bda505b17160cbcacef355e5e82a5 Mon Sep 17 00:00:00 2001 From: Enzo Liao Date: Mon, 18 Mar 2024 22:35:28 +0800 Subject: [PATCH 070/150] Apply common SELinux policies related to ramdumps and coredumps to zumapro. Refer: ag/26620507 Bug: 298102808 Design: go/sys-software-logging Test: Manual (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:831c32fac6b7ff6857c795c929eac2fc1b2430f6) Merged-In: I975b5ac3fa9e13692903cd92bdf094520736f8b1 Change-Id: I975b5ac3fa9e13692903cd92bdf094520736f8b1 --- device.mk | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/device.mk b/device.mk index ea07495..121e35f 100644 --- a/device.mk +++ b/device.mk @@ -16,7 +16,7 @@ include device/google/gs-common/device.mk include device/google/gs-common/gs_watchdogd/watchdog.mk -include device/google/gs-common/ramdump/ramdump.mk +include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk include device/google/gs-common/soc/soc.mk include device/google/gs-common/modem/modem.mk include device/google/gs-common/aoc/aoc.mk @@ -1137,9 +1137,6 @@ else BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app endif -# sscoredump -include hardware/google/pixel/sscoredump/device.mk - # RadioExt Version USES_RADIOEXT_V1_7 = true From 72c31fc3e4515eaf1ffccfb225c3bee52e5988b2 Mon Sep 17 00:00:00 2001 From: Donnie Pollitz Date: Wed, 6 Mar 2024 15:46:07 +0100 Subject: [PATCH 071/150] storageproxyd: Integrate new command arguments Background: * Adds argument to explicitly define storage backings for secure storage files. Storageproxy will also internally manage the creation of symlinks as necessary (Useful for determining if a userdata wipe has occurred). * Adds an argument to define the max size for file backed storages. Bug: 324989972 Test: Storage port tests running Change-Id: Iafdf6d87a786665c118cd652243a34842f5f789d Signed-off-by: Donnie Pollitz --- conf/init.zumapro.board.rc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index d020e7b..ced44da 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -657,16 +657,20 @@ on post-fs-data symlink /mnt/vendor/persist/ss /data/vendor/ss/persist chown root system /data/vendor/ss/persist chmod 0770 /data/vendor/ss/persist - symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0 - symlink /dev/block/platform/13200000\.ufs/by-name/trusty_userdata /data/vendor/ss/0 chown system system /data/vendor/ss/0 chown system system /data/vendor/ss/persist/0 chown system system /data/vendor/ss/persist/nsp restart storageproxyd -service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ - -r /dev/sg1 -p /data/vendor/ss -t ufs +service storageproxyd /vendor/bin/storageproxyd \ + -d /dev/trusty-ipc-dev0 \ + -r /dev/sg1 \ + -p /data/vendor/ss \ + -t ufs \ + -f 0:/dev/block/platform/13200000\.ufs/by-name/trusty_userdata \ + -f persist/0:/dev/block/platform/13200000\.ufs/by-name/trusty_persist \ + -m /dev/block/platform/13200000\.ufs/by-name/trusty_userdata class early_hal user system group system From ed733ea5073f2e19360f64af95690805ff2d5ef3 Mon Sep 17 00:00:00 2001 From: Akash Malik Date: Fri, 12 Apr 2024 22:30:13 +0000 Subject: [PATCH 072/150] Pregrant POST_NOTIFICATIONS to CreativeAssistant This will allow showing persistent, cancellable notifications when downloading models in a foreground service. Demo: https://drive.google.com/file/d/1IoSQsVxUrUN8ohqY3nGbuXvCD-C_78ao/view?usp=drive_link&resourcekey=0-QQ4z3f4XCoIf4H9CdEDa4g Note: I'm submitting to main before, and I will cp into 24D1. Note: Yes, zumapro default permissions also apply to caimito. Bug: 308029155 Test: m (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:18db77ac1cbc62916a82f83ea6449d8900dd1852) Merged-In: I9e9017fc056a5c9f13f481f43317f551413390ca Change-Id: I9e9017fc056a5c9f13f481f43317f551413390ca --- default-permissions.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 6230f4c..1988aea 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -65,6 +65,10 @@ + + + + From a0801299cef33397d8251b169847fc9311d408be Mon Sep 17 00:00:00 2001 From: silens Date: Fri, 19 Apr 2024 03:48:39 +0000 Subject: [PATCH 073/150] Remove "bluetooth.profile.bap.broadcast.assist.enabled" in "zumapro/device.mk" This prop should not be set here. If enable broadcast assistant, set it directly in device.mk of the product. Bug: 322258710 Test: build Change-Id: Iabb77e0e65fed6cb725c96bfdc451da0c2003fb3 --- device.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/device.mk b/device.mk index ea07495..fab166a 100644 --- a/device.mk +++ b/device.mk @@ -180,7 +180,6 @@ PRODUCT_PRODUCT_PROPERTIES += \ bluetooth.profile.asha.central.enabled=true \ bluetooth.profile.a2dp.source.enabled=true \ bluetooth.profile.avrcp.target.enabled=true \ - bluetooth.profile.bap.broadcast.assist.enabled=true \ bluetooth.profile.bap.unicast.server.enabled=true \ bluetooth.profile.bas.client.enabled=true \ bluetooth.profile.csip.set_coordinator.enabled=true \ From 95ec9408044d3d18516d3d1f502c7ad64d4bed09 Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Tue, 23 Apr 2024 14:23:36 +0800 Subject: [PATCH 074/150] dump_power: add max77779 fwupdate logbuffer into bugreport Bug: 334198978 Change-Id: I62fcde4a49024ccacc96a3139bb3284c41ceea58 Signed-off-by: Jenny Ho --- dumpstate/dump_power.cpp | 1 + dumpstate/dump_power.rc | 1 + 2 files changed, 2 insertions(+) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index e312cb0..58a4fcc 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -326,6 +326,7 @@ void dumpBatteryHealth() { {"TTF stats", "/sys/class/power_supply/battery/ttf_stats"}, {"aacr_state", "/sys/class/power_supply/battery/aacr_state"}, {"pairing_state", "/sys/class/power_supply/battery/pairing_state"}, + {"fwupdate", "/dev/logbuffer_max77779_fwupdate"} }; const char* maxqName = "maxq logbuffer"; diff --git a/dumpstate/dump_power.rc b/dumpstate/dump_power.rc index 60234e2..67d7ea1 100644 --- a/dumpstate/dump_power.rc +++ b/dumpstate/dump_power.rc @@ -108,6 +108,7 @@ on early-boot chown system system /dev/logbuffer_ln8411 chown system system /dev/logbuffer_cpm chown system system /dev/logbuffer_wc68 + chown system system /dev/logbuffer_max77779_fwupdate on property:sys.boot_completed=1 # gvotables for dumpstate From 57325ea11e00e6ab40f3f2342563ce664aef50de Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Tue, 23 Apr 2024 08:51:23 +0000 Subject: [PATCH 075/150] Reapply "Enable AIDL media.c2" This reverts commit 26d9c26e0103118b140b82fe73608ec561747ae5. Bug: 321808716 Change-Id: I1d8abcc5746c1531e7f18949328183c7343cc828 --- device.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device.mk b/device.mk index a527688..2317629 100644 --- a/device.mk +++ b/device.mk @@ -811,6 +811,8 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ debug.stagefright.c2inputsurface=-1 \ +PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl + # 2. OpenMAX IL PRODUCT_COPY_FILES += \ device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ From 6696e265ee3adb97ab4af993d26f1aee3f19f35f Mon Sep 17 00:00:00 2001 From: Donnie Pollitz Date: Wed, 6 Mar 2024 15:46:07 +0100 Subject: [PATCH 076/150] storageproxyd: Integrate new command arguments Background: * Adds argument to explicitly define storage backings for secure storage files. Storageproxy will also internally manage the creation of symlinks as necessary (Useful for determining if a userdata wipe has occurred). * Adds an argument to define the max size for file backed storages. Bug: 324989972 Test: Storage port tests running Signed-off-by: Donnie Pollitz (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:72c31fc3e4515eaf1ffccfb225c3bee52e5988b2) Merged-In: Iafdf6d87a786665c118cd652243a34842f5f789d Change-Id: Iafdf6d87a786665c118cd652243a34842f5f789d --- conf/init.zumapro.board.rc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 2279e47..7c67878 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -663,16 +663,20 @@ on post-fs-data symlink /mnt/vendor/persist/ss /data/vendor/ss/persist chown root system /data/vendor/ss/persist chmod 0770 /data/vendor/ss/persist - symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0 - symlink /dev/block/platform/13200000\.ufs/by-name/trusty_userdata /data/vendor/ss/0 chown system system /data/vendor/ss/0 chown system system /data/vendor/ss/persist/0 chown system system /data/vendor/ss/persist/nsp restart storageproxyd -service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ - -r /dev/sg1 -p /data/vendor/ss -t ufs +service storageproxyd /vendor/bin/storageproxyd \ + -d /dev/trusty-ipc-dev0 \ + -r /dev/sg1 \ + -p /data/vendor/ss \ + -t ufs \ + -f 0:/dev/block/platform/13200000\.ufs/by-name/trusty_userdata \ + -f persist/0:/dev/block/platform/13200000\.ufs/by-name/trusty_persist \ + -m /dev/block/platform/13200000\.ufs/by-name/trusty_userdata class early_hal user system group system From 84555a6e6a136ea714082e54d5211df5429b3433 Mon Sep 17 00:00:00 2001 From: Kevin Ying Date: Mon, 22 Apr 2024 22:31:39 +0000 Subject: [PATCH 077/150] Add sepolicy for power_state node Bug: 329703995 Test: manual - used camera Change-Id: I6df9b149fd977613d01b0fd20a0fe92ad809ae70 Signed-off-by: Kevin Ying --- conf/init.zumapro.board.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 2279e47..9b84387 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -433,6 +433,7 @@ on fs chown system system /sys/devices/platform/exynos-drm/primary-panel/refresh_ctrl chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option + chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/debug chown system system /sys/class/dqe0/atc/ambient_light From b480785fcfd0bdc59276588d8300cc1154509329 Mon Sep 17 00:00:00 2001 From: George Lee Date: Wed, 24 Apr 2024 13:29:17 +0000 Subject: [PATCH 078/150] init: zumapro: Remove all BCL related initial val The initialization will be reverted to device tree instead. Bug: 336064574 Test: Confirm no race condition during boot Change-Id: I57fd893fb22a2cf9d3b007d023edd6989b3db1ba Signed-off-by: George Lee --- conf/init.zumapro.board.rc | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index e46f86f..6e29767 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -700,29 +700,6 @@ on post-fs-data chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset -on property:vendor.all.modules.ready=1 - # BCL - write /sys/devices/platform/cpupm/cpupm/cpd_cl1 0 #Disable power down - write /sys/devices/platform/cpupm/cpupm/cpd_cl2 0 #Disable power down - write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #OCP - write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS - write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS - write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0xfff041c1 #OCP - write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP - write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04381 #DFS - write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 #DFS - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3000 - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000 - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000 - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500 - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_tpu_lvl 13500 - write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_gpu_lvl 9000 - write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1 - write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1 - write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1 - write /sys/devices/platform/cpupm/cpupm/cpd_cl1 1 #Enable power down - write /sys/devices/platform/cpupm/cpupm/cpd_cl2 1 #Enable power down - on property:vendor.thermal.link_ready=1 chown system system /dev/thermal/tz-by-name/soc/mode chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp From 6d55164a24a5d8678fedab6c180497063bdabbcb Mon Sep 17 00:00:00 2001 From: Taeju Park Date: Fri, 19 Apr 2024 22:35:35 +0000 Subject: [PATCH 079/150] init: tuning PMU paramter Bug: 310237445 Change-Id: I91e1e9b112bb34960ea9981e03ae6c6826d67e3c Signed-off-by: Taeju Park --- conf/init.zumapro.soc.rc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 241d846..ec0edf3 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -173,9 +173,9 @@ on property:sys.boot_completed=1 # Set PMU freq limit parameters write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 76 write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1328000 - write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 73 - write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1836000 - write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 68 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 59 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1795000 + write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 62 write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency 2363000 write /proc/vendor_sched/pmu_poll_time 10 From 9c4adf4b9a2bd5ef6adb7abc6a5f68f189820799 Mon Sep 17 00:00:00 2001 From: malikakash Date: Fri, 26 Apr 2024 23:18:49 +0000 Subject: [PATCH 080/150] Pregrant media access to CreativeAssistant - Give READ_MEDIA_IMAGES to CreativeAssistant. - Since these is a protectionLevel=dangerous permission, adding them to privapp-permissions does not work (that is just for privileged|signature permissions). - I've tested that this change works, see https://screenshot.googleplex.com/746UujEb3ovc2Dg Bug: 308029155 Test: adb shell dumpsys package com.google.android.apps.pixel.creativeassistant | grep granted=true shows android.permission.READ_EXTERNAL_STORAGE: granted=true, flags=[ GRANTED_BY_DEFAULT|RESTRICTION_SYSTEM_EXEMPT|RESTRICTION_UPGRADE_EXEMPT] android.permission.READ_MEDIA_IMAGES: granted=true, flags=[ GRANTED_BY_DEFAULT] Change-Id: Ief9f862c580e839946242fcc323514e5f9e5a162 --- default-permissions.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 1988aea..8516cec 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -67,6 +67,9 @@ + + + From b89dbd78c42426b5f993e54603956ff570f35b82 Mon Sep 17 00:00:00 2001 From: Spade Lee Date: Fri, 26 Apr 2024 14:47:22 +0000 Subject: [PATCH 081/150] pixelstats: zumapro: add all logbuffer paths Bug: 335934710 Change-Id: I2d6d03fa323196efe3c9dda5593bd039bfbc397c Signed-off-by: Spade Lee --- pixelstats/service.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 3368af7..ada8acc 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -88,14 +88,16 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/class/power_supply/max77779fg/gmsr", "/sys/class/power_supply/maxfg_base/gmsr", }, - .FGLearningPath = { - "/sys/class/power_supply/max77779fg/fg_learning_events", - "/sys/class/power_supply/maxfg_base/fg_learning_events" - }, .FGModelLoadingPath = { "/sys/class/power_supply/max77779fg/model_state", "/sys/class/power_supply/maxfg_base/model_state" }, + .FGLogBufferPath = { + "/dev/logbuffer_maxfg_monitor", + "/dev/logbuffer_max77779fg_monitor", + "/dev/logbuffer_maxfg_base_monitor", + "/dev/logbuffer_maxfg_secondary_monitor" + }, .PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state", .WavesPath = "/sys/devices/platform/audiometrics/waves", .AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count", @@ -106,7 +108,7 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count", .OffloadEffectsIdPath = "/sys/devices/platform/audiometrics/offload_effects_id", .OffloadEffectsDurationPath = "/sys/devices/platform/audiometrics/offload_effects_duration", - .BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage" + .BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage", }; const struct UeventListener::UeventPaths ueventPaths = { From 5ff0e38435cf110679b13f66c6b5af712e45cf69 Mon Sep 17 00:00:00 2001 From: Qian-Hao Huang Date: Tue, 23 Apr 2024 23:35:13 +0800 Subject: [PATCH 082/150] zumapro: Change the path of prebuilt fips140.ko Placing the fips140.ko at the same level as other kernel modules makes it easier for automation tools to handle all of them. Bug: 331791671 Change-Id: I513b998564e9a7eda39fec8bddc3dc9cb4ee0e30 Signed-off-by: Qian-Hao Huang --- BoardConfig-common.mk | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index a3ca747..bf05226 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -396,11 +396,19 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist -BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load)) -ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD +# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load +BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140.ko +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k))) + +# Kernel modules that are listed in vendor_kernel_boot.modules.load +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load)) +ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE $(error vendor_kernel_boot.modules.load not found or empty) endif -BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD))) +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA) +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE) +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA)) +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE))) BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load)) ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD From a40a46cc833462e7fd98fa21b0a53840a0629b2d Mon Sep 17 00:00:00 2001 From: Peter Lin Date: Wed, 27 Mar 2024 14:23:09 +0000 Subject: [PATCH 083/150] Screen Brightening/Darkening thresholds update Bug: 327934902 test: dumpsys display Change-Id: Ieceaf9c9f50ca31545400220a3b3ac07310112f6 --- .../base/core/res/res/values/config.xml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index ecfb1c9..53282f6 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -416,6 +416,55 @@ 2050 + + + 0.5 + 0.6 + 0.9 + + + + + 100 + 100 + 40 + 10 + + + + + 200 + 200 + 200 + 200 + + 90198 From 3584b14a538f45c3eb0d74c697cd348f783bda45 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Mon, 29 Apr 2024 23:28:21 +0000 Subject: [PATCH 084/150] Restrict running pa_kill threads on middle/little Bug: 298662883 Test: Confirmed pa_kill threads's affinity with taskset -p pid Change-Id: Iec47f3f44450d5271a1ef3a4ab51f9f37990bb6d Signed-off-by: Minchan Kim --- conf/init.zumapro.soc.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index ec0edf3..2c6d4d5 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -149,6 +149,7 @@ on property:init.svc.vendor.charger=running on property:sys.boot_completed=1 # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f + write /sys/kernel/vendor_mm/pa_kill/cpu_affinity 7f # Restore prefer idle write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff From 2727885eabc6570b01e2672dcca9c8414566d5fe Mon Sep 17 00:00:00 2001 From: Thomas Nguyen Date: Thu, 25 Apr 2024 20:43:01 -0700 Subject: [PATCH 085/150] Use the combination of US territory and Skylo satellite coverage for geofencing data Bug: 329444890 Test: s2storage_tests SatelliteS2StorageTests SatelliteToolsTests SatelliteAccessControllerTest SatelliteManagerTestOnMockService Manual test with Skylo demo and real mode Change-Id: Ibf6d5f6001fdfdc7d476e4eb68596351f6e5143c --- telephony/sats2.dat | Bin 73548 -> 63474 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/telephony/sats2.dat b/telephony/sats2.dat index 0e8ecec87d851e654adf54448f0cb020fbe2c091..577b7af10e8be85d0220c82b6655e21d98fcff2e 100644 GIT binary patch literal 63474 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 literal 73548 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 Date: Tue, 23 Apr 2024 00:31:18 +0800 Subject: [PATCH 086/150] audio: enable config_safe_media_volume_enabled on US Bug: 337063847 Test: build pass Change-Id: Ib2f160e95d97a421e19c93ae917abea198a21e13 Signed-off-by: Carter Hsu --- .../core/res/res/values-mcc310/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc311/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc312/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc313/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc314/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc315/config.xml | 25 +++++++++++++++++++ .../core/res/res/values-mcc316/config.xml | 25 +++++++++++++++++++ 7 files changed, 175 insertions(+) create mode 100644 overlay/frameworks/base/core/res/res/values-mcc310/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc311/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc312/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc313/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc314/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc315/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values-mcc316/config.xml diff --git a/overlay/frameworks/base/core/res/res/values-mcc310/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc310/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc311/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc311/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc312/config.xml b/overlay/frameworks/base/core/res/res/values-mcc312/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc312/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc313/config.xml b/overlay/frameworks/base/core/res/res/values-mcc313/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc313/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc314/config.xml b/overlay/frameworks/base/core/res/res/values-mcc314/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc314/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc315/config.xml b/overlay/frameworks/base/core/res/res/values-mcc315/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc315/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc316/config.xml b/overlay/frameworks/base/core/res/res/values-mcc316/config.xml new file mode 100644 index 0000000..6a8c43b --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc316/config.xml @@ -0,0 +1,25 @@ + + + + + + + true + + From 909711bbdfd4f768e917b4570665ff83d9594ebc Mon Sep 17 00:00:00 2001 From: Rios Kao Date: Tue, 30 Apr 2024 09:07:23 +0000 Subject: [PATCH 087/150] audio: add debug interface soong value note: Using the flag to filter all debugging purpose interface from the build. Test: build pass Bug: 332490210 Change-Id: I06a8048c0d28b58c3965ad110f41255c92d1b6d5 --- BoardConfig-common.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index a3ca747..5cf00b2 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -245,6 +245,7 @@ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) $(call soong_config_set,aoc_audio_func,dump_usecase_data,true) $(call soong_config_set,aoc_audio_func,hal_socket_control,true) $(call soong_config_set,aoc_audio_func,record_tuning_keys,true) +$(call soong_config_set,aoc_audio_func,aidl_command_interface,true) endif ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) From 14f5ee626df58f547598e8290128faa568c33ebd Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 2 May 2024 16:01:18 +0800 Subject: [PATCH 088/150] Update health AIDL HAL to V3 Bug: 337145658 Test: TH Test: vts-tradefed run vts -m vts_treble_vintf_vendor_test Change-Id: I00040dcbf59f89fdeff261d6e5511108d147da42 Signed-off-by: Jack Wu --- health/android.hardware.health-service.zumapro.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/health/android.hardware.health-service.zumapro.xml b/health/android.hardware.health-service.zumapro.xml index 1fe9b8d..2acaaba 100644 --- a/health/android.hardware.health-service.zumapro.xml +++ b/health/android.hardware.health-service.zumapro.xml @@ -1,7 +1,7 @@ android.hardware.health - 2 + 3 IHealth/default From 95378b277aedc416da5431abebb808b6956406a8 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 2 May 2024 16:01:18 +0800 Subject: [PATCH 089/150] Update health AIDL HAL to V3 Bug: 337145658 Test: TH Test: vts-tradefed run vts -m vts_treble_vintf_vendor_test Change-Id: I00040dcbf59f89fdeff261d6e5511108d147da42 Merged-In: I00040dcbf59f89fdeff261d6e5511108d147da42 Signed-off-by: Jack Wu (cherry picked from commit 14f5ee626df58f547598e8290128faa568c33ebd) --- health/android.hardware.health-service.zumapro.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/health/android.hardware.health-service.zumapro.xml b/health/android.hardware.health-service.zumapro.xml index 1fe9b8d..2acaaba 100644 --- a/health/android.hardware.health-service.zumapro.xml +++ b/health/android.hardware.health-service.zumapro.xml @@ -1,7 +1,7 @@ android.hardware.health - 2 + 3 IHealth/default From 650cc5eef766f4681b524f960cec5149babd0361 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Thu, 2 May 2024 10:58:06 -0600 Subject: [PATCH 090/150] init: zumapro: update thermal uclamp cooling device owner Update the thermal uclamp cooling device cur_state owner to system. This will allow thermal-HAL to update any mitigation. Bug: 338150183 Test: Validate the node permission Change-Id: I8cd35b12442ab6a314d8c9b9375877dc62cd19b6 Signed-off-by: Ram Chandrasekar --- conf/init.zumapro.board.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 43230ca..2dc0b16 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -768,6 +768,9 @@ on property:vendor.thermal.link_ready=1 chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-0/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-4/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-7/cur_state on charger # Use charger thermal config From ac715ab11d898d1f92b17a914965ef81c390ff05 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Thu, 2 May 2024 10:58:06 -0600 Subject: [PATCH 091/150] init: zumapro: update thermal uclamp cooling device owner Update the thermal uclamp cooling device cur_state owner to system. This will allow thermal-HAL to update any mitigation. Bug: 338150183 Test: Validate the node permission Change-Id: I8cd35b12442ab6a314d8c9b9375877dc62cd19b6 Signed-off-by: Ram Chandrasekar --- conf/init.zumapro.board.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 8f000a3..901f1d4 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -770,6 +770,9 @@ on property:vendor.thermal.link_ready=1 chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-0/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-4/cur_state + chown system system /dev/thermal/cdev-by-name/thermal-uclamp-7/cur_state on charger # Use charger thermal config From debc35444a9fc728657cc963bd0b5ae5f746aace Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Fri, 3 May 2024 11:46:13 +0800 Subject: [PATCH 092/150] powerstats: introduce Modem PCIe GEN state residency This is a feature request from Modem team to add new state residency stats for Modem PCIe GEN speed. Bug: 338278462 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: I909d7ac7b42d0b91633796f7a868fa525891e719 Signed-off-by: Darren Hsu --- powerstats/ZumaProCommonDataProviders.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/powerstats/ZumaProCommonDataProviders.cpp b/powerstats/ZumaProCommonDataProviders.cpp index 8b14a6d..d63b176 100644 --- a/powerstats/ZumaProCommonDataProviders.cpp +++ b/powerstats/ZumaProCommonDataProviders.cpp @@ -475,6 +475,24 @@ void addPCIe(std::shared_ptr p) { p->addStateResidencyDataProvider(std::make_unique( "/sys/devices/platform/13120000.pcie/power_stats", pcieWifiCfgs)); + + // Add PCIe Modem GEN + const GenericStateResidencyDataProvider::StateResidencyConfig modemGenStateConfig = { + .entryCountSupported = true, + .entryCountPrefix = "count:", + .totalTimeSupported = true, + .totalTimePrefix = "duration msec:", + }; + const std::vector> modemGenStateHeaders = { + std::make_pair("GEN1", "Gen1:"), + std::make_pair("GEN3", "Gen3:"), + }; + const std::vector modemGenCfgs = { + {generateGenericStateResidencyConfigs(modemGenStateConfig, modemGenStateHeaders), + "PCIe-Modem-GEN", "link_speed:"} + }; + p->addStateResidencyDataProvider(std::make_unique( + "/sys/devices/platform/12100000.pcie/link_duration", modemGenCfgs)); } void addWifi(std::shared_ptr p) { From 7c8c88823dec43b0d4194d9e991c37fccda0e148 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Tue, 30 Apr 2024 18:14:35 -0700 Subject: [PATCH 093/150] Adjust the fstab option for ZUFS Bug: 336319772 Change-Id: Ic3088e693d4dd9f784215da27a5c4b6c47759ef2 Signed-off-by: Jaegeuk Kim --- conf/fstab.zumapro.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/fstab.zumapro.in b/conf/fstab.zumapro.in index 9fb13e7..779b259 100644 --- a/conf/fstab.zumapro.in +++ b/conf/fstab.zumapro.in @@ -20,6 +20,6 @@ vendor_dlkm /vendor_dlkm /dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait /dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount #/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount -/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,zoned_device +/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device /dev/block/platform/13200000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount /devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto From 0e5cd769fe31ee00a4e366502f1c35d048c3c17e Mon Sep 17 00:00:00 2001 From: Wayne Lin Date: Sat, 17 Feb 2024 12:33:52 +0800 Subject: [PATCH 094/150] gps: maintain one solution Bug: 315915958 Test: build pass and GPS function works Change-Id: I873fca68597188ccca7cd83e6665da5f047068aa --- conf/init.zumapro.board.rc | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 2dc0b16..31c34ce 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -294,26 +294,6 @@ on post-fs-data # Video data mkdir /data/vendor/media 0700 mediacodec mediacodec -on post-fs-data - # GPS - mkdir /data/vendor/gps 0771 system system - chown system system /data/vendor/gps - rm /data/vendor/gps/gps_started - rm /data/vendor/gps/glonass_started - rm /data/vendor/gps/beidou_started - rm /data/vendor/gps/smd_started - rm /data/vendor/gps/sv_cno.info - - chown gps system /sys/devices/platform/111e0000.spi/spi_master/spi21/spi21.0/nstandby - chmod 0664 /dev/ttyBCM - chown gps system /dev/ttyBCM - chmod 0664 /dev/bbd_control - chown gps system /dev/bbd_control - chmod 0664 /dev/bbd_patch - chown gps system /dev/bbd_patch - chmod 0664 /dev/bbd_sensor - chown gps system /dev/bbd_sensor - on early-boot # Wait for insmod_sh to finish all common modules wait_for_prop vendor.common.modules.ready 1 From 6519a1598bd25f9b5e2b9f9900986fe96cee65aa Mon Sep 17 00:00:00 2001 From: Wayne Lin Date: Sat, 17 Feb 2024 12:33:52 +0800 Subject: [PATCH 095/150] gps: maintain one solution Bug: 315915958 Test: build pass and GPS function works Change-Id: I873fca68597188ccca7cd83e6665da5f047068aa Merged-In: I873fca68597188ccca7cd83e6665da5f047068aa --- conf/init.zumapro.board.rc | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 2279e47..741f011 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -300,26 +300,6 @@ on post-fs-data # Video data mkdir /data/vendor/media 0700 mediacodec mediacodec -on post-fs-data - # GPS - mkdir /data/vendor/gps 0771 system system - chown system system /data/vendor/gps - rm /data/vendor/gps/gps_started - rm /data/vendor/gps/glonass_started - rm /data/vendor/gps/beidou_started - rm /data/vendor/gps/smd_started - rm /data/vendor/gps/sv_cno.info - - chown gps system /sys/devices/platform/111e0000.spi/spi_master/spi21/spi21.0/nstandby - chmod 0664 /dev/ttyBCM - chown gps system /dev/ttyBCM - chmod 0664 /dev/bbd_control - chown gps system /dev/bbd_control - chmod 0664 /dev/bbd_patch - chown gps system /dev/bbd_patch - chmod 0664 /dev/bbd_sensor - chown gps system /dev/bbd_sensor - on early-boot # Wait for insmod_sh to finish all common modules wait_for_prop vendor.common.modules.ready 1 From a4c83326a4c2dc9af6fe14b50199039fb457d43f Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Wed, 8 May 2024 10:08:59 +0800 Subject: [PATCH 096/150] powerstats: fix GPU and TPU energy consumer issue 1. S2S_VDD_G3D is only one monitored rail for GPU. 2. TPU rail has been renamed to S7M_VDD_TPU. 3. TPU frequencies have been changed. Bug: 339320507 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: I5e965e9d58a1ae08706fb46c6a4fc9549a889352 Signed-off-by: Darren Hsu --- powerstats/ZumaProCommonDataProviders.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/powerstats/ZumaProCommonDataProviders.cpp b/powerstats/ZumaProCommonDataProviders.cpp index d63b176..4bd3559 100644 --- a/powerstats/ZumaProCommonDataProviders.cpp +++ b/powerstats/ZumaProCommonDataProviders.cpp @@ -365,7 +365,7 @@ void addGPU(std::shared_ptr p) { {"890000", 4333}}; p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p, - EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D", "S8S_VDD_G3D_L2"}, + EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D"}, {{UID_TIME_IN_STATE, path + "/uid_time_in_state"}}, stateCoeffs)); @@ -638,12 +638,15 @@ void addTPU(std::shared_ptr p) { stateCoeffs = { // TODO (b/197721618): Measuring the TPU power numbers {"226000", 10}, - {"627000", 20}, - {"845000", 30}, - {"1066000", 40}}; + {"455000", 20}, + {"627000", 30}, + {"712000", 40}, + {"845000", 50}, + {"967000", 60}, // Do not change to 1066000 + {"1119000", 70}}; p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p, - EnergyConsumerType::OTHER, "TPU", {"S10M_VDD_TPU"}, + EnergyConsumerType::OTHER, "TPU", {"S7M_VDD_TPU"}, {{UID_TIME_IN_STATE, "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage"}}, stateCoeffs)); } From 836afc9c1c62d60fc85e2e7716be4695e387ced5 Mon Sep 17 00:00:00 2001 From: Leo Chen Date: Thu, 25 Apr 2024 06:25:14 +0000 Subject: [PATCH 097/150] Update IDisplay to V11-V12 V12 is not frozen yet. We should still allow V11 for `next` build. Test: trigger test build Bug: 309897479 Bug: 303162192 Change-Id: I00e8cb20fc76bbe49df2015cab7d869d4cd45437 Signed-off-by: Leo Chen --- device_framework_matrix_product.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 25259b0..2aa37e9 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -114,7 +114,7 @@ com.google.hardware.pixel.display - 11 + 11-12 IDisplay default From a8cd0142423508e036e221b9efc32611988231be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Wagner?= Date: Sat, 2 Mar 2024 14:10:44 +0000 Subject: [PATCH 098/150] Use 2024-03-01 deqp levels for GLES and Vulkan Bug: 327589279 Change-Id: I655dde7d5d33078cc629c213ea0a8ef5c8ce77bc --- device.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device.mk b/device.mk index 28a6d87..3c58041 100644 --- a/device.mk +++ b/device.mk @@ -304,8 +304,8 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ - frameworks/native/data/etc/android.software.vulkan.deqp.level-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 + frameworks/native/data/etc/android.software.vulkan.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ + frameworks/native/data/etc/android.software.opengles.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml #endif From b7aa5720ed36152dccbe1a870c7343985079d962 Mon Sep 17 00:00:00 2001 From: Weizhung Ding Date: Thu, 21 Sep 2023 11:19:36 +0000 Subject: [PATCH 099/150] add display port stats paths for zumapro devices. Bug: 339598226 Test: build and check stats Change-Id: Id60d389cc644c90b6b4df1df5ebedec97d2bc996 --- pixelstats/service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index ada8acc..6e32540 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -109,6 +109,14 @@ 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", + .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 1d192f839cbe5f02c854e4e5e659c3c6edc3aa1c Mon Sep 17 00:00:00 2001 From: Weizhung Ding Date: Thu, 9 Nov 2023 07:37:59 +0000 Subject: [PATCH 100/150] add HDCP stats paths for zumapro devices. Bug: 339598226 Test: build and check stats Change-Id: Ib4bb9f7c05976b1ed60f0701a352f2c5ecb3c078 --- pixelstats/service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 6e32540..09ae219 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -116,6 +116,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 21ed732f65d63681ecbce0263e9ca736cbf7adec Mon Sep 17 00:00:00 2001 From: Hakjun Choi Date: Thu, 9 May 2024 16:10:52 +0000 Subject: [PATCH 101/150] Add package name and intent action to handle oem-enabled satellite SOS messaging Bug: 338469596 Test: manually test whether oem enabled satellite sos messaging is invoked Change-Id: I80f88f2a909b5dbd2f42fa5e90d2e5b7ee74941d --- overlay/frameworks/base/core/res/res/values/config.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 53282f6..ace02ca 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -499,4 +499,10 @@ config_satellite_modem_image_switching_duration_millis. --> 180000 + + + com.google.android.apps.stargate;com.google.android.apps.stargate.questionnaire.QuestionnaireHomeActivity + + + com.google.android.apps.stargate.ACTION_ESOS_QUESTIONNAIRE From 9df41138995dbfe29e5a8eb3ff222956d6fb5fb1 Mon Sep 17 00:00:00 2001 From: Weizhung Ding Date: Thu, 9 May 2024 19:06:17 +0000 Subject: [PATCH 102/150] add display stats paths for zumapro devices. Bug: 339598226 Test: build and check stats Change-Id: I3835dbe8ff4328b861e6ad6baf2942ae5891e080 --- pixelstats/service.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 09ae219..c3b8ee2 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -124,6 +124,12 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/devices/platform/hdcp/hdcp1_success_count", "/sys/devices/platform/hdcp/hdcp1_fail_count", "/sys/devices/platform/hdcp/hdcp0_count", + }, + .DisplayStatsPaths = { + "/sys/devices/platform/exynos-drm/primary-panel/error_count_te", + "/sys/devices/platform/exynos-drm/primary-panel/error_count_unknown", + "/sys/devices/platform/exynos-drm/secondary-panel/error_count_te", + "/sys/devices/platform/exynos-drm/secondary-panel/error_count_unknown", } }; From 34a314e6a04c7ab67d8e651a741c524d0677c3cb Mon Sep 17 00:00:00 2001 From: Chinmay Dhodapkar Date: Wed, 8 May 2024 06:52:37 +0000 Subject: [PATCH 103/150] Effectively disable TN scanning timer Max out TN scanning timer to 24 days. This will essentially disable TN scanning for all practical purposes Change-Id: I8757cdff8ca33be6db7a78f7fce1f0fd1843427d Bug: 339233361 Test: presubmit, manual sanity --- overlay/frameworks/base/core/res/res/values/config.xml | 8 +++++++- 1 file changed, 7 insertions(+), 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 53282f6..74e8941 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -490,7 +490,13 @@ will move to IDLE state. This timeout duration is used for satellite with NB IOT radio technologies. --> - 900000 + 2147483647 + + + 2147483647 true - - true + + 6291456 - - android.hardware.media.c2 - hwbinder - 1.2 - - IComponentStore - default - default1 - - android.hardware.media.c2 From ead004e63fb8170a6abbefac55a85666c5e170e3 Mon Sep 17 00:00:00 2001 From: Xiaofan Jiang Date: Thu, 16 May 2024 23:40:36 +0000 Subject: [PATCH 106/150] shamp: enable only for board with modem Bug: 341164599 Change-Id: I7c61482986cbcd31d46ea8158e3d426eeb364c87 --- device.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/device.mk b/device.mk index 28a6d87..5fd9437 100644 --- a/device.mk +++ b/device.mk @@ -973,6 +973,10 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ ifneq ($(BOARD_WITHOUT_RADIO),true) +# Shared Modem Platform +SHARED_MODEM_PLATFORM_VENDOR := lassen +include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk + # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit @@ -1219,7 +1223,3 @@ PRODUCT_PROPERTY_OVERRIDES += \ # since it can't be overridden from /vendor. PRODUCT_PRODUCT_PROPERTIES += \ dumpstate.strict_run=false - -# Shared Modem Platform -SHARED_MODEM_PLATFORM_VENDOR := lassen -include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk From 6a4e7d727ce8079287f18701cb16244f59860242 Mon Sep 17 00:00:00 2001 From: Isaac Chiou Date: Tue, 23 Apr 2024 19:55:02 +0800 Subject: [PATCH 107/150] Enable open source multi akm for specific Broadcom project For cross akm roaming function, we have two ways in supplicant : 1. Open source way. 2. Broadcom specific way. Originally, Broadcom projects follow way 2 due to the limitation of the driver. For now, we plan to move all Broadcom projects to follow way 1 to make supplicant code clean and downsteam without conflict. For those projects which is ready for way 1, we control it to follow way 1 with WIFI_OPEN_SOURCE_MULTI_AKM config. For the rest of Broadcom projects, we still follow way 2 until the multiple AKMs is fully supported by driver and verified. For ongoing Broadcom project, we also need to exercise the open source path in supplicant to do multiple AKM configuration to comply with WFA Wifi 7 AKM24 specification (b/331896542). Bug: 336483911 Bug: 297002812 Bug: 331896542 Test: AU drop test Test: Cross AKM roaming test Change-Id: Iac396ef4a9f6a6e6a2a4c493aea4eea4e88db42f --- device.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device.mk b/device.mk index ea07495..95c4d06 100644 --- a/device.mk +++ b/device.mk @@ -775,6 +775,8 @@ PRODUCT_PACKAGES += wpa_supplicant.conf WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled +WIFI_BRCM_OPEN_SOURCE_MULTI_AKM := enabled + ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += wpa_cli PRODUCT_PACKAGES += hostapd_cli From b058b0088f70ae4527ffe0890b8cd2afd6c96152 Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Wed, 8 Feb 2023 19:38:32 +0000 Subject: [PATCH 108/150] Add shell command to send vendor command to GL852G Bug: 261923350 Bug: 340665903 Test: adb shell cmd android.hardware.usb.IUsb/default hub-vendor-cmd Change-Id: I83b56d28cfd89dfaf51fce88f97020196402f972 Signed-off-by: Roy Luo --- usb/usb/Android.bp | 1 + usb/usb/Usb.cpp | 115 +++++++++++++++++- usb/usb/Usb.h | 5 +- usb/usb/android.hardware.usb-service-i2c11.rc | 2 +- usb/usb/android.hardware.usb-service-i2c6.rc | 2 +- 5 files changed, 121 insertions(+), 4 deletions(-) diff --git a/usb/usb/Android.bp b/usb/usb/Android.bp index 3be3369..e70985c 100644 --- a/usb/usb/Android.bp +++ b/usb/usb/Android.bp @@ -40,6 +40,7 @@ cc_binary { "libbinder", "libhidlbase", "liblog", + "libusbhost", "libutils", "libhardware", "android.hardware.thermal@1.0", diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index b2b49b6..3944372 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -23,10 +23,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -37,6 +39,7 @@ #include #include #include +#include #include "Usb.h" @@ -58,6 +61,8 @@ using android::hardware::google::pixel::getStatsService; using android::hardware::google::pixel::PixelAtoms::VendorUsbPortOverheat; using android::hardware::google::pixel::reportUsbPortOverheat; using android::hardware::google::pixel::usb::getI2cClientPath; +using android::String8; +using android::Vector; namespace aidl { namespace android { @@ -116,6 +121,12 @@ void queryVersionHelper(android::hardware::usb::Usb *usb, AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_assignment, string link_status, string vdo); +#define CTRL_TRANSFER_TIMEOUT_MSEC 1000 +#define GL852G_VENDOR_ID 0x05e3 +#define GL852G_PRODUCT_ID1 0x0608 +#define GL852G_PRODUCT_ID2 0x0610 +#define GL852G_VENDOR_CMD_REQ 0xe3 + ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, int64_t in_transactionId) { bool result = true; @@ -853,7 +864,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb, PortRole currentRole; currentRole.set(PortPowerRole::NONE); - if (getCurrentRoleHelper(port.first, port.second, ¤tRole) == Status::SUCCESS){ + if (getCurrentRoleHelper(port.first, port.second, ¤tRole) == Status::SUCCESS) { (*currentPortStatus)[i].currentPowerRole = currentRole.get(); } else { ALOGE("Error while retrieving portNames"); @@ -1939,6 +1950,108 @@ void Usb::shutdownDisplayPortPoll(bool force) { } } +struct hub_vendor_cmd { + // wValue filed of standard device request + int value; + // wIndex field of standard device request + int index; + // Output pipe to shell command + int out; + // Whether the hub is found + bool found; +}; + +static int usbDeviceAdded(const char *devname, void* client_data) { + struct hub_vendor_cmd *cmd = (struct hub_vendor_cmd *)client_data; + uint16_t vendorId, productId; + struct usb_device *device = usb_device_open(devname); + + if (!device) { + dprintf(cmd->out, "usb_device_open failed\n"); + return 0; + } + + // The vendor cmd only applies to USB Hubs of Genesys Logic, Inc. + // The request field of vendor cmd is fixed to 0xe3. + vendorId = usb_device_get_vendor_id(device); + productId = usb_device_get_product_id(device); + if (vendorId == GL852G_VENDOR_ID && + (productId == GL852G_PRODUCT_ID1 || productId == GL852G_PRODUCT_ID2)) { + int ret = usb_device_control_transfer( + device, USB_DIR_OUT | USB_TYPE_VENDOR, + GL852G_VENDOR_CMD_REQ, cmd->value, cmd->index, NULL, 0, + CTRL_TRANSFER_TIMEOUT_MSEC); + dprintf(cmd->out, "Vendor cmd %s (wValue %x, wIndex %x, return %d)\n", + ret? "failed" : "succeeded", cmd->value, cmd->index, ret); + // Stop iterating through usb devices once the hub is found. + cmd->found = true; + return 1; + } + + return 0; +} + +static int usbDiscoveryDone(void *client_data) +{ + struct hub_vendor_cmd *cmd = (struct hub_vendor_cmd *)client_data; + + dprintf(cmd->out, "Done USB discovery, hub %s found\n", + cmd->found ? "is" : "not"); + + return 1; +} + +static status_t sendHubVendorCmd(int out, Vector& args) { + if (args.size() < 3) { + dprintf(out, "Incorrect number of argument supplied\n"); + return ::android::UNKNOWN_ERROR; + } + struct hub_vendor_cmd cmd = { + .value = std::stoi(args[1].c_str(), NULL, 16), + .index = std::stoi(args[2].c_str(), NULL, 16), + .out = out, + .found = false + }; + + struct usb_host_context *ctx; + ctx = usb_host_init(); + if (!ctx) { + dprintf(out, "usb_host_init failed\n"); + return ::android::UNKNOWN_ERROR; + } + + usb_host_run(ctx, usbDeviceAdded, NULL, usbDiscoveryDone, &cmd); + usb_host_cleanup(ctx); + + return ::android::NO_ERROR; +} + +status_t Usb::handleShellCommand(int in, int out, int err, const char** argv, + uint32_t argc) { + uid_t uid = AIBinder_getCallingUid(); + if (uid != AID_ROOT && uid != AID_SHELL) { + return ::android::PERMISSION_DENIED; + } + + Vector utf8Args; + utf8Args.setCapacity(argc); + for (uint32_t i = 0; i < argc; i++) { + utf8Args.push(String8(argv[i])); + } + + if (argc >= 1) { + if (!utf8Args[0].compare(String8("hub-vendor-cmd"))) { + return sendHubVendorCmd(out, utf8Args); + } + } + + dprintf(out, "usage: adb shell cmd hub-vendor-cmd VALUE INDEX\n" + " VALUE wValue field in hex format, e.g. f321\n" + " INDEX wIndex field in hex format, e.g. f321\n"); + + return ::android::NO_ERROR; +} + } // namespace usb } // namespace hardware } // namespace android diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 4ac6a44..91eea4f 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -55,6 +55,7 @@ using ::android::hardware::google::pixel::usb::ZoneInfo; using ::android::hardware::thermal::V2_0::TemperatureType; using ::android::hardware::thermal::V2_0::ThrottlingSeverity; using ::android::sp; +using ::android::status_t; using ::ndk::ScopedAStatus; using ::std::shared_ptr; using ::std::string; @@ -97,7 +98,7 @@ struct Usb : public BnUsb { ScopedAStatus enableUsbDataWhileDocked(const string& in_portName, int64_t in_transactionId) override; ScopedAStatus limitPowerTransfer(const string& in_portName, bool in_limit, - int64_t in_transactionId) override; + int64_t in_transactionId) override; ScopedAStatus resetUsbPort(const string& in_portName, int64_t in_transactionId) override; Status getDisplayPortUsbPathHelper(string *path); @@ -108,6 +109,8 @@ struct Usb : public BnUsb { void setupDisplayPortPoll(); void shutdownDisplayPortPollHelper(); void shutdownDisplayPortPoll(bool force); + status_t handleShellCommand(int in, int out, int err, const char** argv, + uint32_t argc) override; std::shared_ptr<::aidl::android::hardware::usb::IUsbCallback> mCallback; // Protects mCallback variable diff --git a/usb/usb/android.hardware.usb-service-i2c11.rc b/usb/usb/android.hardware.usb-service-i2c11.rc index 76e3e60..ba3e657 100644 --- a/usb/usb/android.hardware.usb-service-i2c11.rc +++ b/usb/usb/android.hardware.usb-service-i2c11.rc @@ -1,7 +1,7 @@ service vendor.usb /vendor/bin/hw/android.hardware.usb-service class hal user system - group system shell wakelock + group system shell wakelock usb capabilities WAKE_ALARM BLOCK_SUSPEND on post-fs diff --git a/usb/usb/android.hardware.usb-service-i2c6.rc b/usb/usb/android.hardware.usb-service-i2c6.rc index 18869e2..5caed19 100644 --- a/usb/usb/android.hardware.usb-service-i2c6.rc +++ b/usb/usb/android.hardware.usb-service-i2c6.rc @@ -1,7 +1,7 @@ service vendor.usb /vendor/bin/hw/android.hardware.usb-service class hal user system - group system shell wakelock + group system shell wakelock usb capabilities WAKE_ALARM BLOCK_SUSPEND on post-fs From fd704fdcfbbefb1d4d5cf946d06a5454bb15990a Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Fri, 17 Mar 2023 00:44:01 +0000 Subject: [PATCH 109/150] Support GL852G USB hub JK level tuning The JK level setting is configured to the hub via a vendor USB command whenever the hub is enabled. The shell command can be used to change the JK setting for testing purpose, but the values take effect next time the hub is enumerated. Bug: 261923350 Bug: 340665903 Test: adb shell cmd android.hardware.usb.IUsb/default hub-vendor-cmd Test: verify on user/userdebug builds the vendor command is triggered in the following scenarios. 1. boot with Kolan docked 2. undock and dock Kolan 3. kill android.hardware.usb.IUsb/default Change-Id: I8873695c42f362138d99b45ffa2ef637c357202b --- usb/usb/Usb.cpp | 163 ++++++++++++++++++++++++------------------------ usb/usb/Usb.h | 5 ++ 2 files changed, 88 insertions(+), 80 deletions(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 3944372..011c5e8 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -126,6 +126,9 @@ AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_ #define GL852G_PRODUCT_ID1 0x0608 #define GL852G_PRODUCT_ID2 0x0610 #define GL852G_VENDOR_CMD_REQ 0xe3 +// GL852G port 1 and port 2 JK level default settings +#define GL852G_VENDOR_CMD_VALUE_DEFAULT 0x0008 +#define GL852G_VENDOR_CMD_INDEX_DEFAULT 0x0404 ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, int64_t in_transactionId) { @@ -521,6 +524,61 @@ void updatePortStatus(android::hardware::usb::Usb *usb) { queryVersionHelper(usb, ¤tPortStatus); } +static int usbDeviceRemoved(const char *devname, void* client_data) { + return 0; +} + +static int usbDeviceAdded(const char *devname, void* client_data) { + uint16_t vendorId, productId; + struct usb_device *device; + ::aidl::android::hardware::usb::Usb *usb; + int value, index; + + device = usb_device_open(devname); + if (!device) { + ALOGE("usb_device_open failed\n"); + return 0; + } + + usb = (::aidl::android::hardware::usb::Usb *)client_data; + value = usb->mUsbHubVendorCmdValue; + index = usb->mUsbHubVendorCmdIndex; + + // The vendor cmd only applies to USB Hubs of Genesys Logic, Inc. + // The request field of vendor cmd is fixed to 0xe3. + vendorId = usb_device_get_vendor_id(device); + productId = usb_device_get_product_id(device); + if (vendorId == GL852G_VENDOR_ID && + (productId == GL852G_PRODUCT_ID1 || productId == GL852G_PRODUCT_ID2)) { + int ret = usb_device_control_transfer(device, + USB_DIR_OUT | USB_TYPE_VENDOR, GL852G_VENDOR_CMD_REQ, value, index, + NULL, 0, CTRL_TRANSFER_TIMEOUT_MSEC); + ALOGI("USB hub vendor cmd %s (wValue 0x%x, wIndex 0x%x, return %d)\n", + ret? "failed" : "succeeded", value, index, ret); + } + + usb_device_close(device); + + return 0; +} + +void *usbHostWork(void *param) { + struct usb_host_context *ctx; + + ALOGI("creating USB host thread\n"); + + ctx = usb_host_init(); + if (!ctx) { + ALOGE("usb_host_init failed\n"); + return NULL; + } + + // This will never return, it will keep monitoring USB sysfs inotify events + usb_host_run(ctx, usbDeviceAdded, usbDeviceRemoved, NULL, param); + + return NULL; +} + Usb::Usb() : mLock(PTHREAD_MUTEX_INITIALIZER), mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER), @@ -542,7 +600,9 @@ Usb::Usb() mDisplayPortPollRunning(false), mDisplayPortPollStarting(false), mDisplayPortCVLock(PTHREAD_MUTEX_INITIALIZER), - mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER) { + mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER), + mUsbHubVendorCmdValue(GL852G_VENDOR_CMD_VALUE_DEFAULT), + mUsbHubVendorCmdIndex(GL852G_VENDOR_CMD_INDEX_DEFAULT) { pthread_condattr_t attr; if (pthread_condattr_init(&attr)) { ALOGE("pthread_condattr_init failed: %s", strerror(errno)); @@ -579,6 +639,10 @@ Usb::Usb() ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno)); abort(); } + if (pthread_create(&mUsbHost, NULL, usbHostWork, this)) { + ALOGE("pthread creation failed %d\n", errno); + abort(); + } ALOGI("feature flag enable_usb_data_compliance_warning: %d", usb_flags::enable_usb_data_compliance_warning()); @@ -1950,82 +2014,6 @@ void Usb::shutdownDisplayPortPoll(bool force) { } } -struct hub_vendor_cmd { - // wValue filed of standard device request - int value; - // wIndex field of standard device request - int index; - // Output pipe to shell command - int out; - // Whether the hub is found - bool found; -}; - -static int usbDeviceAdded(const char *devname, void* client_data) { - struct hub_vendor_cmd *cmd = (struct hub_vendor_cmd *)client_data; - uint16_t vendorId, productId; - struct usb_device *device = usb_device_open(devname); - - if (!device) { - dprintf(cmd->out, "usb_device_open failed\n"); - return 0; - } - - // The vendor cmd only applies to USB Hubs of Genesys Logic, Inc. - // The request field of vendor cmd is fixed to 0xe3. - vendorId = usb_device_get_vendor_id(device); - productId = usb_device_get_product_id(device); - if (vendorId == GL852G_VENDOR_ID && - (productId == GL852G_PRODUCT_ID1 || productId == GL852G_PRODUCT_ID2)) { - int ret = usb_device_control_transfer( - device, USB_DIR_OUT | USB_TYPE_VENDOR, - GL852G_VENDOR_CMD_REQ, cmd->value, cmd->index, NULL, 0, - CTRL_TRANSFER_TIMEOUT_MSEC); - dprintf(cmd->out, "Vendor cmd %s (wValue %x, wIndex %x, return %d)\n", - ret? "failed" : "succeeded", cmd->value, cmd->index, ret); - // Stop iterating through usb devices once the hub is found. - cmd->found = true; - return 1; - } - - return 0; -} - -static int usbDiscoveryDone(void *client_data) -{ - struct hub_vendor_cmd *cmd = (struct hub_vendor_cmd *)client_data; - - dprintf(cmd->out, "Done USB discovery, hub %s found\n", - cmd->found ? "is" : "not"); - - return 1; -} - -static status_t sendHubVendorCmd(int out, Vector& args) { - if (args.size() < 3) { - dprintf(out, "Incorrect number of argument supplied\n"); - return ::android::UNKNOWN_ERROR; - } - struct hub_vendor_cmd cmd = { - .value = std::stoi(args[1].c_str(), NULL, 16), - .index = std::stoi(args[2].c_str(), NULL, 16), - .out = out, - .found = false - }; - - struct usb_host_context *ctx; - ctx = usb_host_init(); - if (!ctx) { - dprintf(out, "usb_host_init failed\n"); - return ::android::UNKNOWN_ERROR; - } - - usb_host_run(ctx, usbDeviceAdded, NULL, usbDiscoveryDone, &cmd); - usb_host_cleanup(ctx); - - return ::android::NO_ERROR; -} - status_t Usb::handleShellCommand(int in, int out, int err, const char** argv, uint32_t argc) { uid_t uid = AIBinder_getCallingUid(); @@ -2041,13 +2029,28 @@ status_t Usb::handleShellCommand(int in, int out, int err, const char** argv, if (argc >= 1) { if (!utf8Args[0].compare(String8("hub-vendor-cmd"))) { - return sendHubVendorCmd(out, utf8Args); + if (utf8Args.size() < 3) { + dprintf(out, "Incorrect number of argument supplied\n"); + return ::android::UNKNOWN_ERROR; + } + int value, index; + if (!::android::base::ParseInt(utf8Args[1].c_str(), &value) || + !::android::base::ParseInt(utf8Args[2].c_str(), &index)) { + dprintf(out, "Fail to parse arguments\n"); + return ::android::UNKNOWN_ERROR; + } + mUsbHubVendorCmdValue = value; + mUsbHubVendorCmdIndex = index; + ALOGI("USB hub vendor cmd update (wValue 0x%x, wIndex 0x%x)\n", + mUsbHubVendorCmdValue, mUsbHubVendorCmdIndex); + return ::android::NO_ERROR; } } dprintf(out, "usage: adb shell cmd hub-vendor-cmd VALUE INDEX\n" - " VALUE wValue field in hex format, e.g. f321\n" - " INDEX wIndex field in hex format, e.g. f321\n"); + " VALUE wValue field in hex format, e.g. 0xf321\n" + " INDEX wIndex field in hex format, e.g. 0xf321\n" + " The settings take effect next time the hub is enabled\n"); return ::android::NO_ERROR; } diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 91eea4f..96af846 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -167,10 +167,15 @@ struct Usb : public BnUsb { */ bool mPartnerSupportsDisplayPort; + // Usb hub vendor command settings for JK level tuning + int mUsbHubVendorCmdValue; + int mUsbHubVendorCmdIndex; + private: pthread_t mPoll; pthread_t mDisplayPortPoll; pthread_t mDisplayPortShutdownHelper; + pthread_t mUsbHost; }; } // namespace usb From 9564d4c10507ab5b6d41f6896e2d2f9070602d0f Mon Sep 17 00:00:00 2001 From: Jasmine Cha Date: Tue, 21 May 2024 07:31:05 +0000 Subject: [PATCH 110/150] audio: Allow media volume step override Bug: 339469574 Test: check build.prop-vendor from the build Change-Id: I58ea8f7d7d03c36e34b5e4eddae325d9ea0ab9ab Signed-off-by: Jasmine Cha --- device.mk | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index 3c58041..db5e659 100644 --- a/device.mk +++ b/device.mk @@ -1052,10 +1052,17 @@ $(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT)) ## Audio properties PRODUCT_PROPERTY_OVERRIDES += \ ro.config.vc_call_vol_steps=7 \ - ro.config.media_vol_steps=25 \ ro.audio.monitorRotation = true \ ro.audio.offload_wakelock=false +ifneq (,$(OVERRIDE_MEDIA_VOLUME_STEPS)) +PRODUCT_PROPERTY_OVERRIDES += \ + ro.config.media_vol_steps=$(OVERRIDE_MEDIA_VOLUME_STEPS) +else +PRODUCT_PROPERTY_OVERRIDES += \ + ro.config.media_vol_steps=25 +endif + # vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code. # See b/148807371 for reference PRODUCT_PACKAGES += vndservicemanager From bddfb3dae61b947c818ac05461036c83dc2d1022 Mon Sep 17 00:00:00 2001 From: Spade Lee Date: Wed, 22 May 2024 16:16:38 +0000 Subject: [PATCH 111/150] pixelstats: Add fuel gauge abnormal event path Report abnormal events from logbuffer Bug: 333314833 Test: Events were correctly reported from each logbuffers. Change-Id: I4256bc5ef7d3d3bb073ac7ef2922f2c3ec7e7314 Signed-off-by: Spade Lee --- pixelstats/service.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index c3b8ee2..dac4a48 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -137,7 +137,10 @@ const struct UeventListener::UeventPaths ueventPaths = { .AudioUevent = "/devices/virtual/amcs/amcs", .TypeCPartnerUevent = "PRODUCT_TYPE=", .FwUpdatePath = "/sys/devices/platform/maxim,max77779fwu/update_stats", - .FGAbnlPath = "/sys/class/power_supply/max77779fg/fg_abnormal_events" + .FGAbnlPath = { + "/dev/logbuffer_max77779fg_monitor", + "/dev/logbuffer_maxfg_base_monitor", + } }; int main() { From 03e01e352465183a8c026ffbe324510d75935308 Mon Sep 17 00:00:00 2001 From: Leo Chen Date: Thu, 23 May 2024 06:39:38 +0000 Subject: [PATCH 112/150] Update IDisplay to V12 Test: trigger test build Bug: 309897479 Change-Id: Id60df728563ccad7392f72a7e78c78b63a894929 Signed-off-by: Leo Chen --- device_framework_matrix_product.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 2aa37e9..59d5bf9 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -114,7 +114,7 @@ com.google.hardware.pixel.display - 11-12 + 12 IDisplay default From 84d6791d3c4f1e944a608bb2afe18b83337a22e9 Mon Sep 17 00:00:00 2001 From: Carter Hsu Date: Thu, 23 May 2024 16:28:29 +0800 Subject: [PATCH 113/150] audio: enable the CCA unsupported feature Bug: 342333009 Test: verified the CCA unsupported feature is enabled on test build Change-Id: I4bc941ed419c5801de03c9cb954f3b0452229ed7 Signed-off-by: Carter Hsu --- device.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device.mk b/device.mk index da3fdc5..7fe294e 100644 --- a/device.mk +++ b/device.mk @@ -1034,6 +1034,9 @@ $(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT)) # ## Audio properties +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.audio.cca.unsupported=false + PRODUCT_PROPERTY_OVERRIDES += \ ro.config.vc_call_vol_steps=7 \ ro.config.media_vol_steps=25 \ From 521ac12fefccb58fbb6a5654c0dc1520c11dedea Mon Sep 17 00:00:00 2001 From: Cyan_Hsieh Date: Fri, 24 May 2024 15:54:15 +0800 Subject: [PATCH 114/150] Switch makefile owners to MK_OWNERS Bug: 278167548 Change-Id: I8f4f0a8bdb2a3de5082f2df154265f94ca9f8fe9 --- OWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OWNERS b/OWNERS index 4bdbb97..e6ce5d0 100644 --- a/OWNERS +++ b/OWNERS @@ -1,2 +1,2 @@ # per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details. -per-file *.mk=file:device/google/gs-common:main:/OWNERS +per-file *.mk=file:device/google/gs-common:main:/MK_OWNERS From a504b33cabd1373f44cbeeb8772ad8dee16f2e99 Mon Sep 17 00:00:00 2001 From: Pindar Yang Date: Fri, 24 May 2024 07:54:03 +0000 Subject: [PATCH 115/150] Revert "shamp: enable only for board with modem" This reverts commit ead004e63fb8170a6abbefac55a85666c5e170e3. Reason for revert: Build break, Bug: 342527025 Change-Id: Iaea52498859eb7afb1a660a672a7c752a3c0c3de --- device.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/device.mk b/device.mk index 5fd9437..28a6d87 100644 --- a/device.mk +++ b/device.mk @@ -973,10 +973,6 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ ifneq ($(BOARD_WITHOUT_RADIO),true) -# Shared Modem Platform -SHARED_MODEM_PLATFORM_VENDOR := lassen -include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk - # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit @@ -1223,3 +1219,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ # since it can't be overridden from /vendor. PRODUCT_PRODUCT_PROPERTIES += \ dumpstate.strict_run=false + +# Shared Modem Platform +SHARED_MODEM_PLATFORM_VENDOR := lassen +include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk From 9743ceeba300ab3374a93760c55ef2385bc60c4c Mon Sep 17 00:00:00 2001 From: Dmitry Skiba Date: Tue, 28 May 2024 21:52:45 +0000 Subject: [PATCH 116/150] Restrict kcompactd thread to middle/little cores. Bug: 340872453 Test: Confirmed kcompactd affinity with taskset -p Change-Id: I3312b984e98dee40d65d07096e8baf8d797d4897 Signed-off-by: Dmitry Skiba --- conf/init.zumapro.soc.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 2c6d4d5..ad254af 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -150,6 +150,7 @@ on property:sys.boot_completed=1 # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f write /sys/kernel/vendor_mm/pa_kill/cpu_affinity 7f + write /sys/kernel/vendor_mm/kcompactd_cpu_affinity 7f # Restore prefer idle write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff From 808b4eb191047f1182ceac727bffae33a08c600c Mon Sep 17 00:00:00 2001 From: Ruofei Ma Date: Wed, 29 May 2024 20:35:48 +0000 Subject: [PATCH 117/150] Update c2.android.av1.decoder performance Bug: 340780419 Test: android.media.decoder.cts.VideoDecoderPerfTest#testPerf Change-Id: Idd2f30140fb5ebb3cfd80214ca1707097f1c0a57 Signed-off-by: Ruofei Ma --- media_codecs_performance_c2.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index dea0956..8e397ed 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -169,7 +169,7 @@ - + From a6a17804f7d166ef520f2dd80a029ad648fb17ef Mon Sep 17 00:00:00 2001 From: Roy Luo Date: Wed, 29 May 2024 23:44:28 +0000 Subject: [PATCH 118/150] Update JK level setting Bug: 340665903 Test: N/A Change-Id: I5f14383aa2f97352a9a1f98b6f83c7cc975b0c58 --- usb/usb/Usb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 011c5e8..4bdd5ed 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -128,7 +128,7 @@ AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_ #define GL852G_VENDOR_CMD_REQ 0xe3 // GL852G port 1 and port 2 JK level default settings #define GL852G_VENDOR_CMD_VALUE_DEFAULT 0x0008 -#define GL852G_VENDOR_CMD_INDEX_DEFAULT 0x0404 +#define GL852G_VENDOR_CMD_INDEX_DEFAULT 0x0407 ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable, int64_t in_transactionId) { From b74903d33ee1b8dbc3e09950d994aae379b5a937 Mon Sep 17 00:00:00 2001 From: jiangzining Date: Thu, 30 May 2024 14:39:15 +0800 Subject: [PATCH 119/150] [Scone] add BLUETOOTH_CONNECT to SCONE default permission MBA Approval: b/330640278 Bug: b/343608940 Test: Build and Flash Change-Id: I2aca6fbdc59e47d6e46af918d85661116b6424d8 --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 8516cec..fc00a30 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -86,6 +86,8 @@ + + Date: Thu, 30 May 2024 08:01:42 +0000 Subject: [PATCH 120/150] Add property for PDK ROM The property would be used to check if the ROM is PDK. Bug: 331725606 Change-Id: I0e1fa3366effb546a60b89c8bcf14fcd74dcb51f Test: Check the property in PDK build --- device.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device.mk b/device.mk index ad85c55..d9c45df 100644 --- a/device.mk +++ b/device.mk @@ -230,6 +230,8 @@ USE_WHI_GRIL_RECOVERY := true ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true) USE_GOOGLE_DIALER := true USE_GOOGLE_CARRIER_SETTINGS := true +PRODUCT_PROPERTY_OVERRIDES += \ + ro.vendor.uses_google_dialer_carrier_settings=1 endif ifeq ($(USES_GOOGLE_PREBUILT_MODEM_SVC),true) From fc8c17c28b26891985d2ff678c1c3cf9be456280 Mon Sep 17 00:00:00 2001 From: jiangzining Date: Thu, 30 May 2024 14:39:15 +0800 Subject: [PATCH 121/150] [Scone] add BLUETOOTH_CONNECT to SCONE default permission Bug: 343608940 MBA Approval: b/330640278 Test: Build and Flash (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b74903d33ee1b8dbc3e09950d994aae379b5a937) Merged-In: I2aca6fbdc59e47d6e46af918d85661116b6424d8 Change-Id: I2aca6fbdc59e47d6e46af918d85661116b6424d8 --- default-permissions.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default-permissions.xml b/default-permissions.xml index 8516cec..fc00a30 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -86,6 +86,8 @@ + + Date: Thu, 30 May 2024 00:50:59 +0000 Subject: [PATCH 122/150] Revert "Restrict kcompactd thread to middle/little cores." This reverts commit 9743ceeba300ab3374a93760c55ef2385bc60c4c. Reason for revert: avoid 24Q3 (will reland later) Bug: 340872453 Change-Id: Iee54d1b89a983ea07baa89c0fa34dbbfd0da137d --- conf/init.zumapro.soc.rc | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index ad254af..2c6d4d5 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -150,7 +150,6 @@ on property:sys.boot_completed=1 # Set kswapd affinity write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f write /sys/kernel/vendor_mm/pa_kill/cpu_affinity 7f - write /sys/kernel/vendor_mm/kcompactd_cpu_affinity 7f # Restore prefer idle write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff From 3f9a2fb7394f0b8cb2a69b59ed8547708ebd13c7 Mon Sep 17 00:00:00 2001 From: Madhav Iyengar Date: Wed, 1 May 2024 16:28:22 +0000 Subject: [PATCH 123/150] Give bthal access to new AOC services Bug: 342415506 Test: Works with other CLs in topic. Change-Id: I1fffd6b0dda51df6eb99a8715f6fd9a7d2b89412 --- conf/ueventd.zumapro.rc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/ueventd.zumapro.rc b/conf/ueventd.zumapro.rc index ca08579..15ca216 100644 --- a/conf/ueventd.zumapro.rc +++ b/conf/ueventd.zumapro.rc @@ -157,6 +157,11 @@ /dev/acd-com.google.bt 0660 system system /dev/acd-com.google.bt.non_wake_up 0660 system system +# AoC Bluetooth Offload +/dev/acd-chre_bt_offload_ctl 0660 bluetooth bluetooth +/dev/acd-chre_bt_offload_data_tx 0220 bluetooth bluetooth +/dev/acd-chre_bt_offload_data_rx 0440 bluetooth bluetooth + # LWIS /dev/lwis* 0660 system system From f257d39c65ce2cf2e8b8ad9cd1a322dd8345047e Mon Sep 17 00:00:00 2001 From: stevenzlliu Date: Thu, 30 May 2024 04:37:38 +0000 Subject: [PATCH 124/150] Modify path to add adbd in nnapi Modify file path of nnapi and uclamp_min path to add adbd Bug: 343580927 Flag: NONE Test: check adbd schedule passed Change-Id: I867cd5a55982d6c2a0b6f02fba7c9a6c464a560c --- conf/init.factory.rc | 2 +- factory/factory_post_boot/factory_post_boot.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/init.factory.rc b/conf/init.factory.rc index ed294fd..4741028 100644 --- a/conf/init.factory.rc +++ b/conf/init.factory.rc @@ -15,5 +15,5 @@ on boot on property:sys.boot_completed=1 # Bump nnapi min clamp & add adbd to it for factory (b/222226268) - write /proc/vendor_sched/nnapi_uclamp_min 512 + write /proc/vendor_sched/groups/nnapi/uclamp_min 512 exec - root root -- /vendor/bin/factory/factory_post_boot diff --git a/factory/factory_post_boot/factory_post_boot.sh b/factory/factory_post_boot/factory_post_boot.sh index 82dfcfb..35b562b 100644 --- a/factory/factory_post_boot/factory_post_boot.sh +++ b/factory/factory_post_boot/factory_post_boot.sh @@ -1,4 +1,4 @@ #!/vendor/bin/sh # Add adbd to nnapi vendor cgroup. (b/222226268) -echo `pidof adbd` > /proc/vendor_sched/set_task_group_nnapi +echo `pidof adbd` > /proc/vendor_sched/groups/nnapi/set_task_group From 66af5950c1c69b9d84bc21c9b1871c89b4975a76 Mon Sep 17 00:00:00 2001 From: Richard Chou Date: Mon, 3 Jun 2024 17:49:35 +0800 Subject: [PATCH 125/150] zumapro: add build include for Recorder app in gs-common Test: build pass Bug: 338879856 Change-Id: I76ebf9f6d99857906dc3708274932898519e7b38 --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index ad85c55..e566eaf 100644 --- a/device.mk +++ b/device.mk @@ -42,6 +42,7 @@ 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/gs-common/recorder/recorder.mk include device/google/zumapro/dumpstate/item.mk From a09ad23552da9296c1c0afedcdd5d28f9ad46bcf Mon Sep 17 00:00:00 2001 From: Scott Wiest Date: Tue, 4 Jun 2024 18:05:40 +0000 Subject: [PATCH 126/150] Removing unneeded potentially harmful permissions in Creative Assistant Bug: 339334303 FLAG: EXEMPT Bugfix to remove the permissions that were flagged as harmful and are no longer being used. Change-Id: Ibc3915b2154cecf40a8484b2ffb8eef8a2ad52d0 --- default-permissions.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/default-permissions.xml b/default-permissions.xml index fc00a30..a0aa143 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -67,9 +67,6 @@ - - - From 6f9888658d3ec38cb1475e98babe919cd8537c30 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Tue, 4 Jun 2024 06:05:01 +0000 Subject: [PATCH 127/150] Disable modemml-tflite-service for aosp build For aosp build, the vendor module `modemml-tflite-service` is not included so it shouldn't be added as a system_server jar. Bug: 343341492 Bug: 343367700 Test: Build with target non-aosp targets in presubmit and aosp targets following the reproduce steps in b/343341492 Change-Id: Ib32ec2c31570eb3566c80de4ed510f17ec9e9a39 --- device.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device.mk b/device.mk index e47d425..28d1693 100644 --- a/device.mk +++ b/device.mk @@ -970,11 +970,13 @@ PRODUCT_PACKAGES += modem_svc_sit # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit +ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) # Modem ML TFLite service. PRODUCT_PACKAGES += modemml-tflite-service \ libtensorflowlite_jni PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service +endif # modem ML models configs ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) From 31fbcddb278548f6cb22892e74b7cb47459816fe Mon Sep 17 00:00:00 2001 From: Utku Utkan Date: Wed, 5 Jun 2024 04:51:31 +0000 Subject: [PATCH 128/150] Remove ACCESS_FINE_LOCATION permission pregrant for PCS on ZumaPro FLAG: EXEMPT Cleanup of obsolete permission pregrant Bug: 345021501 Test: m && flashall Change-Id: I9cedfd754b27831c2176d9822babbd8bedfa16b3 --- default-permissions.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/default-permissions.xml b/default-permissions.xml index a0aa143..2d04542 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -59,7 +59,6 @@ - From f3fcd24811748a04351d3da6825b8ccf06b2c63e Mon Sep 17 00:00:00 2001 From: Scott Wiest Date: Tue, 4 Jun 2024 18:05:40 +0000 Subject: [PATCH 129/150] Removing unneeded potentially harmful permissions in Creative Assistant Bug: 339334303 FLAG: EXEMPT Bugfix to remove the permissions that were flagged as harmful and are no longer being used. Change-Id: Ibc3915b2154cecf40a8484b2ffb8eef8a2ad52d0 --- default-permissions.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/default-permissions.xml b/default-permissions.xml index fc00a30..a0aa143 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -67,9 +67,6 @@ - - - From 91126e3fd140ee84466bfbe7fac1049b8f762f26 Mon Sep 17 00:00:00 2001 From: Xiaofan Jiang Date: Tue, 28 May 2024 18:55:42 +0000 Subject: [PATCH 130/150] shamp: enable only for board with modem Bug: 341164599 Change-Id: I6e6575f7ba98a293dafd51a4825cdf9d335fbb14 --- device.mk | 150 +++++++++++++++++++++++++++--------------------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/device.mk b/device.mk index 979e902..3b5cd54 100644 --- a/device.mk +++ b/device.mk @@ -218,12 +218,84 @@ PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.hdcp_checking=always USE_LASSEN_OEMHOOK := true +ifneq ($(BOARD_WITHOUT_RADIO),true) # The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when # $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true. -ifneq ($(BOARD_WITHOUT_RADIO),true) - PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril +PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril + +$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk) + +# modem_ml_svc_sit daemon +PRODUCT_PACKAGES += modem_ml_svc_sit + +ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) +# Modem ML TFLite service. +PRODUCT_PACKAGES += modemml-tflite-service \ + libtensorflowlite_jni + +# Allow TFLite service modules to be installed to the system partition +PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ + system/etc/vintf/manifest/modemml_tflite_service.xml \ + system/framework/modemml-tflite-service.jar \ + system/framework/oat/arm64/modemml-tflite-service.odex \ + system/framework/oat/arm64/modemml-tflite-service.vdex \ + system/lib64/libtensorflowlite_jni.so + +PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service endif +# modem ML models configs +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_COPY_FILES += \ + device/google/zumapro/modem_ml/modem_ml_nnapi_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ + device/google/zumapro/modem_ml/modem_ml_tflite_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf +else +PRODUCT_COPY_FILES += \ + device/google/zumapro/modem_ml/modem_ml_nnapi_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ + device/google/zumapro/modem_ml/modem_ml_tflite_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf +endif + +# modem logging binary/configs +PRODUCT_PACKAGES += modem_logging_control + +# libeomservice_proxy binary/configs +PRODUCT_PACKAGES += liboemservice_proxy_default + +# modem logging configs +PRODUCT_PACKAGES += \ + logging.conf \ + default.cfg \ + default.nprf \ + default_metrics.xml \ + Pixel_stability.cfg \ + Pixel_stability.nprf \ + extensive_logging.conf + +# Vendor modem extensive logging default property +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.modem.extensive_logging_enabled=false + +# Pixel Logger +include hardware/google/pixel/PixelLogger/PixelLogger.mk + +# RIL extension service +ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) +include device/google/gs-common/pixel_ril/ril.mk +endif + +# Use Lassen specifc Shared Modem Platform +SHARED_MODEM_PLATFORM_VENDOR := lassen + +else # ifneq ($(BOARD_WITHOUT_RADIO),true) + +# Pixel Logger +BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app + +endif # ifneq ($(BOARD_WITHOUT_RADIO),true) + +# Shared Modem Platform +include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk + # Use for GRIL USES_LASSEN_MODEM := true USE_WHI_GRIL_RECOVERY := true @@ -957,10 +1029,6 @@ USE_EARLY_SEND_DEVICE_INFO := true #$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk) #$(call inherit-product, vendor/google_devices/zumapro/proprietary/device-vendor.mk) -ifneq ($(BOARD_WITHOUT_RADIO),true) -$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk) -endif - $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) #$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk) #$(call inherit-product-if-exists, hardware/google_devices/zumapro/zumapro.mk) @@ -975,58 +1043,6 @@ PRODUCT_COPY_FILES += \ device/google/zumapro/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ -ifneq ($(BOARD_WITHOUT_RADIO),true) -# modem_ml_svc_sit daemon -PRODUCT_PACKAGES += modem_ml_svc_sit - -ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) -# Modem ML TFLite service. -PRODUCT_PACKAGES += modemml-tflite-service \ - libtensorflowlite_jni - -# Allow TFLite service modules to be installed to the system partition -PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ - system/etc/vintf/manifest/modemml_tflite_service.xml \ - system/framework/modemml-tflite-service.jar \ - system/framework/oat/arm64/modemml-tflite-service.odex \ - system/framework/oat/arm64/modemml-tflite-service.vdex \ - system/lib64/libtensorflowlite_jni.so - -PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service -endif - -# modem ML models configs -ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) -PRODUCT_COPY_FILES += \ - device/google/zumapro/modem_ml/modem_ml_nnapi_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ - device/google/zumapro/modem_ml/modem_ml_tflite_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf -else -PRODUCT_COPY_FILES += \ - device/google/zumapro/modem_ml/modem_ml_nnapi_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \ - device/google/zumapro/modem_ml/modem_ml_tflite_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf -endif - -# modem logging binary/configs -PRODUCT_PACKAGES += modem_logging_control - -# libeomservice_proxy binary/configs -PRODUCT_PACKAGES += liboemservice_proxy_default - -# modem logging configs -PRODUCT_PACKAGES += \ - logging.conf \ - default.cfg \ - default.nprf \ - default_metrics.xml \ - Pixel_stability.cfg \ - Pixel_stability.nprf \ - extensive_logging.conf - -# Vendor modem extensive logging default property -PRODUCT_PROPERTY_OVERRIDES += \ - persist.vendor.modem.extensive_logging_enabled=false -endif - # Vibrator Diag PRODUCT_PACKAGES_DEBUG += \ diag-vibrator \ @@ -1164,13 +1180,6 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Project include hardware/google/pixel/common/pixel-common-device.mk -# Pixel Logger -ifneq ($(BOARD_WITHOUT_RADIO),true) -include hardware/google/pixel/PixelLogger/PixelLogger.mk -else -BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app -endif - # RadioExt Version USES_RADIOEXT_V1_7 = true @@ -1203,13 +1212,6 @@ include hardware/google/pixel/HardwareInfo/HardwareInfo.mk # UFS: the script is used to select the corresponding firmware to run FFU. PRODUCT_PACKAGES_DEBUG += ufs_firmware_update.sh -ifneq ($(BOARD_WITHOUT_RADIO),true) -# RIL extension service -ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) -include device/google/gs-common/pixel_ril/ril.mk -endif -endif - SUPPORT_VENDOR_SATELLITE_SERVICE := true # Telephony satellite geofence data file @@ -1234,7 +1236,3 @@ PRODUCT_PROPERTY_OVERRIDES += \ # since it can't be overridden from /vendor. PRODUCT_PRODUCT_PROPERTIES += \ dumpstate.strict_run=false - -# Shared Modem Platform -SHARED_MODEM_PLATFORM_VENDOR := lassen -include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk From 5e28bfad5ef3e2f5476e892cc876e8eebf5ca612 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Fri, 7 Jun 2024 01:30:08 +0000 Subject: [PATCH 131/150] Add modemml-tflite-service to system_ext Bug: 343367700 Test: Build pass Change-Id: I2dc03a4f253a53db536a38041bc2714960577b41 --- device.mk | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/device.mk b/device.mk index 3b5cd54..f71f038 100644 --- a/device.mk +++ b/device.mk @@ -233,15 +233,7 @@ ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) PRODUCT_PACKAGES += modemml-tflite-service \ libtensorflowlite_jni -# Allow TFLite service modules to be installed to the system partition -PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ - system/etc/vintf/manifest/modemml_tflite_service.xml \ - system/framework/modemml-tflite-service.jar \ - system/framework/oat/arm64/modemml-tflite-service.odex \ - system/framework/oat/arm64/modemml-tflite-service.vdex \ - system/lib64/libtensorflowlite_jni.so - -PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service +PRODUCT_SYSTEM_SERVER_JARS += system_ext:modemml-tflite-service endif # modem ML models configs From 8a0c1ccc9199063a2ef382ddb942b74834153f3c Mon Sep 17 00:00:00 2001 From: Dennis Shen Date: Fri, 7 Jun 2024 13:09:09 +0000 Subject: [PATCH 132/150] switch over to use new storage read api instead of server_configurable_flags, this new read api lib will be needed for new codegened aconfig flag lib. Bug: 321077378 Test m and avd Change-Id: Ib25c24bf437f2de5a557653ef6ed42f8fbac65e1 --- usb/usb/Android.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/usb/usb/Android.bp b/usb/usb/Android.bp index e70985c..20ba592 100644 --- a/usb/usb/Android.bp +++ b/usb/usb/Android.bp @@ -55,6 +55,7 @@ cc_binary { "libbinder_ndk", "libprotobuf-cpp-lite", "server_configurable_flags", + "libaconfig_storage_read_api_cc", ], static_libs: [ "libpixelusb-aidl", From fae17e2f416a7c205375d63503770a6e111fcfc3 Mon Sep 17 00:00:00 2001 From: chenkris Date: Mon, 10 Jun 2024 03:20:45 +0000 Subject: [PATCH 133/150] zumapro: build fingerprint dump Bug: 346450599 Test: adb bugreport Change-Id: Ic623a7b69110e1bb9c69544945d6180fbae2d30f --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 1fdf915..619d639 100644 --- a/device.mk +++ b/device.mk @@ -43,6 +43,7 @@ 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/gs-common/recorder/recorder.mk +include device/google/gs-common/fingerprint/fingerprint.mk include device/google/zumapro/dumpstate/item.mk From 77e5ba0426d9ba7b8daadae2aa2898207b49b172 Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Tue, 11 Jun 2024 03:19:55 +0000 Subject: [PATCH 134/150] Revert "Add modemml-tflite-service to system_ext" Revert submission 27728915-modemml-tflite-system-ext Reason for revert: Build breakage at ab/11950917 Reverted changes: /q/submissionid:27728915-modemml-tflite-system-ext Change-Id: I4b6318df2c29c3cd71e4925a50328c5e3902f543 --- device.mk | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/device.mk b/device.mk index f71f038..3b5cd54 100644 --- a/device.mk +++ b/device.mk @@ -233,7 +233,15 @@ ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) PRODUCT_PACKAGES += modemml-tflite-service \ libtensorflowlite_jni -PRODUCT_SYSTEM_SERVER_JARS += system_ext:modemml-tflite-service +# Allow TFLite service modules to be installed to the system partition +PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ + system/etc/vintf/manifest/modemml_tflite_service.xml \ + system/framework/modemml-tflite-service.jar \ + system/framework/oat/arm64/modemml-tflite-service.odex \ + system/framework/oat/arm64/modemml-tflite-service.vdex \ + system/lib64/libtensorflowlite_jni.so + +PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service endif # modem ML models configs From 4fb1f69c60db1635308b121ba612b679e437684c Mon Sep 17 00:00:00 2001 From: Poomarin Phloyphisut Date: Tue, 11 Jun 2024 05:51:07 +0000 Subject: [PATCH 135/150] pixelstats: add speaker_version sysfs for VendorSpeakerStatsReported Bug: 326342880 Test: Local Test Change-Id: I78344d36c0bfa0e0c4d028e7ae8e0acd4a98c396 --- pixelstats/service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index dac4a48..e76a4d6 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -130,7 +130,8 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { "/sys/devices/platform/exynos-drm/primary-panel/error_count_unknown", "/sys/devices/platform/exynos-drm/secondary-panel/error_count_te", "/sys/devices/platform/exynos-drm/secondary-panel/error_count_unknown", - } + }, + .SpeakerVersionPath = "/sys/devices/platform/audiometrics/speaker_version" }; const struct UeventListener::UeventPaths ueventPaths = { From 3f2b22c54c99a904452bcb7d97bf9f42ca9a9c1f Mon Sep 17 00:00:00 2001 From: Hsiu-Chang Chen Date: Tue, 11 Jun 2024 15:32:53 +0800 Subject: [PATCH 136/150] wifi: Move WIFI_BRCM_OPEN_SOURCE_MULTI_AKM to project-specific folder Since not all projects on this platform support open source multiple akm, move WIFI_BRCM_OPEN_SOURCE_MULTI_AKM to project-specific folder. Bug: 345118973 Test: Build Pass Change-Id: I80cf83e06eb1199dd4a9b702a9dec7f2af0463ec --- device.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/device.mk b/device.mk index 1fdf915..daad46c 100644 --- a/device.mk +++ b/device.mk @@ -852,8 +852,6 @@ PRODUCT_PACKAGES += wpa_supplicant.conf WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled -WIFI_BRCM_OPEN_SOURCE_MULTI_AKM := enabled - ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += wpa_cli PRODUCT_PACKAGES += hostapd_cli From 931d5dc1638b9dc2a5f39bfaa0f61a0dd913cf04 Mon Sep 17 00:00:00 2001 From: Cathy Hsu Date: Tue, 4 Jun 2024 08:58:11 +0000 Subject: [PATCH 137/150] Remove display related warnings Bug: 338548109 Bug: 340971451 Bug: 340971442 Test: No display warnings show Change-Id: I38ae75b67ce2779cd908ab31ef4fb1a61e00e45e --- BoardConfig-common.mk | 4 ---- device.mk | 4 ---- 2 files changed, 8 deletions(-) diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index e8f2f7c..099c238 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -150,8 +150,6 @@ endif #display_unit_test ifeq ($(USES_DEVICE_GOOGLE_ZUMAPRO),true) -# TODO(b/272725898): Needs to check with owner later -$(warning display_unit_test set to zuma on zumapro target) $(call soong_config_set,display_unit_test,soc,zuma) endif @@ -280,8 +278,6 @@ HWC_SUPPORT_COLOR_TRANSFORM := true BOARD_USES_EXYNOS_AFBC_FEATURE := true #BOARD_USES_HDRUI_GLES_CONVERSION := true -# TODO(b/272725898): Needs to check with owner later -$(warning BOARD_LIBACRYL_DEFAULT_COMPOSITOR set to zuma on zumapro target) BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_zuma BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin diff --git a/device.mk b/device.mk index daad46c..a92b247 100644 --- a/device.mk +++ b/device.mk @@ -67,8 +67,6 @@ ifeq ($(USE_PIXEL_GRALLOC),true) PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL endif -# TODO(b/272725898): Needs to check with owner later -$(warning hardware/google/graphics/zuma set to zuma on zumapro target) PRODUCT_SOONG_NAMESPACES += \ hardware/google/av \ hardware/google/gchips \ @@ -935,8 +933,6 @@ PRODUCT_SOONG_NAMESPACES += \ PRODUCT_PACKAGES += \ trusty_metricsd -# TODO(b/272725898): Needs to check with owner later -$(warning displaycolor_platform set to zuma on zumapro target) $(call soong_config_set,google_displaycolor,displaycolor_platform,zuma) PRODUCT_PACKAGES += \ android.hardware.composer.hwc3-service.pixel \ From 9bcf2600ec395be98bdf5d83f95a361d29aea0cf Mon Sep 17 00:00:00 2001 From: Hiroshi Akiyama Date: Fri, 7 Jun 2024 21:58:00 +0000 Subject: [PATCH 138/150] dump_power: parse vimon in dumpstate board Bug: 345835957 Test: generate bugreport Flag: EXEMPT bugfix Change-Id: Id611cd76a0133e1525ffe74e82a6c0d940e39aab Signed-off-by: Hiroshi Akiyama --- dumpstate/dump_power.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index e8989f0..a5b4253 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -776,6 +776,11 @@ void dumpMitigationDirs() { }; const int eraseCnt[] = {6, 6, 4, 0}; const bool useTitleRow[] = {true, true, true, false}; + const char *vimon_name = "vimon_buff"; + const char delimiter = '\n'; + const int vimon_len = strlen(vimon_name); + const double VIMON_VMULT = 7.8122e-5; + const double VIMON_IMULT = 7.8125e-4; std::vector files; std::string content; @@ -783,6 +788,9 @@ void dumpMitigationDirs() { std::string source; std::string subModuleName; std::string readout; + char *endptr; + + bool vimon_found = false; for (int i = 0; i < paramCount; i++) { printTitle(titles[i]); @@ -800,11 +808,40 @@ void dumpMitigationDirs() { readout = android::base::Trim(content); + if (strncmp(file.c_str(), vimon_name, vimon_len) == 0) + vimon_found = true; + subModuleName = std::string(file); subModuleName.erase(subModuleName.find(paramSuffix[i]), eraseCnt[i]); if (useTitleRow[i]) { printf("%s \t%s\n", subModuleName.c_str(), readout.c_str()); + } else if (vimon_found) { + + std::vector tokens; + std::istringstream tokenStream(readout); + std::string token; + + while (std::getline(tokenStream, token, delimiter)) { + tokens.push_back(token); + } + + bool oddEntry = true; + for (auto &hexval : tokens) { + int val = strtol(hexval.c_str(), &endptr, 16); + if (*endptr != '\0') { + printf("invalid vimon readout\n"); + break; + } + if (oddEntry) { + int vbatt = int(1000 * (val * VIMON_VMULT)); + printf("vimon vbatt: %d ", vbatt); + } else { + int ibatt = int(1000 * (val * VIMON_IMULT)); + printf("ibatt: %d\n", ibatt); + } + oddEntry = !oddEntry; + } } else { printf("%s=%s\n", subModuleName.c_str(), readout.c_str()); } From a22b308d42f721b09fa3d4f50c3ba9c456fe62a0 Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Wed, 12 Jun 2024 17:14:02 +0800 Subject: [PATCH 139/150] usb: Add retry on role switch Bug: 341996696 Change-Id: I8caa65288af1588d24fea4aa6c5768d45d69bbd5 Signed-off-by: Kyle Tso (cherry picked from commit ef5856a4474002cc35a51377adffddd4cb239796) --- usb/usb/Usb.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 4bdd5ed..1a03917 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -672,6 +672,10 @@ ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role fp = fopen(filename.c_str(), "w"); if (fp != NULL) { int ret = fputs(convertRoletoString(in_role).c_str(), fp); + if (ret == EAGAIN) { + std::this_thread::sleep_for(std::chrono::milliseconds(700)); + ret = fputs(convertRoletoString(in_role).c_str(), fp); + } fclose(fp); if ((ret != EOF) && ReadFileToString(filename, &written)) { written = Trim(written); From 4f43c1cdaf294cc3dc0d654113733ddc5e0582e9 Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Thu, 13 Jun 2024 16:54:37 +0800 Subject: [PATCH 140/150] usb: Log for retry on role switch Add a log for the retry. Also define the sleep time in the header file. Bug: 341996696 Change-Id: Ib3cc0c6ad576e7cda26b7f50cdc61d52e6349c78 Signed-off-by: Kyle Tso (cherry picked from commit d17fdff5f81cff76adaa75d50f26318be8048123) --- usb/usb/Usb.cpp | 3 ++- usb/usb/Usb.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index 1a03917..d8afb80 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -673,7 +673,8 @@ ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role if (fp != NULL) { int ret = fputs(convertRoletoString(in_role).c_str(), fp); if (ret == EAGAIN) { - std::this_thread::sleep_for(std::chrono::milliseconds(700)); + ALOGI("role switch busy, retry in %d ms", ROLE_SWAP_RETRY_MS); + std::this_thread::sleep_for(std::chrono::milliseconds(ROLE_SWAP_RETRY_MS)); ret = fputs(convertRoletoString(in_role).c_str(), fp); } fclose(fp); diff --git a/usb/usb/Usb.h b/usb/usb/Usb.h index 96af846..8f0c3a0 100644 --- a/usb/usb/Usb.h +++ b/usb/usb/Usb.h @@ -80,6 +80,7 @@ constexpr char kGadgetName[] = "11210000.dwc3"; #define DISPLAYPORT_IRQ_HPD_COUNT_CHECK 3 #define DISPLAYPORT_POLL_WAIT_MS 100 +#define ROLE_SWAP_RETRY_MS 700 #define SVID_DISPLAYPORT "ff01" #define SVID_THUNDERBOLT "8087" From d2b04fb9352c85619daf5ccd76011336310bc811 Mon Sep 17 00:00:00 2001 From: liangjlee Date: Thu, 27 Jun 2024 02:03:46 +0800 Subject: [PATCH 141/150] zumapro: Include power/power.mk Bug: 331612600 Flag: EXEMPT (bug 337358613) Signed-off-by: liangjlee (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b56737bc8bdcbb776185b452aab99ed54631fa00) Merged-In: I219168dd67835647fc4fc0a2f35484b634b94b8f Change-Id: I219168dd67835647fc4fc0a2f35484b634b94b8f --- device.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device.mk b/device.mk index 3389983..dc800c7 100644 --- a/device.mk +++ b/device.mk @@ -26,6 +26,7 @@ include device/google/gs-common/storage/storage.mk include device/google/gs-common/thermal/dump/thermal.mk include device/google/gs-common/thermal/thermal_hal/device.mk include device/google/gs-common/performance/perf.mk +include device/google/gs-common/power/power.mk include device/google/gs-common/pixel_metrics/pixel_metrics.mk include device/google/gs-common/soc/freq.mk include device/google/gs-common/gps/dump/log.mk From 274f916ac55f61da1f16922f92292bb77e366989 Mon Sep 17 00:00:00 2001 From: Jerry Huang Date: Thu, 27 Jun 2024 07:47:05 +0000 Subject: [PATCH 142/150] zumapro: update AVC, mpeg4 SW decoder performance point for 24Q3 Flag: EXEMPT bugfix Bug: 349265046 Test: MctsMediaDecoderTestCases android.media.decoder.cts.VideoDecoderPerfTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:34e36d4c11553f9bb9345ca80e046787636eccd3) Merged-In: Ib4afe631d4de39380d69cddeb652b3f7093ae577 Change-Id: Ib4afe631d4de39380d69cddeb652b3f7093ae577 --- media_codecs_performance_c2.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index 8e397ed..d72a962 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -115,13 +115,13 @@ - + - + - + - + @@ -135,9 +135,9 @@ - - - + + + From c705d6b6944497be5457526fac3c6e7c8d77b4af Mon Sep 17 00:00:00 2001 From: Kah Xuan Lim Date: Tue, 2 Jul 2024 06:13:40 +0000 Subject: [PATCH 143/150] Disable modemml-tflite-service The service is causing CTS test failure as it has Kotlin files which are not allowed for system services. It's safe to disable the service temporarily as we don't have any user depending on it for now. Bug: 349263931 Test: Manually flashed device with go/ab/P76995945, no errors observed Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:62e82d5678811a44b2803b1d8c1f132cea148335) Merged-In: I087a147d6b111c5ea1e89a3ea48961adef733c57 Change-Id: I087a147d6b111c5ea1e89a3ea48961adef733c57 --- device.mk | 23 ++++++++----------- .../base/core/res/res/values/config.xml | 5 ++-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/device.mk b/device.mk index dc800c7..d0097dc 100644 --- a/device.mk +++ b/device.mk @@ -228,21 +228,18 @@ $(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHA # modem_ml_svc_sit daemon PRODUCT_PACKAGES += modem_ml_svc_sit -ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) -# Modem ML TFLite service. -PRODUCT_PACKAGES += modemml-tflite-service \ - libtensorflowlite_jni +# TODO: b/350624523 - Add back modem ML TFLite service after it is ready. +# ifeq (,$(filter aosp_%,$(TARGET_PRODUCT))) +# # Modem ML TFLite service. +# PRODUCT_PACKAGES += modemml-tflite-service \ +# libtensorflowlite_jni -# Allow TFLite service modules to be installed to the system partition -PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ - system/etc/vintf/manifest/modemml_tflite_service.xml \ - system/framework/modemml-tflite-service.jar \ - system/framework/oat/arm64/modemml-tflite-service.odex \ - system/framework/oat/arm64/modemml-tflite-service.vdex \ - system/lib64/libtensorflowlite_jni.so +# # Allow TFLite service modules to be installed to the system partition +# PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ +# system/lib64/libtensorflowlite_jni.so -PRODUCT_SYSTEM_SERVER_JARS += modemml-tflite-service -endif +# PRODUCT_SYSTEM_SERVER_JARS += system_ext:modemml-tflite-service +# endif # modem ML models configs ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 1ed30fa..f6b7439 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -304,9 +304,10 @@ - + + 100% From 8458b558d72d3f72336242823217a4708f4a419f Mon Sep 17 00:00:00 2001 From: Tim Lin Date: Fri, 28 Jun 2024 15:53:38 +0000 Subject: [PATCH 144/150] Include ril.mk after DEVICE_MANIFEST_FILE is reset Bug: 348631842 Flag: EXEMPT bugfix Test: check carrier ID property is set correctly (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e116a1fba401aa5f9e367ebcaecbe56f38316510) Merged-In: I40160c14f65d5193962dd3f1e2862d129c8404b6 Change-Id: I40160c14f65d5193962dd3f1e2862d129c8404b6 --- device.mk | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/device.mk b/device.mk index d0097dc..04981c5 100644 --- a/device.mk +++ b/device.mk @@ -275,11 +275,6 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Pixel Logger include hardware/google/pixel/PixelLogger/PixelLogger.mk -# RIL extension service -ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) -include device/google/gs-common/pixel_ril/ril.mk -endif - # Use Lassen specifc Shared Modem Platform SHARED_MODEM_PLATFORM_VENDOR := lassen @@ -1207,6 +1202,13 @@ include hardware/google/pixel/HardwareInfo/HardwareInfo.mk # UFS: the script is used to select the corresponding firmware to run FFU. PRODUCT_PACKAGES_DEBUG += ufs_firmware_update.sh +ifneq ($(BOARD_WITHOUT_RADIO),true) +# RIL extension service +ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) +include device/google/gs-common/pixel_ril/ril.mk +endif +endif + SUPPORT_VENDOR_SATELLITE_SERVICE := true # Telephony satellite geofence data file From 25a7e49fc28afd8ce877737f9a1b934350556860 Mon Sep 17 00:00:00 2001 From: Steve Statia Date: Fri, 28 Jun 2024 17:55:11 +0000 Subject: [PATCH 145/150] Fix to hide Display over other apps permission setting for the Scone application. Flag: EXEMPT bugfix Bug: 349195999 Test: manually testing that the setting is removed from Adaptive Connectivity Services advanced settings page. (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:236eb6a6d40d73f32f28cfe386ac24109cbafd2f) Merged-In: I87c284411e63225fac9138b5f4f0578a0acd7212 Change-Id: I87c284411e63225fac9138b5f4f0578a0acd7212 --- .../apps/Settings/res/values/arrays.xml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 overlay/packages/apps/Settings/res/values/arrays.xml diff --git a/overlay/packages/apps/Settings/res/values/arrays.xml b/overlay/packages/apps/Settings/res/values/arrays.xml new file mode 100644 index 0000000..de6fd5c --- /dev/null +++ b/overlay/packages/apps/Settings/res/values/arrays.xml @@ -0,0 +1,22 @@ + + + + + + + com.google.android.apps.scone + + \ No newline at end of file From 1f282b39001cd83501026e09c9c695ba17c560b1 Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Wed, 24 Apr 2024 00:55:42 +0000 Subject: [PATCH 146/150] init.zumapro.soc.rc: Disable rampup for most groups except top-app and adpf When auto margins are enabled busy tasks will get more appropriate and coherent rampup time when they get busy. But for most groups, this can lead to unnecessary power consumption. Disable it except for top-app, sf and camera group. For ADPF, a faster rampup is desired as these tasks are usually sensitive to all sources of latencies. So try to give them more performance faster. Bug: 336169796 Test: PTE A/B test Signed-off-by: Qais Yousef (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4c364c7aba08e3b5fc5aecf0c0e673d8d8544e92) Merged-In: Ieb6f3de811d30b62f06809e73dc7df83c87d45d0 Change-Id: Ieb6f3de811d30b62f06809e73dc7df83c87d45d0 --- conf/init.zumapro.soc.rc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 2c6d4d5..919d396 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -28,6 +28,20 @@ on init write /proc/vendor_sched/groups/sys/uclamp_min 190 write /proc/vendor_sched/groups/sys/prefer_idle 1 + write /proc/vendor_sched/groups/bg/rampup_multiplier 0 + write /proc/vendor_sched/groups/cam/rampup_multiplier 1 + write /proc/vendor_sched/groups/cam_power/rampup_multiplier 1 + write /proc/vendor_sched/groups/dex2oat/rampup_multiplier 0 + write /proc/vendor_sched/groups/fg/rampup_multiplier 0 + write /proc/vendor_sched/groups/nnapi/rampup_multiplier 0 + write /proc/vendor_sched/groups/ota/rampup_multiplier 0 + write /proc/vendor_sched/groups/rt/rampup_multiplier 0 + write /proc/vendor_sched/groups/sf/rampup_multiplier 1 + write /proc/vendor_sched/groups/sys/rampup_multiplier 0 + write /proc/vendor_sched/groups/sys_bg/rampup_multiplier 0 + write /proc/vendor_sched/groups/ta/rampup_multiplier 1 + write /proc/vendor_sched/adpf_rampup_multiplier 2 + # governor setting write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500 From 7798172e8f61146f9bbab05ae34fb041106cd2be Mon Sep 17 00:00:00 2001 From: Qais Yousef Date: Tue, 23 Apr 2024 23:11:34 +0000 Subject: [PATCH 147/150] init.zumapro.soc.rc: Match sched_pixel settings to powerhint's We now default to 500us down_rate_limit_us. Boot with these defaults too. powerhint can still modify these to whatever setting required by the specific hint. Only difference is that down_rate_limit_scale_pow for little is now the default 1 instead of 2. Bug: 336169796 Test: PTE A/B test Signed-off-by: Qais Yousef (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4336a77fe65de3becebbe06c91adf9a743a3e300) Merged-In: I4f0712faaad87afbb0fc7627c45a61081f91e1e6 Change-Id: I4f0712faaad87afbb0fc7627c45a61081f91e1e6 --- conf/init.zumapro.soc.rc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/conf/init.zumapro.soc.rc b/conf/init.zumapro.soc.rc index 919d396..ac9c316 100644 --- a/conf/init.zumapro.soc.rc +++ b/conf/init.zumapro.soc.rc @@ -45,14 +45,13 @@ on init # governor setting write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500 - write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000 - write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2 + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 500 write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500 - write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000 + write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 500 write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500 - write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 20000 + write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500 # memlat cpuidle awareness setting # FIXME(b/301212469) these nodes missing on zuma pro From eba9ea1ebbb63f2d1802908c02f6b2a8a278b4a6 Mon Sep 17 00:00:00 2001 From: Jeremy DeHaan Date: Wed, 12 Jun 2024 16:32:16 -0700 Subject: [PATCH 148/150] zumapro: HWC access to panel frame_rate node Flag: EXEMPT bugfix Bug: 346461765 Signed-off-by: Jeremy DeHaan (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b2427428e58fbd59bd5cbb484be4badf62a3fa19) Merged-In: I2cdbd8126e5684891b6424d262aa505d2aa641b7 Change-Id: I2cdbd8126e5684891b6424d262aa505d2aa641b7 --- conf/init.zumapro.board.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 9923903..a0daa4f 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -408,6 +408,7 @@ on fs chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state + chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/debug chown system system /sys/class/dqe0/atc/ambient_light From 1f04d188365bdaba6da5e71e3229150f9a1c2134 Mon Sep 17 00:00:00 2001 From: Neha Jain Date: Thu, 18 Jul 2024 06:47:07 +0000 Subject: [PATCH 149/150] Revert "zumapro: HWC access to panel frame_rate node" This reverts commit eba9ea1ebbb63f2d1802908c02f6b2a8a278b4a6. Reason for revert: build break (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:cee98f8a2aaa7708ba41bfdeae6e029c299fed60) Merged-In: Ia66bb6862384fc94901a19526249657a25414fda Change-Id: Ia66bb6862384fc94901a19526249657a25414fda --- conf/init.zumapro.board.rc | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index a0daa4f..9923903 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -408,7 +408,6 @@ on fs chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state - chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/debug chown system system /sys/class/dqe0/atc/ambient_light From 9c87f41357037f532220377f8205a03a8da5a3be Mon Sep 17 00:00:00 2001 From: Jeremy DeHaan Date: Wed, 12 Jun 2024 16:32:16 -0700 Subject: [PATCH 150/150] zumapro: HWC access to panel frame_rate node Flag: EXEMPT bugfix Bug: 346461765 Signed-off-by: Jeremy DeHaan (cherry picked from commit b2427428e58fbd59bd5cbb484be4badf62a3fa19) (cherry picked from commit 3e8967723fb0f812aee791911cd1f0c181ee9e3d) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:85254d6dee1d216dde7b1a23fc76594c422fcecd) Merged-In: I2cdbd8126e5684891b6424d262aa505d2aa641b7 Change-Id: I2cdbd8126e5684891b6424d262aa505d2aa641b7 --- conf/init.zumapro.board.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/init.zumapro.board.rc b/conf/init.zumapro.board.rc index 9923903..a0daa4f 100644 --- a/conf/init.zumapro.board.rc +++ b/conf/init.zumapro.board.rc @@ -408,6 +408,7 @@ on fs chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state + chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate chown system system /sys/module/drm/parameters/vblankoffdelay chown system system /sys/module/drm/parameters/debug chown system system /sys/class/dqe0/atc/ambient_light