diff --git a/audio/tegu/aidl_config/audio_platform_configuration.xml b/audio/tegu/aidl_config/audio_platform_configuration.xml
index ee381be..81ec0fe 100644
--- a/audio/tegu/aidl_config/audio_platform_configuration.xml
+++ b/audio/tegu/aidl_config/audio_platform_configuration.xml
@@ -76,6 +76,9 @@
+
+
+
diff --git a/audio/tegu/config/mixer_paths.xml b/audio/tegu/config/mixer_paths.xml
index af25600..f0a8ef5 100644
--- a/audio/tegu/config/mixer_paths.xml
+++ b/audio/tegu/config/mixer_paths.xml
@@ -687,7 +687,7 @@
-
+
@@ -699,7 +699,7 @@
-
+
@@ -713,7 +713,7 @@
-
+
@@ -725,7 +725,7 @@
-
+
@@ -739,7 +739,7 @@
-
+
@@ -751,7 +751,7 @@
-
+
@@ -764,7 +764,7 @@
-
+
@@ -777,7 +777,7 @@
-
+
@@ -789,7 +789,7 @@
-
+
@@ -801,7 +801,7 @@
-
+
@@ -823,7 +823,7 @@
-
+
@@ -836,7 +836,7 @@
-
+
diff --git a/audio/tegu/prebuilt/libspeechenhancer/Android.bp b/audio/tegu/prebuilt/libspeechenhancer/Android.bp
new file mode 100644
index 0000000..9d4a232
--- /dev/null
+++ b/audio/tegu/prebuilt/libspeechenhancer/Android.bp
@@ -0,0 +1,43 @@
+// Copyright (C) 2024 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.
+soong_namespace {
+}
+
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_prebuilt_library_shared {
+ name: "libspeechenhancer",
+ vendor: true,
+ owner: "google",
+ proprietary: true,
+ allow_undefined_symbols: true,
+ arch: {
+ arm64: {
+ srcs: ["arm64/libspeechenhancer.so"],
+ },
+ },
+
+ shared_libs: [
+ "libcutils",
+ "libEGL",
+ "libGLESv2",
+ "libbinder_ndk",
+ "liblog",
+ "libsync",
+ "libz",
+ "libnativewindow",
+ ],
+}
diff --git a/audio/tegu/prebuilt/libspeechenhancer/arm64/libspeechenhancer.so b/audio/tegu/prebuilt/libspeechenhancer/arm64/libspeechenhancer.so
new file mode 100644
index 0000000..4d0fdaa
Binary files /dev/null and b/audio/tegu/prebuilt/libspeechenhancer/arm64/libspeechenhancer.so differ
diff --git a/device-tegu.mk b/device-tegu.mk
index 8e5948e..ba6d04b 100644
--- a/device-tegu.mk
+++ b/device-tegu.mk
@@ -175,6 +175,13 @@ PRODUCT_PACKAGES += \
audio_sounddose_aoc
endif
+# HdMic Audio
+PRODUCT_SOONG_NAMESPACES += device/google/tegu/audio/tegu/prebuilt/libspeechenhancer
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.vendor.app.audio.gsenet.version=1
+PRODUCT_PACKAGES += \
+ libspeechenhancer
+
# Bluetooth LE Audio
PRODUCT_PRODUCT_PROPERTIES += \
ro.bluetooth.leaudio_switcher.supported=true \
diff --git a/perf/powerhint-tegu.json b/perf/powerhint-tegu.json
index 94c41c8..1ef994b 100644
--- a/perf/powerhint-tegu.json
+++ b/perf/powerhint-tegu.json
@@ -207,6 +207,16 @@
],
"ResetOnInit": true
},
+ {
+ "Name": "MaxLoadBalanceInterval",
+ "Path": "/proc/vendor_sched/max_load_balance_interval",
+ "Values": [
+ "1",
+ "4"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
+ },
{
"Name": "ReducePreferIdle",
"Path": "/proc/vendor_sched/reduce_prefer_idle",
@@ -2061,6 +2071,12 @@
"Duration": 0,
"Value": "0"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_EXTREME",
+ "Node": "MaxLoadBalanceInterval",
+ "Duration": 0,
+ "Value": "4"
+ },
{
"PowerHint": "CAMERA_STREAMING_EXTREME",
"Node": "CDHighCpusetCpus",
@@ -2247,6 +2263,12 @@
"Duration": 0,
"Value": "0"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_HIGH",
+ "Node": "MaxLoadBalanceInterval",
+ "Duration": 0,
+ "Value": "4"
+ },
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CDHighCpusetCpus",
@@ -2301,6 +2323,12 @@
"Duration": 0,
"Value": "0"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "MaxLoadBalanceInterval",
+ "Duration": 0,
+ "Value": "4"
+ },
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "PowerHALCameraRunning",
@@ -2637,6 +2665,12 @@
"Duration": 0,
"Value": "0"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_VIDEO_CALL",
+ "Node": "MaxLoadBalanceInterval",
+ "Duration": 0,
+ "Value": "4"
+ },
{
"PowerHint": "CAMERA_STREAMING_VIDEO_CALL",
"Node": "CDPreferIdle",
@@ -3406,6 +3440,12 @@
"Duration": 0,
"Value": "0"
},
+ {
+ "PowerHint": "CAMERA_PROJECT11",
+ "Node": "MaxLoadBalanceInterval",
+ "Duration": 0,
+ "Value": "4"
+ },
{
"PowerHint": "CAMERA_PROJECT11",
"Node": "PowerHALCameraRunning",
diff --git a/thermal/thermal_info_config_tegu.json b/thermal/thermal_info_config_tegu.json
index e5d1050..8ae3564 100644
--- a/thermal/thermal_info_config_tegu.json
+++ b/thermal/thermal_info_config_tegu.json
@@ -1266,6 +1266,10 @@
{
"Monitor": ["rfpa_therm"],
"TempRange": [-20.0, 60.0]
+ },
+ {
+ "Monitor": ["VIRTUAL-SKIN-MODEL-LEGACY-DIFF"],
+ "TempRange": [-7000, 7000]
}
]
}