diff --git a/OWNERS b/OWNERS
index 79003ba..7eed0c3 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,4 +1,4 @@
per-file powerhint.json = jychen@google.com,jenhaochen@google.com,wvw@google.com,joaodias@google.com
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
-per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:master:/OWNERS
+per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:main:/OWNERS
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
new file mode 100644
index 0000000..37ebb5e
--- /dev/null
+++ b/PREUPLOAD.cfg
@@ -0,0 +1,2 @@
+[Builtin Hooks]
+jsonlint = true
diff --git a/audio/felix/aidl_config/mixer_paths_aidl.xml b/audio/felix/aidl_config/mixer_paths_aidl.xml
index f9881e2..d44e685 100644
--- a/audio/felix/aidl_config/mixer_paths_aidl.xml
+++ b/audio/felix/aidl_config/mixer_paths_aidl.xml
@@ -416,6 +416,14 @@
+
+
+
+
+
+
+
+
@@ -476,6 +484,14 @@
+
+
+
+
+
+
+
+
@@ -536,6 +552,14 @@
+
+
+
+
+
+
+
+
@@ -601,6 +625,14 @@
+
+
+
+
+
+
+
+
@@ -661,6 +693,14 @@
+
+
+
+
+
+
+
+
@@ -733,6 +773,14 @@
+
+
+
+
+
+
+
+
@@ -851,6 +899,14 @@
+
+
+
+
+
+
+
+
@@ -885,6 +941,14 @@
+
+
+
+
+
+
+
+
@@ -913,6 +977,10 @@
+
+
+
+
@@ -937,6 +1005,10 @@
+
+
+
+
@@ -971,6 +1043,14 @@
+
+
+
+
+
+
+
+
@@ -1011,6 +1091,10 @@
+
+
+
+
@@ -1075,6 +1159,10 @@
+
+
+
+
@@ -1252,6 +1340,10 @@
+
+
+
+
diff --git a/bluetooth/le_audio_codec_capabilities.xml b/bluetooth/le_audio_codec_capabilities.xml
index 89d0de6..5853138 100644
--- a/bluetooth/le_audio_codec_capabilities.xml
+++ b/bluetooth/le_audio_codec_capabilities.xml
@@ -32,6 +32,9 @@
+
+
+
@@ -57,6 +60,9 @@
+
+
+
@@ -68,6 +74,7 @@
+
diff --git a/conf/init.felix.rc b/conf/init.felix.rc
index 1b5ce74..ed12a3c 100644
--- a/conf/init.felix.rc
+++ b/conf/init.felix.rc
@@ -83,6 +83,7 @@ on early-boot
# Wait for insmod_sh to finish all common modules
wait_for_prop vendor.common.modules.ready 1
start insmod_sh_felix
+ chown system system /sys/class/power_supply/dualbatt/dbatt_stats
service insmod_sh_felix /vendor/bin/insmod.sh /vendor/etc/init.insmod.felix.cfg
class main
diff --git a/device-felix.mk b/device-felix.mk
index e7d2e12..b1a0caa 100644
--- a/device-felix.mk
+++ b/device-felix.mk
@@ -14,6 +14,9 @@
# limitations under the License.
#
+# Restrict the visibility of Android.bp files to improve build analysis time
+$(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk)
+
TARGET_KERNEL_DIR ?= device/google/felix-kernel
TARGET_BOARD_KERNEL_HEADERS := device/google/felix-kernel/kernel-headers
TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_RIGHT
@@ -136,10 +139,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
# Bluetooth Tx power caps
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_felix_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \
- $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_felix_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \
- $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_felix_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_EU.csv \
- $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_felix_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_US.csv
+ device/google/felix/bluetooth/bluetooth_power_limits_felix_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \
+ device/google/felix/bluetooth/bluetooth_power_limits_felix_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \
+ device/google/felix/bluetooth/bluetooth_power_limits_felix_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_EU.csv \
+ device/google/felix/bluetooth/bluetooth_power_limits_felix_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_US.csv
# Spatial Audio
PRODUCT_PACKAGES += \
@@ -208,13 +211,14 @@ PRODUCT_SOONG_NAMESPACES += \
# Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.build.svn=30
+ ro.vendor.build.svn=37
# Vibrator HAL
PRODUCT_VENDOR_PROPERTIES +=\
ro.vendor.vibrator.hal.long.frequency.shift=0 \
ro.vendor.vibrator.hal.gpio.num=44 \
- ro.vendor.vibrator.hal.gpio.shift=2
+ ro.vendor.vibrator.hal.gpio.shift=2 \
+ persist.vendor.vibrator.hal.chirp.enabled=0
ACTUATOR_MODEL := luxshare_ict_lt_xlra1906d
# Fingerprint
@@ -237,7 +241,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_frame_rate_override=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.set_idle_timer_ms_4619827677550801152=80
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.support_kernel_idle_timer_4619827677550801152=true
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.set_idle_timer_ms_4619827677550801153=1500
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.set_idle_timer_ms_4619827677550801153=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.support_kernel_idle_timer_4619827677550801153=false
# Set zram size
@@ -251,6 +255,13 @@ PRODUCT_PACKAGES += \
# Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/24Q2
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/trunk
+endif
# Set zram size
PRODUCT_VENDOR_PROPERTIES += \
@@ -300,7 +311,7 @@ PRODUCT_VENDOR_PROPERTIES += \
##Audio Vendor property
PRODUCT_PROPERTY_OVERRIDES += \
- persist.vendor.audio.cca.enabled=true
+ persist.vendor.audio.cca.enabled=false
# Camera
PRODUCT_PROPERTY_OVERRIDES += \
@@ -368,6 +379,10 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
device/google/felix/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml
+# LE Audio Unicast Allowlist
+PRODUCT_PRODUCT_PROPERTIES += \
+ persist.bluetooth.leaudio.allow_list=SM-R510
+
# Bluetooth EWP test tool
PRODUCT_PACKAGES_DEBUG += \
ewp_tool
diff --git a/device_framework_matrix_product_felix.xml b/device_framework_matrix_product_felix.xml
index 7594e3c..90ef723 100644
--- a/device_framework_matrix_product_felix.xml
+++ b/device_framework_matrix_product_felix.xml
@@ -1,7 +1,7 @@
com.google.hardware.pixel.display
- 9
+ 10
IDisplay
secondary
diff --git a/felix/BoardConfig.mk b/felix/BoardConfig.mk
index 856eb42..1aaac33 100644
--- a/felix/BoardConfig.mk
+++ b/felix/BoardConfig.mk
@@ -20,12 +20,22 @@ BOARD_USES_GENERIC_AUDIO := true
USES_DEVICE_GOOGLE_FELIX := true
BOARD_KERNEL_CMDLINE += swiotlb=noforce
+RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_FELIX_RADIO_DIR)
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
# Enable load module in parallel
BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true
# The modules which need to be loaded in sequential
BOARD_KERNEL_CMDLINE += exynos_drm.load_sequential=1
BOARD_KERNEL_CMDLINE += panel-samsung-ana6707-f10.load_sequential=1
+BOARD_KERNEL_CMDLINE += s2mpg12-regulator.load_sequential=1
#Display
USES_IDISPLAY_INTF_SEC := true
diff --git a/felix/overlay/frameworks/base/core/res/res/values/config.xml b/felix/overlay/frameworks/base/core/res/res/values/config.xml
index 8899594..7d50be7 100644
--- a/felix/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/felix/overlay/frameworks/base/core/res/res/values/config.xml
@@ -42,7 +42,7 @@
0
- false
+ true
120
diff --git a/felix/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml b/felix/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml
index 9cbf278..4f1e1f3 100644
--- a/felix/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/felix/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -19,5 +19,5 @@
- 0.85
-40dp
- -5dp
+ -15dp
diff --git a/location/gps.xml.f10 b/location/gps.xml.f10
index 11d6397..e2cd884 100644
--- a/location/gps.xml.f10
+++ b/location/gps.xml.f10
@@ -35,7 +35,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps_user.xml.f10 b/location/gps_user.xml.f10
index 9ea21bf..b0c3fdf 100644
--- a/location/gps_user.xml.f10
+++ b/location/gps_user.xml.f10
@@ -34,7 +34,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/manifest.xml b/manifest.xml
index 56f489c..ae2f526 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -114,7 +114,7 @@
vendor.google.google_battery
- 2
+ 3
IGoogleBattery
default
diff --git a/powerhint.json b/powerhint.json
index 694c5f6..fbcc819 100644
--- a/powerhint.json
+++ b/powerhint.json
@@ -177,7 +177,7 @@
},
{
"Name": "CAMUClampBoost",
- "Path": "/proc/vendor_sched/cam_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
"Values": [
"764",
"0"
@@ -186,7 +186,7 @@
},
{
"Name": "TAUClampBoost",
- "Path": "/proc/vendor_sched/ta_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
"Values": [
"764",
"1"
@@ -195,7 +195,7 @@
},
{
"Name": "FGUClampBoost",
- "Path": "/proc/vendor_sched/fg_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
"Values": [
"159",
"0"
@@ -204,7 +204,7 @@
},
{
"Name": "MLUclampBoost",
- "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
"Values": [
"225",
"813"
@@ -223,7 +223,7 @@
},
{
"Name": "CDPreferIdle",
- "Path": "/proc/vendor_sched/cam_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
"Values": [
"0",
"1"
@@ -269,7 +269,7 @@
},
{
"Name": "TAPreferHighCap",
- "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
"Values": [
"1",
"0"
@@ -278,7 +278,7 @@
},
{
"Name": "TAPreferIdle",
- "Path": "/proc/vendor_sched/ta_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
"Values": [
"0",
"1"
@@ -287,7 +287,7 @@
},
{
"Name": "FGPreferIdle",
- "Path": "/proc/vendor_sched/fg_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
"Values": [
"1",
"0"
@@ -297,7 +297,7 @@
},
{
"Name": "CDPreferHighCap",
- "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
"Values": [
"1",
"0"
@@ -319,7 +319,7 @@
"Values": [
"0",
"1"
- ],
+ ]
},
{
"Name": "DisplayWakeup",
@@ -551,6 +551,15 @@
"0"
]
},
+ {
+ "Name": "EM_Profile",
+ "Path": "/sys/kernel/pixel_em/active_profile",
+ "Values": [
+ "default",
+ "cam1"
+ ],
+ "DefaultIndex": 0
+ },
{
"Name": "PMU_POLL",
"Path": "/proc/vendor_sched/pmu_poll_enable",
@@ -671,7 +680,7 @@
},
{
"Name": "Dex2oatGroup",
- "Path": "/proc/vendor_sched/dex2oat_ug",
+ "Path": "/proc/vendor_sched/groups/dex2oat/ug",
"Values": [
"1",
"0"
@@ -793,6 +802,71 @@
"Duration": 2000,
"Value": "9999999"
},
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "ReducePreferIdle",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE_GPU",
+ "Node": "GPUDvfsPeriod",
+ "Duration": 1000,
+ "Value": "10"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Type": "DoHint",
+ "Value": "DISPLAY_CHANGE_GPU"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAUClampBoost",
+ "Duration": 5000,
+ "Value": "764"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGUClampBoost",
+ "Duration": 5000,
+ "Value": "159"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "MemFreq",
+ "Duration": 5000,
+ "Value": "3172000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "NPITaskPacking",
+ "Duration": 5000,
+ "Value": "0"
+ },
{
"PowerHint": "CPU_LOAD_RESET",
"Node": "GPUMinFreq",
@@ -979,6 +1053,18 @@
"Duration": 1000,
"Value": "664000"
},
+ {
+ "PowerHint": "CAMERA_ZOOMING_BOOST",
+ "Node": "CDPreferIdle",
+ "Duration": 100,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "CAMERA_ZOOMING_BOOST",
+ "Node": "PMU_POLL",
+ "Duration": 100,
+ "Value": "0"
+ },
{
"PowerHint": "GCA_CAMERA_SHOT_BIGCPU_RANK1",
"Node": "TAPreferHighCap",
@@ -1389,21 +1475,63 @@
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
- "Node": "CPUBigClusterMaxFreq",
+ "Node": "PMU_POLL",
+ "Duration": 0,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "EM_Profile",
+ "Duration": 0,
+ "Value": "cam1"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_LIT_LCPI_THRESHOLD",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_LIT_SPC_THRESHOLD",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_MID_LIMIT_FREQ",
+ "Duration": 0,
+ "Value": "1836000"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_MID_LCPI_THRESHOLD",
+ "Duration": 0,
+ "Value": "3"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_MID_SPC_THRESHOLD",
+ "Duration": 0,
+ "Value": "50"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "PMU_BIG_LIMIT_FREQ",
"Duration": 0,
"Value": "1826000"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
- "Node": "CPUMidClusterMaxFreq",
+ "Node": "PMU_BIG_LCPI_THRESHOLD",
"Duration": 0,
- "Value": "1491000"
+ "Value": "3"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
- "Node": "CPULittleClusterMaxFreq",
+ "Node": "PMU_BIG_SPC_THRESHOLD",
"Duration": 0,
- "Value": "1401000"
+ "Value": "50"
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
diff --git a/vibrator/cs40l26/Hardware.h b/vibrator/cs40l26/Hardware.h
index 51619e5..7ad4017 100644
--- a/vibrator/cs40l26/Hardware.h
+++ b/vibrator/cs40l26/Hardware.h
@@ -359,9 +359,7 @@ class HwCal : public Vibrator::HwCal, private HwCalBase {
return true;
}
bool isChirpEnabled() override {
- bool value;
- getProperty("chirp.enabled", &value, false);
- return value;
+ return utils::getProperty("persist.vendor.vibrator.hal.chirp.enabled", false);
}
bool getSupportedPrimitives(uint32_t *value) override {
return getProperty("supported_primitives", value, (uint32_t)0);
diff --git a/vibrator/cs40l26/Vibrator.cpp b/vibrator/cs40l26/Vibrator.cpp
index 5ad996a..7d5227e 100644
--- a/vibrator/cs40l26/Vibrator.cpp
+++ b/vibrator/cs40l26/Vibrator.cpp
@@ -55,11 +55,6 @@ static constexpr uint8_t VOLTAGE_SCALE_MAX = 100;
static constexpr int8_t MAX_COLD_START_LATENCY_MS = 6; // I2C Transaction + DSP Return-From-Standby
static constexpr int8_t MAX_PAUSE_TIMING_ERROR_MS = 1; // ALERT Irq Handling
static constexpr uint32_t MAX_TIME_MS = UINT16_MAX;
-static constexpr float SETTING_TIME_OVERHEAD = 26; // This time was combined by
- // HAL set the effect to
- // driver and the kernel
- // executes the effect before
- // chip play the effect
static constexpr auto ASYNC_COMPLETION_TIMEOUT = std::chrono::milliseconds(100);
static constexpr auto POLLING_TIMEOUT = 20;
@@ -358,7 +353,7 @@ Vibrator::Vibrator(std::unique_ptr hwApiDefault, std::unique_ptr h
mFfEffects.resize(WAVEFORM_MAX_INDEX);
mEffectDurations.resize(WAVEFORM_MAX_INDEX);
mEffectDurations = {
- 1000, 100, 32, 1000, 300, 130, 150, 500, 100, 10, 12, 1000, 1000, 1000,
+ 1000, 100, 12, 1000, 300, 130, 150, 500, 100, 5, 12, 1000, 1000, 1000,
}; /* 11+3 waveforms. The duration must < UINT16_MAX */
uint8_t effectIndex;
@@ -701,8 +696,8 @@ ndk::ScopedAStatus Vibrator::getPrimitiveDuration(CompositePrimitive primitive,
if (!status.isOk()) {
return status;
}
- // Please check the overhead time detail in b/261841035
- *durationMs = mEffectDurations[effectIndex] + SETTING_TIME_OVERHEAD;
+
+ *durationMs = mEffectDurations[effectIndex];
} else {
*durationMs = 0;
}