diff --git a/audio/felix/config/audio_policy_configuration.xml b/audio/felix/config/audio_policy_configuration.xml
index 1b44390..94e9d3f 100644
--- a/audio/felix/config/audio_policy_configuration.xml
+++ b/audio/felix/config/audio_policy_configuration.xml
@@ -93,7 +93,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/felix/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/felix/config/audio_policy_configuration_a2dp_offload_disabled.xml
index eb8560c..da6c7a7 100644
--- a/audio/felix/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/felix/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -92,7 +92,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/felix/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/felix/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index 1863d5a..416d4ab 100644
--- a/audio/felix/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/felix/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -88,7 +88,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/felix/config/audio_policy_configuration_le_offload_disabled.xml b/audio/felix/config/audio_policy_configuration_le_offload_disabled.xml
index bf54670..0745b2f 100644
--- a/audio/felix/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/felix/config/audio_policy_configuration_le_offload_disabled.xml
@@ -93,7 +93,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/conf/init.felix.rc b/conf/init.felix.rc
index ed12a3c..47475e3 100644
--- a/conf/init.felix.rc
+++ b/conf/init.felix.rc
@@ -18,6 +18,7 @@
     chown system system /sys/class/backlight/panel1-backlight/dimming_on
     chown system system /sys/class/backlight/panel1-backlight/hbm_mode
     chown system system /sys/class/backlight/panel1-backlight/local_hbm_mode
+    chown system system /sys/class/backlight/panel1-backlight/allow_wakeup_by_state_change
     chown system system /sys/devices/platform/exynos-drm/secondary-panel/gamma
     chown system system /sys/devices/platform/exynos-drm/secondary-panel/min_vrefresh
     chown system system /sys/devices/platform/exynos-drm/secondary-panel/idle_delay_ms
diff --git a/device-felix.mk b/device-felix.mk
index b1a0caa..e2489f4 100644
--- a/device-felix.mk
+++ b/device-felix.mk
@@ -21,6 +21,15 @@
 TARGET_BOARD_KERNEL_HEADERS := device/google/felix-kernel/kernel-headers
 TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_RIGHT
 
+ifdef RELEASE_GOOGLE_FELIX_KERNEL_VERSION
+TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_FELIX_KERNEL_VERSION)
+endif
+
+ifdef RELEASE_GOOGLE_FELIX_KERNEL_DIR
+TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_FELIX_KERNEL_DIR)
+TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_FELIX_KERNEL_DIR)/kernel-headers
+endif
+
 $(call inherit-product-if-exists, vendor/google_devices/felix/prebuilts/device-vendor-felix.mk)
 $(call inherit-product-if-exists, vendor/google_devices/gs201/prebuilts/device-vendor.mk)
 $(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
@@ -211,7 +220,7 @@
 
 # Increment the SVN for any official public releases
 PRODUCT_VENDOR_PROPERTIES += \
-    ro.vendor.build.svn=37
+    ro.vendor.build.svn=42
 
 # Vibrator HAL
 PRODUCT_VENDOR_PROPERTIES +=\
@@ -395,3 +404,12 @@
 PRODUCT_PRODUCT_PROPERTIES += \
     ro.quick_start.oem_id=00e0 \
     ro.quick_start.device_id=felix
+
+# Set support hide display cutout feature
+PRODUCT_PRODUCT_PROPERTIES += \
+    ro.support_hide_display_cutout=true
+
+PRODUCT_PACKAGES += \
+    NoCutoutOverlay \
+    AvoidAppsInCutoutOverlay
+
diff --git a/location/gps.xml.f10 b/location/gps.xml.f10
index e2cd884..a47afb2 100644
--- a/location/gps.xml.f10
+++ b/location/gps.xml.f10
@@ -60,7 +60,7 @@
        CpLppeUseAgnssLocForEmptyDbh="true"
        CpLppHighAccuracyShapeMode="1"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        RuntimeSwLteFilterEnable="true"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
@@ -93,6 +93,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/location/gps_user.xml.f10 b/location/gps_user.xml.f10
index b0c3fdf..19842ca 100644
--- a/location/gps_user.xml.f10
+++ b/location/gps_user.xml.f10
@@ -59,7 +59,7 @@
        CpLppeUseAgnssLocForEmptyDbh="true"
        CpLppHighAccuracyShapeMode="1"
        ReAidingOnHotStart="false"
-       ReAidingIntervalSec="1200"
+       ReAidingIntervalSec="3600"
        RuntimeSwLteFilterEnable="true"
        PpsDevice="/sys/class/pps/pps0/assert_elapsed"
        SensorsMask="0x244"
@@ -92,6 +92,8 @@
        MinGpsWeekNumber="2216"
        OnChipAccMask="50"
        EnableB1C="false"
+
+       RTICacheTimeoutSec="3600"
   />
 
   <gll_features
diff --git a/powerhint.json b/powerhint.json
index fbcc819..20cd066 100644
--- a/powerhint.json
+++ b/powerhint.json
@@ -785,6 +785,17 @@
       "Value": "LAUNCH_EXTEND"
     },
     {
+      "PowerHint": "LAUNCH",
+      "Type": "DoHint",
+      "Value": "LAUNCH_PMU"
+    },
+    {
+      "PowerHint": "LAUNCH_PMU",
+      "Node": "PMU_POLL",
+      "Duration": 3000,
+      "Value": "0"
+    },
+    {
       "PowerHint": "LAUNCH_EXTEND",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 2000,
@@ -940,6 +951,12 @@
       "Value": "4-7"
     },
     {
+      "PowerHint": "CAMERA_LAUNCH",
+      "Node": "PMU_POLL",
+      "Duration": 1000,
+      "Value": "0"
+    },
+    {
       "PowerHint": "CAMERA_LAUNCH_EXTENDED",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 2000,
@@ -964,6 +981,12 @@
       "Value": "0"
     },
     {
+      "PowerHint": "CAMERA_LAUNCH_EXTENDED",
+      "Node": "PMU_POLL",
+      "Duration": 2000,
+      "Value": "0"
+    },
+    {
       "PowerHint": "CAMERA_THERMAL_CPU_THROTTLE",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 1000,
@@ -984,22 +1007,34 @@
     {
       "PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
       "Node": "CPUBigClusterMaxFreq",
-      "Duration": 1000,
+      "Duration": 2500,
       "Value": "1826000"
     },
     {
       "PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
       "Node": "CPUMidClusterMaxFreq",
-      "Duration": 1000,
+      "Duration": 2500,
       "Value": "1491000"
     },
     {
       "PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
       "Node": "CPULittleClusterMaxFreq",
-      "Duration": 1000,
+      "Duration": 2500,
       "Value": "1401000"
     },
     {
+      "PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
+      "Node": "PMU_POLL",
+      "Duration": 2500,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
+      "Node": "EM_Profile",
+      "Duration": 2500,
+      "Value": "default"
+    },
+    {
       "PowerHint": "CAMERA_SHOT",
       "Node": "MemFreq",
       "Duration": 300,
@@ -1469,12 +1504,6 @@
     },
     {
       "PowerHint": "CAMERA_STREAMING_STANDARD",
-      "Node": "CDPreferIdle",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "CAMERA_STREAMING_STANDARD",
       "Node": "PMU_POLL",
       "Duration": 0,
       "Value": "1"
diff --git a/powerstats/felix/service.cpp b/powerstats/felix/service.cpp
index 2de3797..dd10ef1 100644
--- a/powerstats/felix/service.cpp
+++ b/powerstats/felix/service.cpp
@@ -38,36 +38,50 @@
 
 void addDisplay(std::shared_ptr<PowerStats> p) {
     // Add display residency stats for inner display
-    std::vector<std::string> inner_states = {
-        "Off",
-        "LP: 1840x2208@1",
-        "LP: 1840x2208@30",
-        "On: 1840x2208@1",
-        "On: 1840x2208@10",
-        "On: 1840x2208@60",
-        "On: 1840x2208@120",
-        "HBM: 1840x2208@60",
-        "HBM: 1840x2208@120"};
+    struct stat primaryBuffer;
+    if (!stat("/sys/class/drm/card0/device/primary-panel/time_in_state", &primaryBuffer)) {
+        // time_in_state exists
+        addDisplayMrrByEntity(p, "Inner Display", "/sys/class/drm/card0/device/primary-panel/");
+    } else {
+        // time_in_state doesn't exist
+        std::vector<std::string> inner_states = {
+            "Off",
+            "LP: 1840x2208@1",
+            "LP: 1840x2208@30",
+            "On: 1840x2208@1",
+            "On: 1840x2208@10",
+            "On: 1840x2208@60",
+            "On: 1840x2208@120",
+            "HBM: 1840x2208@60",
+            "HBM: 1840x2208@120"};
 
-    p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>(
-            "Inner Display",
-            "/sys/class/backlight/panel0-backlight/state",
-            inner_states));
+        p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>(
+                "Inner Display",
+                "/sys/class/backlight/panel0-backlight/state",
+                inner_states));
+    }
 
     // Add display residency stats for outer display
-    std::vector<std::string> outer_states = {
-        "Off",
-        "LP: 1080x2092@30",
-        "On: 1080x2092@10",
-        "On: 1080x2092@60",
-        "On: 1080x2092@120",
-        "HBM: 1080x2092@60",
-        "HBM: 1080x2092@120"};
+    struct stat secondaryBuffer;
+    if (!stat("/sys/class/drm/card0/device/secondary-panel/time_in_state", &secondaryBuffer)) {
+        // time_in_state exists
+        addDisplayMrrByEntity(p, "Outer Display", "/sys/class/drm/card0/device/secondary-panel/");
+    } else {
+        // time_in_state doesn't exist
+        std::vector<std::string> outer_states = {
+            "Off",
+            "LP: 1080x2092@30",
+            "On: 1080x2092@10",
+            "On: 1080x2092@60",
+            "On: 1080x2092@120",
+            "HBM: 1080x2092@60",
+            "HBM: 1080x2092@120"};
 
-    p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>(
-            "Outer Display",
-            "/sys/class/backlight/panel1-backlight/state",
-            outer_states));
+        p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>(
+                "Outer Display",
+                "/sys/class/backlight/panel1-backlight/state",
+                outer_states));
+    }
 
     // Add display energy consumer
     p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
index 94f377b..8079614 100644
--- a/rro_overlays/WifiOverlay/res/values/config.xml
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -167,4 +167,12 @@
          regulatory approval (for example, FCC pre-approval is required according to "594280 D01
          Software Configuration Control v02r01").-->
     <bool translatable="false" name ="config_wifiUpdateCountryCodeFromScanResultGeneric">true</bool>
+
+    <!-- Boolean indicating performing a partial initial scan is enabled -->
+    <bool translatable="false" name="config_wifiEnablePartialInitialScan">true</bool>
+
+    <!-- Configure the max number of new channels to add into the initial partial scan list per network.
+         If equals to 0, it means there's no limit on the max number of channels to include per network.-->
+    <integer translatable="false" name="config_wifiInitialPartialScanMaxNewChannelsPerNetwork">3</integer>
+
 </resources>
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
index 9fc0800..c783a92 100644
--- a/self-extractors/extract-lists.txt
+++ b/self-extractors/extract-lists.txt
@@ -11,7 +11,6 @@
             system_ext/lib64/libmediaadaptor.so \
             system_ext/priv-app/ShannonRcs/ShannonRcs.apk \
             system_ext/priv-app/ShannonIms/ShannonIms.apk \
-            system_ext/priv-app/PixelQualifiedNetworksService/PixelQualifiedNetworksService.apk \
             system_ext/priv-app/UwbVendorService/UwbVendorService.apk \
             "
     ;;
diff --git a/self-extractors/google_devices/staging/Android.mk.template b/self-extractors/google_devices/staging/Android.mk.template
index 01369bf..f1eb6b1 100644
--- a/self-extractors/google_devices/staging/Android.mk.template
+++ b/self-extractors/google_devices/staging/Android.mk.template
@@ -24,22 +24,6 @@
 ifneq ($(filter felix,$(TARGET_DEVICE)),)
 include $(CLEAR_VARS)
 LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_MODULE := PixelQualifiedNetworksService
-LOCAL_MODULE_TAGS := optional
-LOCAL_BUILT_MODULE_STEM := package.apk
-LOCAL_SYSTEM_EXT_MODULE := true
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_OWNER := samsung
-LOCAL_MODULE_CLASS := APPS
-LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
-LOCAL_CERTIFICATE := platform
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
 LOCAL_MODULE := ShannonIms
 LOCAL_MODULE_TAGS := optional
 LOCAL_BUILT_MODULE_STEM := package.apk
diff --git a/self-extractors/google_devices/staging/device-partial.mk b/self-extractors/google_devices/staging/device-partial.mk
index 9c4717f..42c43e7 100644
--- a/self-extractors/google_devices/staging/device-partial.mk
+++ b/self-extractors/google_devices/staging/device-partial.mk
@@ -17,7 +17,6 @@
 
 # AOSP packages required by the blobs
 PRODUCT_PACKAGES := \
-    PixelQualifiedNetworksService \
     ShannonIms \
     ShannonRcs \
     UwbVendorService \
diff --git a/vibrator/cs40l26/Hardware.h b/vibrator/cs40l26/Hardware.h
index 7ad4017..22667c9 100644
--- a/vibrator/cs40l26/Hardware.h
+++ b/vibrator/cs40l26/Hardware.h
@@ -110,7 +110,7 @@
         return true;
     }
     bool setFFEffect(int fd, struct ff_effect *effect, uint16_t timeoutMs) override {
-        if (((*effect).replay.length != timeoutMs) || (ioctl(fd, EVIOCSFF, effect) < 0)) {
+        if (ioctl(fd, EVIOCSFF, effect) < 0) {
             ALOGE("setFFEffect fail");
             return false;
         } else {
diff --git a/vibrator/cs40l26/Vibrator.cpp b/vibrator/cs40l26/Vibrator.cpp
index 7d5227e..bfb7cf1 100644
--- a/vibrator/cs40l26/Vibrator.cpp
+++ b/vibrator/cs40l26/Vibrator.cpp
@@ -363,7 +363,8 @@
             mFfEffects[effectIndex] = {
                     .type = FF_PERIODIC,
                     .id = -1,
-                    .replay.length = static_cast<uint16_t>(mEffectDurations[effectIndex]),
+                    // Length == 0 to allow firmware control of the duration
+                    .replay.length = 0,
                     .u.periodic.waveform = FF_CUSTOM,
                     .u.periodic.custom_data = new int16_t[2]{RAM_WVFRM_BANK, effectIndex},
                     .u.periodic.custom_len = FF_CUSTOM_DATA_LEN,
@@ -371,9 +372,11 @@
             // Bypass the waveform update due to different input name
             if ((strstr(inputEventName, "cs40l26") != nullptr) ||
                 (strstr(inputEventName, "cs40l26_dual_input") != nullptr)) {
+                // Let the firmware control the playback duration to avoid
+                // cutting any effect that is played short
                 if (!mHwApiDef->setFFEffect(
                             mInputFd, &mFfEffects[effectIndex],
-                            static_cast<uint16_t>(mFfEffects[effectIndex].replay.length))) {
+                            mEffectDurations[effectIndex])) {
                     ALOGE("Failed upload effect %d (%d): %s", effectIndex, errno, strerror(errno));
                 }
             }
@@ -403,7 +406,8 @@
                 mFfEffectsDual[effectIndex] = {
                         .type = FF_PERIODIC,
                         .id = -1,
-                        .replay.length = static_cast<uint16_t>(mEffectDurations[effectIndex]),
+                        // Length == 0 to allow firmware control of the duration
+                        .replay.length = 0,
                         .u.periodic.waveform = FF_CUSTOM,
                         .u.periodic.custom_data = new int16_t[2]{RAM_WVFRM_BANK, effectIndex},
                         .u.periodic.custom_len = FF_CUSTOM_DATA_LEN,
@@ -411,9 +415,11 @@
                 // Bypass the waveform update due to different input name
                 if ((strstr(inputEventName, "cs40l26") != nullptr) ||
                     (strstr(inputEventName, "cs40l26_dual_input") != nullptr)) {
+                    // Let the firmware control the playback duration to avoid
+                    // cutting any effect that is played short
                     if (!mHwApiDual->setFFEffect(
                                 mInputFdDual, &mFfEffectsDual[effectIndex],
-                                static_cast<uint16_t>(mFfEffectsDual[effectIndex].replay.length))) {
+                                mEffectDurations[effectIndex])) {
                         ALOGE("Failed upload flip's effect %d (%d): %s", effectIndex, errno,
                               strerror(errno));
                     }
@@ -795,9 +801,10 @@
     if (header_count == dspmem_chunk_bytes(ch)) {
         return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
     } else {
-        mFfEffects[WAVEFORM_COMPOSE].replay.length = totalDuration;
+        // Composition duration should be 0 to allow firmware to play the whole effect
+        mFfEffects[WAVEFORM_COMPOSE].replay.length = 0;
         if (mIsDual) {
-            mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = totalDuration;
+            mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = 0;
         }
         return performEffect(WAVEFORM_MAX_INDEX /*ignored*/, VOLTAGE_SCALE_MAX /*ignored*/, ch,
                              callback);
@@ -1501,9 +1508,10 @@
     }
 
     *outTimeMs = timeMs;
-    mFfEffects[WAVEFORM_COMPOSE].replay.length = static_cast<uint16_t>(timeMs);
+    // Compositions should have 0 duration
+    mFfEffects[WAVEFORM_COMPOSE].replay.length = 0;
     if (mIsDual) {
-        mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = static_cast<uint16_t>(timeMs);
+        mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = 0;
     }
 
     return ndk::ScopedAStatus::ok();
