[automerger skipped] Merge Android 24Q1 Release (ab/11220357) am: f2609fdb79 -s ours

am skip reason: Merged-In I201e622fc82223aeb7c7f30ce452c714f14ebf60 with SHA-1 2a16b70d54 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/device/google/raviole/+/25972548

Change-Id: Ia85e9999493e74bb0535de6252858caca75c4f11
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/audio/oriole/config/audio_policy_configuration.xml b/audio/oriole/config/audio_policy_configuration.xml
index f91a44d..b40204e 100644
--- a/audio/oriole/config/audio_policy_configuration.xml
+++ b/audio/oriole/config/audio_policy_configuration.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
index bc18a46..0f85d74 100644
--- a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index 90e4a16..a55b5d1 100644
--- a/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/oriole/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -90,7 +90,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
index a96e6b3..72748dd 100644
--- a/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/raven/config/audio_policy_configuration.xml b/audio/raven/config/audio_policy_configuration.xml
index f91a44d..b40204e 100644
--- a/audio/raven/config/audio_policy_configuration.xml
+++ b/audio/raven/config/audio_policy_configuration.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
index bc18a46..0f85d74 100644
--- a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index 90e4a16..a55b5d1 100644
--- a/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/raven/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -90,7 +90,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
index a96e6b3..72748dd 100644
--- a/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
@@ -94,7 +94,7 @@
                              samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
-                <mixPort name="incall capture" role="sink">
+                <mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO"/>
diff --git a/device-oriole.mk b/device-oriole.mk
index 6044ec6..477e944 100644
--- a/device-oriole.mk
+++ b/device-oriole.mk
@@ -20,6 +20,15 @@
 TARGET_KERNEL_DIR ?= device/google/raviole-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/raviole-kernel/kernel-headers
 
+ifdef RELEASE_GOOGLE_ORIOLE_KERNEL_VERSION
+TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_ORIOLE_KERNEL_VERSION)
+endif
+
+ifdef RELEASE_GOOGLE_ORIOLE_KERNEL_DIR
+TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_ORIOLE_KERNEL_DIR)
+TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_ORIOLE_KERNEL_DIR)/kernel-headers
+endif
+
 $(call inherit-product-if-exists, vendor/google_devices/raviole/prebuilts/device-vendor-oriole.mk)
 $(call inherit-product-if-exists, vendor/google_devices/gs101/prebuilts/device-vendor.mk)
 $(call inherit-product-if-exists, vendor/google_devices/gs101/proprietary/device-vendor.mk)
@@ -199,7 +208,7 @@
 
 # Increment the SVN for any official public releases
 PRODUCT_VENDOR_PROPERTIES += \
-    ro.vendor.build.svn=75
+    ro.vendor.build.svn=77
 
 # Set support hide display cutout feature
 PRODUCT_PRODUCT_PROPERTIES += \
diff --git a/device-raven.mk b/device-raven.mk
index 1549d07..a5e0de7 100644
--- a/device-raven.mk
+++ b/device-raven.mk
@@ -20,6 +20,15 @@
 TARGET_KERNEL_DIR ?= device/google/raviole-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/raviole-kernel/kernel-headers
 
+ifdef RELEASE_GOOGLE_RAVEN_KERNEL_VERSION
+TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_RAVEN_KERNEL_VERSION)
+endif
+
+ifdef RELEASE_GOOGLE_RAVEN_KERNEL_DIR
+TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_RAVEN_KERNEL_DIR)
+TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_RAVEN_KERNEL_DIR)/kernel-headers
+endif
+
 $(call inherit-product, device/google/raviole/uwb/uwb_calibration_country.mk)
 $(call inherit-product-if-exists, vendor/google_devices/raviole/prebuilts/device-vendor-raven.mk)
 $(call inherit-product-if-exists, vendor/google_devices/gs101/prebuilts/device-vendor.mk)
@@ -203,7 +212,7 @@
 
 # Increment the SVN for any official public releases
 PRODUCT_VENDOR_PROPERTIES += \
-    ro.vendor.build.svn=75
+    ro.vendor.build.svn=77
 
 # Set support hide display cutout feature
 PRODUCT_PRODUCT_PROPERTIES += \
diff --git a/init.insmod.oriole.cfg b/init.insmod.oriole.cfg
index 6617a28..0ab8ad5 100644
--- a/init.insmod.oriole.cfg
+++ b/init.insmod.oriole.cfg
@@ -9,6 +9,7 @@
 modprobe|bcmdhd4389.ko
 modprobe|ftm5.ko
 modprobe|sec_touch.ko
+modprobe|st33spi.ko
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
diff --git a/init.insmod.raven.cfg b/init.insmod.raven.cfg
index d12fc88..84b3239 100644
--- a/init.insmod.raven.cfg
+++ b/init.insmod.raven.cfg
@@ -8,6 +8,7 @@
 # Modules here will be loaded *after* all common modules
 modprobe|bcmdhd4389.ko
 modprobe|sec_touch.ko
+modprobe|st33spi.ko
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
diff --git a/location/gps.xml b/location/gps.xml
index 97c7d8b..52827b8 100644
--- a/location/gps.xml
+++ b/location/gps.xml
@@ -59,7 +59,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -92,6 +92,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps.xml.oriole b/location/gps.xml.oriole
index a76f153..323fe17 100644
--- a/location/gps.xml.oriole
+++ b/location/gps.xml.oriole
@@ -59,7 +59,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -92,6 +92,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps.xml.raven b/location/gps.xml.raven
index 9a64d97..f205e75 100644
--- a/location/gps.xml.raven
+++ b/location/gps.xml.raven
@@ -59,7 +59,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -92,6 +92,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps_user.xml b/location/gps_user.xml
index c2184c2..a5a4066 100644
--- a/location/gps_user.xml
+++ b/location/gps_user.xml
@@ -58,7 +58,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -91,6 +91,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps_user.xml.oriole b/location/gps_user.xml.oriole
index f09913a..e04f9fe 100644
--- a/location/gps_user.xml.oriole
+++ b/location/gps_user.xml.oriole
@@ -58,7 +58,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -91,6 +91,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps_user.xml.raven b/location/gps_user.xml.raven
index 858732d..c132781 100644
--- a/location/gps_user.xml.raven
+++ b/location/gps_user.xml.raven
@@ -58,7 +58,7 @@
        CpLppeCancelDbhOnAgnssProvideLoc="true"
        CpLppeUseAgnssLocForEmptyDbh="true"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
        MaxThreadNum="13"
@@ -91,6 +91,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
index fa178a8..8e6ed37 100644
--- a/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -52,5 +52,8 @@
 
     <!-- Offset should not be more than 1mm -->
     <dimen name="udfps_burn_in_offset_y">16px</dimen>
+
+    <!-- Pixel pitch of the device. um/px -->
+    <item name="pixel_pitch" format="float" type="dimen">61.8</item>
 </resources>
 
diff --git a/powerhint-oriole.json b/powerhint-oriole.json
index 7161acd..47e6bf1 100644
--- a/powerhint-oriole.json
+++ b/powerhint-oriole.json
@@ -122,7 +122,7 @@
     },
     {
       "Name": "CPUBigClusterDownRateLimitUs",
-      "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
       "Values": [
         "20000",
         "3000"
diff --git a/powerhint-raven.json b/powerhint-raven.json
index 1dc065c..ebd95a5 100644
--- a/powerhint-raven.json
+++ b/powerhint-raven.json
@@ -121,7 +121,7 @@
     },
     {
       "Name": "CPUBigClusterDownRateLimitUs",
-      "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
       "Values": [
         "20000",
         "3000"
diff --git a/powerhint-slider.json b/powerhint-slider.json
index d8755b1..5726aa9 100644
--- a/powerhint-slider.json
+++ b/powerhint-slider.json
@@ -121,7 +121,7 @@
     },
     {
       "Name": "CPUBigClusterDownRateLimitUs",
-      "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
       "Values": [
         "20000",
         "3000"
diff --git a/powerhint-whitefin.json b/powerhint-whitefin.json
index 8576d18..d44d6f9 100644
--- a/powerhint-whitefin.json
+++ b/powerhint-whitefin.json
@@ -121,7 +121,7 @@
     },
     {
       "Name": "CPUBigClusterDownRateLimitUs",
-      "Path": "/sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
       "Values": [
         "20000",
         "3000"
diff --git a/powerstats/oriole/service.cpp b/powerstats/oriole/service.cpp
index af936a3..09466cd 100644
--- a/powerstats/oriole/service.cpp
+++ b/powerstats/oriole/service.cpp
@@ -41,17 +41,24 @@
 
 void addDisplay(std::shared_ptr<PowerStats> p) {
     // Add display residency stats
-    std::vector<std::string> states = {
-        "Off",
-        "LP: 1080x2400@30",
-        "On: 1080x2400@60",
-        "On: 1080x2400@90",
-        "HBM: 1080x2400@60",
-    };
+    struct stat buffer;
+    if (!stat("/sys/class/drm/card0/device/primary-panel/time_in_state", &buffer)) {
+        // time_in_state exists
+        addDisplayMrr(p);
+    } else {
+        // time_in_state doesn't exist
+        std::vector<std::string> states = {
+            "Off",
+            "LP: 1080x2400@30",
+            "On: 1080x2400@60",
+            "On: 1080x2400@90",
+            "HBM: 1080x2400@60",
+        };
 
-    p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
-            "/sys/class/backlight/panel0-backlight/state",
-            states));
+        p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
+                "/sys/class/backlight/panel0-backlight/state",
+                states));
+    }
 
     std::string rev = android::base::GetProperty(kBootRevision, "");
 
diff --git a/powerstats/raven/service.cpp b/powerstats/raven/service.cpp
index 10bf17e..d8494e2 100644
--- a/powerstats/raven/service.cpp
+++ b/powerstats/raven/service.cpp
@@ -43,21 +43,28 @@
 
 void addDisplay(std::shared_ptr<PowerStats> p) {
     // Add display residency stats
-    std::vector<std::string> states = {
-        "Off",
-        "LP: 1440x3120@10",
-        "LP: 1440x3120@30",
-        "On: 1440x3120@10",
-        "On: 1440x3120@30",
-        "On: 1440x3120@60",
-        "On: 1440x3120@90",
-        "On: 1440x3120@120",
-        "HBM: 1440x3120@60",
-    };
+    struct stat buffer;
+    if (!stat("/sys/class/drm/card0/device/primary-panel/time_in_state", &buffer)) {
+        // time_in_state exists
+        addDisplayMrr(p);
+    } else {
+        // time_in_state doesn't exist
+        std::vector<std::string> states = {
+            "Off",
+            "LP: 1440x3120@10",
+            "LP: 1440x3120@30",
+            "On: 1440x3120@10",
+            "On: 1440x3120@30",
+            "On: 1440x3120@60",
+            "On: 1440x3120@90",
+            "On: 1440x3120@120",
+            "HBM: 1440x3120@60",
+        };
 
-    p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
-            "/sys/class/backlight/panel0-backlight/state",
-            states));
+        p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
+                "/sys/class/backlight/panel0-backlight/state",
+                states));
+    }
 
     std::string rev = android::base::GetProperty(kBootRevision, "");
 
diff --git a/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
index bc7aab2..78e96da 100644
--- a/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -59,5 +59,8 @@
 
     <!-- Padding for the lock icon on the keyguard. In pixels - should not scale with display size. -->
     <dimen name="lock_icon_padding">68px</dimen>
+
+    <!-- Pixel pitch of the device. um/px -->
+    <item name="pixel_pitch" format="float" type="dimen">49.6</item>
 </resources>