diff --git a/OWNERS b/OWNERS
index 1451bd8..79003ba 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1 +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
diff --git a/audio/lynx/aidl_config/audio_platform_configuration_aidl.xml b/audio/lynx/aidl_config/audio_platform_configuration_aidl.xml
new file mode 100644
index 0000000..912b4aa
--- /dev/null
+++ b/audio/lynx/aidl_config/audio_platform_configuration_aidl.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/lynx/aidl_config/audio_policy_configuration.xml b/audio/lynx/aidl_config/audio_policy_configuration.xml
new file mode 100644
index 0000000..dfc8577
--- /dev/null
+++ b/audio/lynx/aidl_config/audio_policy_configuration.xml
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+ - Speaker
+ - Speaker Safe
+ - Earpiece
+ - Built-In Mic
+ - Built-In Back Mic
+ - Telephony Tx
+ - Voice Call And Telephony Rx
+ - Echo Ref In
+
+ Speaker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/lynx/aidl_config/audio_policy_volumes.xml b/audio/lynx/aidl_config/audio_policy_volumes.xml
new file mode 100644
index 0000000..04e731d
--- /dev/null
+++ b/audio/lynx/aidl_config/audio_policy_volumes.xml
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+ 0,-4200
+ 33,-2800
+ 66,-1400
+ 100,0
+
+
+ 0,-2400
+ 33,-1600
+ 66,-800
+ 100,0
+
+
+ 0,-2400
+ 33,-1600
+ 66,-800
+ 100,0
+
+
+
+
+ 1,-3000
+ 33,-2600
+ 66,-2200
+ 100,-1800
+
+
+ 1,-4700
+ 33,-3500
+ 66,-2350
+ 100,-1250
+
+
+
+
+
+
+ 1,-3350
+ 33,-2100
+ 66,-1000
+ 100,0
+
+
+
+
+
+
+
+
+
+
+
+ 0,-4800
+ 33,-2050
+ 66,-800
+ 100,0
+
+
+
+
+
+
+ 1,-3800
+ 33,-2600
+ 66,-1400
+ 100,0
+
+
+
+
+
+ 0,-4200
+ 33,-2800
+ 66,-1400
+ 100,0
+
+
+ 0,-2400
+ 33,-1600
+ 66,-800
+ 100,0
+
+
+ 0,-4200
+ 33,-2800
+ 66,-1400
+ 100,0
+
+
+
+
+ 1,-3000
+ 33,-2600
+ 66,-2200
+ 100,-1800
+
+
+ 1,-4700
+ 33,-3500
+ 66,-2350
+ 100,-1250
+
+
+
+
+
+ 1,-3000
+ 33,-2600
+ 66,-2200
+ 100,-1800
+
+
+ 1,-5500
+ 33,-3650
+ 66,-2700
+ 100,-1800
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/lynx/aidl_config/mixer_paths_aidl.xml b/audio/lynx/aidl_config/mixer_paths_aidl.xml
new file mode 100644
index 0000000..894ef4e
--- /dev/null
+++ b/audio/lynx/aidl_config/mixer_paths_aidl.xml
@@ -0,0 +1,862 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/lynx/audio-tables.mk b/audio/lynx/audio-tables.mk
index 812dbce..f8c1da5 100644
--- a/audio/lynx/audio-tables.mk
+++ b/audio/lynx/audio-tables.mk
@@ -16,6 +16,16 @@
AUDIO_TABLE_FOLDER := lynx
+# Enable this to build AIDL
+# BUILD_AUDIO_AIDL_VERSION := true
+
+ifeq ($(BUILD_AUDIO_AIDL_VERSION),true)
+PRODUCT_COPY_FILES += \
+ device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
+ device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_platform_configuration_aidl.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_configuration_aidl.xml \
+ device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
+ device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/mixer_paths_aidl.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_aidl.xml
+else
# Platform Configuration for AudioHAL / SoundTriggerHAL
PRODUCT_COPY_FILES += \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \
@@ -34,6 +44,7 @@ PRODUCT_COPY_FILES += \
# Mixer Path Configuration for AudioHAL
PRODUCT_COPY_FILES += \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/config/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
+endif
# Speaker firmware files
SPK_FIRMWARE_PATH := $(AUDIO_TABLE_FOLDER)/cs35l41/fw
@@ -44,6 +55,7 @@ PRODUCT_COPY_FILES += $(call copy-files,$(wildcard $(SPK_FIRMWARE_FULL_PATH)/*)
# Audio tuning
PRODUCT_COPY_FILES += \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/tuning/bluenote/recording.gatf:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/recording.gatf \
+ device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/tuning/bluenote/smartfeature.gstf:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/smartfeature.gstf \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/BLUETOOTH.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/BLUETOOTH.dat \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSFREE.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSFREE.dat \
device/google/lynx/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSET.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSET.dat \
diff --git a/audio/lynx/config/audio_effects.xml b/audio/lynx/config/audio_effects.xml
index 1718057..9c2ba29 100644
--- a/audio/lynx/config/audio_effects.xml
+++ b/audio/lynx/config/audio_effects.xml
@@ -5,7 +5,7 @@
-
+
@@ -45,12 +45,15 @@
+
+
+
+
-
diff --git a/audio/lynx/config/audio_platform_configuration.xml b/audio/lynx/config/audio_platform_configuration.xml
index 1a3aba5..5443432 100644
--- a/audio/lynx/config/audio_platform_configuration.xml
+++ b/audio/lynx/config/audio_platform_configuration.xml
@@ -286,7 +286,7 @@
-
+
diff --git a/audio/lynx/config/audio_policy_configuration.xml b/audio/lynx/config/audio_policy_configuration.xml
index 82bad3c..527b603 100644
--- a/audio/lynx/config/audio_policy_configuration.xml
+++ b/audio/lynx/config/audio_policy_configuration.xml
@@ -209,27 +209,27 @@
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
@@ -240,9 +240,9 @@
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic,BLE Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic,BLE Headset Mic"/>
diff --git a/audio/lynx/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/lynx/config/audio_policy_configuration_a2dp_offload_disabled.xml
index 2f1812c..5c80141 100644
--- a/audio/lynx/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/lynx/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -181,11 +181,11 @@
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
@@ -196,9 +196,9 @@
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
diff --git a/audio/lynx/config/audio_policy_configuration_bluetooth_legacy_hal.xml b/audio/lynx/config/audio_policy_configuration_bluetooth_legacy_hal.xml
index ce3be39..5ef0148 100644
--- a/audio/lynx/config/audio_policy_configuration_bluetooth_legacy_hal.xml
+++ b/audio/lynx/config/audio_policy_configuration_bluetooth_legacy_hal.xml
@@ -181,11 +181,11 @@
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,voip_rx,compressed_offload,raw,mmap_no_irq_out"/>
@@ -196,9 +196,9 @@
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In,BT SCO Headset Mic"/>
diff --git a/audio/lynx/config/audio_policy_configuration_le_offload_disabled.xml b/audio/lynx/config/audio_policy_configuration_le_offload_disabled.xml
index a16256d..846282e 100644
--- a/audio/lynx/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/lynx/config/audio_policy_configuration_le_offload_disabled.xml
@@ -64,6 +64,10 @@
+
+
+
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
+ sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
+ sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,raw,mmap_no_irq_out"/>
diff --git a/audio/lynx/config/mixer_paths.xml b/audio/lynx/config/mixer_paths.xml
index 45df0f8..bec5b6e 100644
--- a/audio/lynx/config/mixer_paths.xml
+++ b/audio/lynx/config/mixer_paths.xml
@@ -162,6 +162,7 @@
+
@@ -396,6 +397,10 @@
+
+
+
+
@@ -410,6 +415,10 @@
+
+
+
+
@@ -596,6 +605,10 @@
+
+
+
+
@@ -604,6 +617,10 @@
+
+
+
+
>
diff --git a/audio/lynx/tuning/bluenote/smartfeature.gstf b/audio/lynx/tuning/bluenote/smartfeature.gstf
new file mode 100644
index 0000000..d174ae3
Binary files /dev/null and b/audio/lynx/tuning/bluenote/smartfeature.gstf differ
diff --git a/audio/lynx/tuning/fortemedia/BLUETOOTH.dat b/audio/lynx/tuning/fortemedia/BLUETOOTH.dat
index 93eeb03..4c24529 100644
Binary files a/audio/lynx/tuning/fortemedia/BLUETOOTH.dat and b/audio/lynx/tuning/fortemedia/BLUETOOTH.dat differ
diff --git a/audio/lynx/tuning/fortemedia/BLUETOOTH.mods b/audio/lynx/tuning/fortemedia/BLUETOOTH.mods
index 13ab499..06401da 100644
--- a/audio/lynx/tuning/fortemedia/BLUETOOTH.mods
+++ b/audio/lynx/tuning/fortemedia/BLUETOOTH.mods
@@ -1,7 +1,7 @@
#PLATFORM_NAME gChip
#EXPORT_FLAG BLUETOOTH
#SINGLE_API_VER 1.2.1
-#SAVE_TIME 2023-03-22 15:50:15
+#SAVE_TIME 2023-04-18 16:05:27
#CASE_NAME BLUETOOTH-BT_HAC-VOICE_GENERIC-NB
#PARAM_MODE FULL
@@ -2680,7 +2680,7 @@
#TX
0 0x0001 //TX_OPERATION_MODE_0
1 0x0001 //TX_OPERATION_MODE_1
-2 0x0073 //TX_PATCH_REG
+2 0x00F3 //TX_PATCH_REG
3 0x6F7D //TX_SENDFUNC_MODE_0
4 0x0000 //TX_SENDFUNC_MODE_1
5 0x0002 //TX_NUM_MIC
@@ -2875,10 +2875,10 @@
194 0x0000 //TX_NORMENERTH
195 0x0000 //TX_NORMENERHIGHTH
196 0x0000 //TX_NORMENERHIGHTHL
-197 0x7FF0 //TX_DTD_THR1_0
-198 0x7FF0 //TX_DTD_THR1_1
+197 0x7333 //TX_DTD_THR1_0
+198 0x7333 //TX_DTD_THR1_1
199 0x7FF0 //TX_DTD_THR1_2
-200 0x6D60 //TX_DTD_THR1_3
+200 0x7FF0 //TX_DTD_THR1_3
201 0x7FF0 //TX_DTD_THR1_4
202 0x7FF0 //TX_DTD_THR1_5
203 0x7FF0 //TX_DTD_THR1_6
@@ -2922,7 +2922,7 @@
241 0x0000 //TX_DT_RESRV_9
242 0xF800 //TX_THR_SN_EST_0
243 0xFA00 //TX_THR_SN_EST_1
-244 0xFA00 //TX_THR_SN_EST_2
+244 0xFC00 //TX_THR_SN_EST_2
245 0xF200 //TX_THR_SN_EST_3
246 0xFA00 //TX_THR_SN_EST_4
247 0xFA00 //TX_THR_SN_EST_5
@@ -2931,7 +2931,7 @@
250 0x0100 //TX_DELTA_THR_SN_EST_0
251 0x0100 //TX_DELTA_THR_SN_EST_1
252 0x0200 //TX_DELTA_THR_SN_EST_2
-253 0x0100 //TX_DELTA_THR_SN_EST_3
+253 0x0400 //TX_DELTA_THR_SN_EST_3
254 0x0100 //TX_DELTA_THR_SN_EST_4
255 0x0200 //TX_DELTA_THR_SN_EST_5
256 0x0200 //TX_DELTA_THR_SN_EST_6
@@ -2968,20 +2968,20 @@
287 0x0014 //TX_NS_LVL_CTRL_6
288 0x0011 //TX_NS_LVL_CTRL_7
289 0x000F //TX_MIN_GAIN_S_0
-290 0x0010 //TX_MIN_GAIN_S_1
+290 0x0020 //TX_MIN_GAIN_S_1
291 0x0010 //TX_MIN_GAIN_S_2
292 0x0010 //TX_MIN_GAIN_S_3
293 0x0010 //TX_MIN_GAIN_S_4
294 0x0010 //TX_MIN_GAIN_S_5
295 0x0010 //TX_MIN_GAIN_S_6
296 0x000F //TX_MIN_GAIN_S_7
-297 0x6000 //TX_NMOS_SUP
+297 0x2000 //TX_NMOS_SUP
298 0x0000 //TX_NS_MAX_PRI_SNR_TH
299 0x0000 //TX_NMOS_SUP_MENSA
-300 0x7FFF //TX_SNRI_SUP_0
+300 0x4000 //TX_SNRI_SUP_0
301 0x2000 //TX_SNRI_SUP_1
302 0x2000 //TX_SNRI_SUP_2
-303 0x4000 //TX_SNRI_SUP_3
+303 0x2000 //TX_SNRI_SUP_3
304 0x4000 //TX_SNRI_SUP_4
305 0x50C0 //TX_SNRI_SUP_5
306 0x2000 //TX_SNRI_SUP_6
@@ -2995,15 +2995,15 @@
314 0x5000 //TX_A_POST_FILT_S_0
315 0x4C00 //TX_A_POST_FILT_S_1
316 0x4000 //TX_A_POST_FILT_S_2
-317 0x2000 //TX_A_POST_FILT_S_3
+317 0x6000 //TX_A_POST_FILT_S_3
318 0x4000 //TX_A_POST_FILT_S_4
319 0x5000 //TX_A_POST_FILT_S_5
320 0x6000 //TX_A_POST_FILT_S_6
321 0x7000 //TX_A_POST_FILT_S_7
322 0x2000 //TX_B_POST_FILT_0
-323 0x2000 //TX_B_POST_FILT_1
+323 0x4000 //TX_B_POST_FILT_1
324 0x2000 //TX_B_POST_FILT_2
-325 0x2000 //TX_B_POST_FILT_3
+325 0x7FFF //TX_B_POST_FILT_3
326 0x4000 //TX_B_POST_FILT_4
327 0x1000 //TX_B_POST_FILT_5
328 0x1000 //TX_B_POST_FILT_6
@@ -3018,9 +3018,9 @@
337 0x7FFF //TX_B_LESSCUT_RTO_S_7
338 0x7C00 //TX_LAMBDA_PFILT
339 0x7C00 //TX_LAMBDA_PFILT_S_0
-340 0x7C00 //TX_LAMBDA_PFILT_S_1
-341 0x7A00 //TX_LAMBDA_PFILT_S_2
-342 0x7800 //TX_LAMBDA_PFILT_S_3
+340 0x7E00 //TX_LAMBDA_PFILT_S_1
+341 0x7E00 //TX_LAMBDA_PFILT_S_2
+342 0x7D00 //TX_LAMBDA_PFILT_S_3
343 0x7C00 //TX_LAMBDA_PFILT_S_4
344 0x7C00 //TX_LAMBDA_PFILT_S_5
345 0x7C00 //TX_LAMBDA_PFILT_S_6
@@ -3045,12 +3045,12 @@
364 0x0000 //TX_K_APT
365 0x0001 //TX_NOISEDET
366 0x0064 //TX_NDETCT
-367 0x0032 //TX_NOISE_TH_0
+367 0x001E //TX_NOISE_TH_0
368 0x7FFF //TX_NOISE_TH_0_2
369 0x7FFF //TX_NOISE_TH_0_3
370 0x0320 //TX_NOISE_TH_1
-371 0x0230 //TX_NOISE_TH_2
-372 0x2CEC //TX_NOISE_TH_3
+371 0x0384 //TX_NOISE_TH_2
+372 0x2904 //TX_NOISE_TH_3
373 0x3E80 //TX_NOISE_TH_4
374 0x7FFF //TX_NOISE_TH_5
375 0x7FFF //TX_NOISE_TH_5_2
@@ -3084,7 +3084,7 @@
403 0x4000 //TX_POST_MASK_SUP
404 0x7FFF //TX_POST_MASK_ADJUST
405 0x00C8 //TX_NS_ENOISE_MIC0_TH
-406 0x0033 //TX_MINENOISE_MIC0_TH
+406 0x001E //TX_MINENOISE_MIC0_TH
407 0x012C //TX_MINENOISE_MIC0_S_TH
408 0x7FFF //TX_MIN_G_CTRL_SSNS
409 0x0000 //TX_METAL_RTO_THR
@@ -3622,8 +3622,8 @@
941 0x0008 //TX_MIC1MUTE_CVG_TIME
942 0x0008 //TX_MIC1MUTE_RELEASE_TIME
943 0x0100 //TX_AMS_RESRV_01
-944 0xE4A8 //TX_AMS_RESRV_02
-945 0x7EF4 //TX_AMS_RESRV_03
+944 0xE0C0 //TX_AMS_RESRV_02
+945 0x2710 //TX_AMS_RESRV_03
946 0x0000 //TX_AMS_RESRV_04
947 0x0000 //TX_AMS_RESRV_05
948 0x0000 //TX_AMS_RESRV_06
diff --git a/audio/lynx/tuning/fortemedia/HANDSFREE.dat b/audio/lynx/tuning/fortemedia/HANDSFREE.dat
index 9d15e8e..f6f5afb 100644
Binary files a/audio/lynx/tuning/fortemedia/HANDSFREE.dat and b/audio/lynx/tuning/fortemedia/HANDSFREE.dat differ
diff --git a/audio/lynx/tuning/fortemedia/HANDSFREE.mods b/audio/lynx/tuning/fortemedia/HANDSFREE.mods
index 39c21d1..dc42412 100644
--- a/audio/lynx/tuning/fortemedia/HANDSFREE.mods
+++ b/audio/lynx/tuning/fortemedia/HANDSFREE.mods
@@ -1,7 +1,7 @@
#PLATFORM_NAME gChip
#EXPORT_FLAG HANDSFREE
#SINGLE_API_VER 1.2.1
-#SAVE_TIME 2023-03-22 15:41:43
+#SAVE_TIME 2023-04-18 16:04:40
#CASE_NAME HANDSFREE-HANDSFREE-VOICE_GENERIC-NB
#PARAM_MODE FULL
@@ -2680,7 +2680,7 @@
#TX
0 0x0001 //TX_OPERATION_MODE_0
1 0x0001 //TX_OPERATION_MODE_1
-2 0x0073 //TX_PATCH_REG
+2 0x00F3 //TX_PATCH_REG
3 0x6F7D //TX_SENDFUNC_MODE_0
4 0x0000 //TX_SENDFUNC_MODE_1
5 0x0002 //TX_NUM_MIC
@@ -2875,8 +2875,8 @@
194 0x0000 //TX_NORMENERTH
195 0x0000 //TX_NORMENERHIGHTH
196 0x0000 //TX_NORMENERHIGHTHL
-197 0x7FD5 //TX_DTD_THR1_0
-198 0x7EF4 //TX_DTD_THR1_1
+197 0x7333 //TX_DTD_THR1_0
+198 0x7333 //TX_DTD_THR1_1
199 0x7FF0 //TX_DTD_THR1_2
200 0x7FF0 //TX_DTD_THR1_3
201 0x7FF0 //TX_DTD_THR1_4
@@ -2922,7 +2922,7 @@
241 0x0000 //TX_DT_RESRV_9
242 0xF800 //TX_THR_SN_EST_0
243 0xFA00 //TX_THR_SN_EST_1
-244 0xFA00 //TX_THR_SN_EST_2
+244 0xFC00 //TX_THR_SN_EST_2
245 0xF200 //TX_THR_SN_EST_3
246 0xFA00 //TX_THR_SN_EST_4
247 0xFA00 //TX_THR_SN_EST_5
@@ -2931,7 +2931,7 @@
250 0x0100 //TX_DELTA_THR_SN_EST_0
251 0x0100 //TX_DELTA_THR_SN_EST_1
252 0x0200 //TX_DELTA_THR_SN_EST_2
-253 0x0100 //TX_DELTA_THR_SN_EST_3
+253 0x0400 //TX_DELTA_THR_SN_EST_3
254 0x0100 //TX_DELTA_THR_SN_EST_4
255 0x0200 //TX_DELTA_THR_SN_EST_5
256 0x0200 //TX_DELTA_THR_SN_EST_6
@@ -2968,20 +2968,20 @@
287 0x0014 //TX_NS_LVL_CTRL_6
288 0x0011 //TX_NS_LVL_CTRL_7
289 0x000F //TX_MIN_GAIN_S_0
-290 0x0010 //TX_MIN_GAIN_S_1
+290 0x0020 //TX_MIN_GAIN_S_1
291 0x0010 //TX_MIN_GAIN_S_2
292 0x0010 //TX_MIN_GAIN_S_3
293 0x0010 //TX_MIN_GAIN_S_4
294 0x0010 //TX_MIN_GAIN_S_5
295 0x0010 //TX_MIN_GAIN_S_6
296 0x000F //TX_MIN_GAIN_S_7
-297 0x6000 //TX_NMOS_SUP
+297 0x2000 //TX_NMOS_SUP
298 0x0000 //TX_NS_MAX_PRI_SNR_TH
299 0x0000 //TX_NMOS_SUP_MENSA
-300 0x7FFF //TX_SNRI_SUP_0
+300 0x4000 //TX_SNRI_SUP_0
301 0x2000 //TX_SNRI_SUP_1
302 0x2000 //TX_SNRI_SUP_2
-303 0x4000 //TX_SNRI_SUP_3
+303 0x2000 //TX_SNRI_SUP_3
304 0x4000 //TX_SNRI_SUP_4
305 0x50C0 //TX_SNRI_SUP_5
306 0x2000 //TX_SNRI_SUP_6
@@ -2995,15 +2995,15 @@
314 0x5000 //TX_A_POST_FILT_S_0
315 0x4C00 //TX_A_POST_FILT_S_1
316 0x4000 //TX_A_POST_FILT_S_2
-317 0x2000 //TX_A_POST_FILT_S_3
+317 0x6000 //TX_A_POST_FILT_S_3
318 0x4000 //TX_A_POST_FILT_S_4
319 0x5000 //TX_A_POST_FILT_S_5
320 0x6000 //TX_A_POST_FILT_S_6
321 0x7000 //TX_A_POST_FILT_S_7
322 0x2000 //TX_B_POST_FILT_0
-323 0x2000 //TX_B_POST_FILT_1
+323 0x4000 //TX_B_POST_FILT_1
324 0x2000 //TX_B_POST_FILT_2
-325 0x2000 //TX_B_POST_FILT_3
+325 0x7FFF //TX_B_POST_FILT_3
326 0x4000 //TX_B_POST_FILT_4
327 0x1000 //TX_B_POST_FILT_5
328 0x1000 //TX_B_POST_FILT_6
@@ -3018,9 +3018,9 @@
337 0x7FFF //TX_B_LESSCUT_RTO_S_7
338 0x7C00 //TX_LAMBDA_PFILT
339 0x7C00 //TX_LAMBDA_PFILT_S_0
-340 0x7C00 //TX_LAMBDA_PFILT_S_1
-341 0x7A00 //TX_LAMBDA_PFILT_S_2
-342 0x7800 //TX_LAMBDA_PFILT_S_3
+340 0x7E00 //TX_LAMBDA_PFILT_S_1
+341 0x7E00 //TX_LAMBDA_PFILT_S_2
+342 0x7D00 //TX_LAMBDA_PFILT_S_3
343 0x7C00 //TX_LAMBDA_PFILT_S_4
344 0x7C00 //TX_LAMBDA_PFILT_S_5
345 0x7C00 //TX_LAMBDA_PFILT_S_6
@@ -3045,12 +3045,12 @@
364 0x0000 //TX_K_APT
365 0x0001 //TX_NOISEDET
366 0x0064 //TX_NDETCT
-367 0x0032 //TX_NOISE_TH_0
+367 0x001E //TX_NOISE_TH_0
368 0x7FFF //TX_NOISE_TH_0_2
369 0x7FFF //TX_NOISE_TH_0_3
370 0x0320 //TX_NOISE_TH_1
-371 0x0230 //TX_NOISE_TH_2
-372 0x2CEC //TX_NOISE_TH_3
+371 0x0384 //TX_NOISE_TH_2
+372 0x2904 //TX_NOISE_TH_3
373 0x3E80 //TX_NOISE_TH_4
374 0x7FFF //TX_NOISE_TH_5
375 0x7FFF //TX_NOISE_TH_5_2
@@ -3084,7 +3084,7 @@
403 0x4000 //TX_POST_MASK_SUP
404 0x7FFF //TX_POST_MASK_ADJUST
405 0x00C8 //TX_NS_ENOISE_MIC0_TH
-406 0x0033 //TX_MINENOISE_MIC0_TH
+406 0x001E //TX_MINENOISE_MIC0_TH
407 0x012C //TX_MINENOISE_MIC0_S_TH
408 0x7FFF //TX_MIN_G_CTRL_SSNS
409 0x0000 //TX_METAL_RTO_THR
diff --git a/audio/lynx/tuning/fortemedia/HEADSET.dat b/audio/lynx/tuning/fortemedia/HEADSET.dat
index 3f64c37..5ff7a8e 100644
Binary files a/audio/lynx/tuning/fortemedia/HEADSET.dat and b/audio/lynx/tuning/fortemedia/HEADSET.dat differ
diff --git a/audio/lynx/tuning/fortemedia/HEADSET.mods b/audio/lynx/tuning/fortemedia/HEADSET.mods
index b953e9e..7ce97f0 100644
--- a/audio/lynx/tuning/fortemedia/HEADSET.mods
+++ b/audio/lynx/tuning/fortemedia/HEADSET.mods
@@ -1,7 +1,7 @@
#PLATFORM_NAME gChip
#EXPORT_FLAG HEADSET
#SINGLE_API_VER 1.2.1
-#SAVE_TIME 2023-03-22 15:50:48
+#SAVE_TIME 2023-04-18 16:05:05
#CASE_NAME HEADSET-USB_BLACKBIRD-VOICE_GENERIC-NB
#PARAM_MODE FULL
@@ -29380,7 +29380,7 @@
#TX
0 0x0001 //TX_OPERATION_MODE_0
1 0x0001 //TX_OPERATION_MODE_1
-2 0x0073 //TX_PATCH_REG
+2 0x00F3 //TX_PATCH_REG
3 0x6F7D //TX_SENDFUNC_MODE_0
4 0x0000 //TX_SENDFUNC_MODE_1
5 0x0002 //TX_NUM_MIC
@@ -29575,10 +29575,10 @@
194 0x0000 //TX_NORMENERTH
195 0x0000 //TX_NORMENERHIGHTH
196 0x0000 //TX_NORMENERHIGHTHL
-197 0x7FF0 //TX_DTD_THR1_0
-198 0x7FF0 //TX_DTD_THR1_1
+197 0x7333 //TX_DTD_THR1_0
+198 0x7333 //TX_DTD_THR1_1
199 0x7FF0 //TX_DTD_THR1_2
-200 0x6D60 //TX_DTD_THR1_3
+200 0x7FF0 //TX_DTD_THR1_3
201 0x7FF0 //TX_DTD_THR1_4
202 0x7FF0 //TX_DTD_THR1_5
203 0x7FF0 //TX_DTD_THR1_6
@@ -29622,7 +29622,7 @@
241 0x0000 //TX_DT_RESRV_9
242 0xF800 //TX_THR_SN_EST_0
243 0xFA00 //TX_THR_SN_EST_1
-244 0xFA00 //TX_THR_SN_EST_2
+244 0xFC00 //TX_THR_SN_EST_2
245 0xF200 //TX_THR_SN_EST_3
246 0xFA00 //TX_THR_SN_EST_4
247 0xFA00 //TX_THR_SN_EST_5
@@ -29631,7 +29631,7 @@
250 0x0100 //TX_DELTA_THR_SN_EST_0
251 0x0100 //TX_DELTA_THR_SN_EST_1
252 0x0200 //TX_DELTA_THR_SN_EST_2
-253 0x0100 //TX_DELTA_THR_SN_EST_3
+253 0x0400 //TX_DELTA_THR_SN_EST_3
254 0x0100 //TX_DELTA_THR_SN_EST_4
255 0x0200 //TX_DELTA_THR_SN_EST_5
256 0x0200 //TX_DELTA_THR_SN_EST_6
@@ -29668,20 +29668,20 @@
287 0x0014 //TX_NS_LVL_CTRL_6
288 0x0011 //TX_NS_LVL_CTRL_7
289 0x000F //TX_MIN_GAIN_S_0
-290 0x0010 //TX_MIN_GAIN_S_1
+290 0x0020 //TX_MIN_GAIN_S_1
291 0x0010 //TX_MIN_GAIN_S_2
292 0x0010 //TX_MIN_GAIN_S_3
293 0x0010 //TX_MIN_GAIN_S_4
294 0x0010 //TX_MIN_GAIN_S_5
295 0x0010 //TX_MIN_GAIN_S_6
296 0x000F //TX_MIN_GAIN_S_7
-297 0x6000 //TX_NMOS_SUP
+297 0x2000 //TX_NMOS_SUP
298 0x0000 //TX_NS_MAX_PRI_SNR_TH
299 0x0000 //TX_NMOS_SUP_MENSA
-300 0x7FFF //TX_SNRI_SUP_0
+300 0x4000 //TX_SNRI_SUP_0
301 0x2000 //TX_SNRI_SUP_1
302 0x2000 //TX_SNRI_SUP_2
-303 0x4000 //TX_SNRI_SUP_3
+303 0x2000 //TX_SNRI_SUP_3
304 0x4000 //TX_SNRI_SUP_4
305 0x50C0 //TX_SNRI_SUP_5
306 0x2000 //TX_SNRI_SUP_6
@@ -29695,15 +29695,15 @@
314 0x5000 //TX_A_POST_FILT_S_0
315 0x4C00 //TX_A_POST_FILT_S_1
316 0x4000 //TX_A_POST_FILT_S_2
-317 0x2000 //TX_A_POST_FILT_S_3
+317 0x6000 //TX_A_POST_FILT_S_3
318 0x4000 //TX_A_POST_FILT_S_4
319 0x5000 //TX_A_POST_FILT_S_5
320 0x6000 //TX_A_POST_FILT_S_6
321 0x7000 //TX_A_POST_FILT_S_7
322 0x2000 //TX_B_POST_FILT_0
-323 0x2000 //TX_B_POST_FILT_1
+323 0x4000 //TX_B_POST_FILT_1
324 0x2000 //TX_B_POST_FILT_2
-325 0x2000 //TX_B_POST_FILT_3
+325 0x7FFF //TX_B_POST_FILT_3
326 0x4000 //TX_B_POST_FILT_4
327 0x1000 //TX_B_POST_FILT_5
328 0x1000 //TX_B_POST_FILT_6
@@ -29718,9 +29718,9 @@
337 0x7FFF //TX_B_LESSCUT_RTO_S_7
338 0x7C00 //TX_LAMBDA_PFILT
339 0x7C00 //TX_LAMBDA_PFILT_S_0
-340 0x7C00 //TX_LAMBDA_PFILT_S_1
-341 0x7A00 //TX_LAMBDA_PFILT_S_2
-342 0x7800 //TX_LAMBDA_PFILT_S_3
+340 0x7E00 //TX_LAMBDA_PFILT_S_1
+341 0x7E00 //TX_LAMBDA_PFILT_S_2
+342 0x7D00 //TX_LAMBDA_PFILT_S_3
343 0x7C00 //TX_LAMBDA_PFILT_S_4
344 0x7C00 //TX_LAMBDA_PFILT_S_5
345 0x7C00 //TX_LAMBDA_PFILT_S_6
@@ -29745,12 +29745,12 @@
364 0x0000 //TX_K_APT
365 0x0001 //TX_NOISEDET
366 0x0064 //TX_NDETCT
-367 0x0032 //TX_NOISE_TH_0
+367 0x001E //TX_NOISE_TH_0
368 0x7FFF //TX_NOISE_TH_0_2
369 0x7FFF //TX_NOISE_TH_0_3
370 0x0320 //TX_NOISE_TH_1
-371 0x0230 //TX_NOISE_TH_2
-372 0x2CEC //TX_NOISE_TH_3
+371 0x0384 //TX_NOISE_TH_2
+372 0x2904 //TX_NOISE_TH_3
373 0x3E80 //TX_NOISE_TH_4
374 0x7FFF //TX_NOISE_TH_5
375 0x7FFF //TX_NOISE_TH_5_2
@@ -29784,7 +29784,7 @@
403 0x4000 //TX_POST_MASK_SUP
404 0x7FFF //TX_POST_MASK_ADJUST
405 0x00C8 //TX_NS_ENOISE_MIC0_TH
-406 0x0033 //TX_MINENOISE_MIC0_TH
+406 0x001E //TX_MINENOISE_MIC0_TH
407 0x012C //TX_MINENOISE_MIC0_S_TH
408 0x7FFF //TX_MIN_G_CTRL_SSNS
409 0x0000 //TX_METAL_RTO_THR
@@ -30322,8 +30322,8 @@
941 0x0008 //TX_MIC1MUTE_CVG_TIME
942 0x0008 //TX_MIC1MUTE_RELEASE_TIME
943 0x0100 //TX_AMS_RESRV_01
-944 0xE4A8 //TX_AMS_RESRV_02
-945 0x7EF4 //TX_AMS_RESRV_03
+944 0xE0C0 //TX_AMS_RESRV_02
+945 0x2710 //TX_AMS_RESRV_03
946 0x0000 //TX_AMS_RESRV_04
947 0x0000 //TX_AMS_RESRV_05
948 0x0000 //TX_AMS_RESRV_06
@@ -69430,7 +69430,7 @@
#TX
0 0x0001 //TX_OPERATION_MODE_0
1 0x0001 //TX_OPERATION_MODE_1
-2 0x0073 //TX_PATCH_REG
+2 0x00F3 //TX_PATCH_REG
3 0x6F7D //TX_SENDFUNC_MODE_0
4 0x0000 //TX_SENDFUNC_MODE_1
5 0x0002 //TX_NUM_MIC
@@ -69625,10 +69625,10 @@
194 0x0000 //TX_NORMENERTH
195 0x0000 //TX_NORMENERHIGHTH
196 0x0000 //TX_NORMENERHIGHTHL
-197 0x7FF0 //TX_DTD_THR1_0
-198 0x7FF0 //TX_DTD_THR1_1
+197 0x7333 //TX_DTD_THR1_0
+198 0x7333 //TX_DTD_THR1_1
199 0x7FF0 //TX_DTD_THR1_2
-200 0x6D60 //TX_DTD_THR1_3
+200 0x7FF0 //TX_DTD_THR1_3
201 0x7FF0 //TX_DTD_THR1_4
202 0x7FF0 //TX_DTD_THR1_5
203 0x7FF0 //TX_DTD_THR1_6
@@ -69672,7 +69672,7 @@
241 0x0000 //TX_DT_RESRV_9
242 0xF800 //TX_THR_SN_EST_0
243 0xFA00 //TX_THR_SN_EST_1
-244 0xFA00 //TX_THR_SN_EST_2
+244 0xFC00 //TX_THR_SN_EST_2
245 0xF200 //TX_THR_SN_EST_3
246 0xFA00 //TX_THR_SN_EST_4
247 0xFA00 //TX_THR_SN_EST_5
@@ -69681,7 +69681,7 @@
250 0x0100 //TX_DELTA_THR_SN_EST_0
251 0x0100 //TX_DELTA_THR_SN_EST_1
252 0x0200 //TX_DELTA_THR_SN_EST_2
-253 0x0100 //TX_DELTA_THR_SN_EST_3
+253 0x0400 //TX_DELTA_THR_SN_EST_3
254 0x0100 //TX_DELTA_THR_SN_EST_4
255 0x0200 //TX_DELTA_THR_SN_EST_5
256 0x0200 //TX_DELTA_THR_SN_EST_6
@@ -69718,20 +69718,20 @@
287 0x0014 //TX_NS_LVL_CTRL_6
288 0x0011 //TX_NS_LVL_CTRL_7
289 0x000F //TX_MIN_GAIN_S_0
-290 0x0010 //TX_MIN_GAIN_S_1
+290 0x0020 //TX_MIN_GAIN_S_1
291 0x0010 //TX_MIN_GAIN_S_2
292 0x0010 //TX_MIN_GAIN_S_3
293 0x0010 //TX_MIN_GAIN_S_4
294 0x0010 //TX_MIN_GAIN_S_5
295 0x0010 //TX_MIN_GAIN_S_6
296 0x000F //TX_MIN_GAIN_S_7
-297 0x6000 //TX_NMOS_SUP
+297 0x2000 //TX_NMOS_SUP
298 0x0000 //TX_NS_MAX_PRI_SNR_TH
299 0x0000 //TX_NMOS_SUP_MENSA
-300 0x7FFF //TX_SNRI_SUP_0
+300 0x4000 //TX_SNRI_SUP_0
301 0x2000 //TX_SNRI_SUP_1
302 0x2000 //TX_SNRI_SUP_2
-303 0x4000 //TX_SNRI_SUP_3
+303 0x2000 //TX_SNRI_SUP_3
304 0x4000 //TX_SNRI_SUP_4
305 0x50C0 //TX_SNRI_SUP_5
306 0x2000 //TX_SNRI_SUP_6
@@ -69745,15 +69745,15 @@
314 0x5000 //TX_A_POST_FILT_S_0
315 0x4C00 //TX_A_POST_FILT_S_1
316 0x4000 //TX_A_POST_FILT_S_2
-317 0x2000 //TX_A_POST_FILT_S_3
+317 0x6000 //TX_A_POST_FILT_S_3
318 0x4000 //TX_A_POST_FILT_S_4
319 0x5000 //TX_A_POST_FILT_S_5
320 0x6000 //TX_A_POST_FILT_S_6
321 0x7000 //TX_A_POST_FILT_S_7
322 0x2000 //TX_B_POST_FILT_0
-323 0x2000 //TX_B_POST_FILT_1
+323 0x4000 //TX_B_POST_FILT_1
324 0x2000 //TX_B_POST_FILT_2
-325 0x2000 //TX_B_POST_FILT_3
+325 0x7FFF //TX_B_POST_FILT_3
326 0x4000 //TX_B_POST_FILT_4
327 0x1000 //TX_B_POST_FILT_5
328 0x1000 //TX_B_POST_FILT_6
@@ -69768,9 +69768,9 @@
337 0x7FFF //TX_B_LESSCUT_RTO_S_7
338 0x7C00 //TX_LAMBDA_PFILT
339 0x7C00 //TX_LAMBDA_PFILT_S_0
-340 0x7C00 //TX_LAMBDA_PFILT_S_1
-341 0x7A00 //TX_LAMBDA_PFILT_S_2
-342 0x7800 //TX_LAMBDA_PFILT_S_3
+340 0x7E00 //TX_LAMBDA_PFILT_S_1
+341 0x7E00 //TX_LAMBDA_PFILT_S_2
+342 0x7D00 //TX_LAMBDA_PFILT_S_3
343 0x7C00 //TX_LAMBDA_PFILT_S_4
344 0x7C00 //TX_LAMBDA_PFILT_S_5
345 0x7C00 //TX_LAMBDA_PFILT_S_6
@@ -69795,12 +69795,12 @@
364 0x0000 //TX_K_APT
365 0x0001 //TX_NOISEDET
366 0x0064 //TX_NDETCT
-367 0x0032 //TX_NOISE_TH_0
+367 0x001E //TX_NOISE_TH_0
368 0x7FFF //TX_NOISE_TH_0_2
369 0x7FFF //TX_NOISE_TH_0_3
370 0x0320 //TX_NOISE_TH_1
-371 0x0230 //TX_NOISE_TH_2
-372 0x2CEC //TX_NOISE_TH_3
+371 0x0384 //TX_NOISE_TH_2
+372 0x2904 //TX_NOISE_TH_3
373 0x3E80 //TX_NOISE_TH_4
374 0x7FFF //TX_NOISE_TH_5
375 0x7FFF //TX_NOISE_TH_5_2
@@ -69834,7 +69834,7 @@
403 0x4000 //TX_POST_MASK_SUP
404 0x7FFF //TX_POST_MASK_ADJUST
405 0x00C8 //TX_NS_ENOISE_MIC0_TH
-406 0x0033 //TX_MINENOISE_MIC0_TH
+406 0x001E //TX_MINENOISE_MIC0_TH
407 0x012C //TX_MINENOISE_MIC0_S_TH
408 0x7FFF //TX_MIN_G_CTRL_SSNS
409 0x0000 //TX_METAL_RTO_THR
@@ -70372,8 +70372,8 @@
941 0x0008 //TX_MIC1MUTE_CVG_TIME
942 0x0008 //TX_MIC1MUTE_RELEASE_TIME
943 0x0100 //TX_AMS_RESRV_01
-944 0xE4A8 //TX_AMS_RESRV_02
-945 0x7EF4 //TX_AMS_RESRV_03
+944 0xE0C0 //TX_AMS_RESRV_02
+945 0x2710 //TX_AMS_RESRV_03
946 0x0000 //TX_AMS_RESRV_04
947 0x0000 //TX_AMS_RESRV_05
948 0x0000 //TX_AMS_RESRV_06
diff --git a/bluetooth/bluetooth_power_limits_Lynx.csv b/bluetooth/bluetooth_power_limits_Lynx.csv
index 4dfb75f..c65ffad 100644
--- a/bluetooth/bluetooth_power_limits_Lynx.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,off,off,off,on,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,off,off,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,off,off,on,on,on,54,66,28,54,66,28,54,66,28,54,66,28
-off,off,on,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,off,on,off,on,on,54,54,28,54,54,28,54,54,28,54,54,28
-off,off,on,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,off,on,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
-off,on,off,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,on,off,off,on,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,on,off,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,on,off,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
-off,on,on,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,on,on,off,on,on,54,54,28,54,54,28,54,54,28,54,54,28
-off,on,on,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
-off,on,on,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
-on,off,off,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,off,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,off,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,off,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,on,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,on,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,on,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,off,on,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,off,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,off,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,off,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,off,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,on,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,on,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,on,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
-on,on,on,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
-off,any,any,any,any,off,68,66,28,70,66,28,68,66,28,70,66,28
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,off,off,off,on,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,off,off,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,off,off,on,on,on,54,66,28,54,66,28,54,66,28,54,66,28
+off,off,on,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,off,on,off,on,on,54,54,28,54,54,28,54,54,28,54,54,28
+off,off,on,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,off,on,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
+off,on,off,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,off,off,on,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,off,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,off,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
+off,on,on,off,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,on,off,on,on,54,54,28,54,54,28,54,54,28,54,54,28
+off,on,on,on,off,on,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,on,on,on,on,54,54,28,54,54,28,54,54,28,54,54,28
+on,off,off,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,off,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,off,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,off,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,on,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,on,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,on,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,off,on,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,off,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,off,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,off,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,off,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,on,off,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,on,off,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,on,on,off,any,42,42,28,42,42,28,42,42,28,42,42,28
+on,on,on,on,on,any,42,42,28,42,42,28,42,42,28,42,42,28
+off,off,any,off,any,off,68,66,28,70,66,28,68,66,28,70,66,28
+off,on,any,off,any,off,54,54,28,54,54,28,54,54,28,54,54,28
+off,off,any,on,any,off,54,54,28,54,54,28,54,54,28,54,54,28
diff --git a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_CA.csv b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_CA.csv
index 81b050e..579c955 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_CA.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_CA.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
-off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-off,any,any,any,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
+off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+off,off,any,off,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,any,off,any,off,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,any,on,any,off,54,54,54,54,54,54,54,54,54,54,54,54
diff --git a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_EU.csv b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_EU.csv
index 40f70fd..0545553 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_EU.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_EU.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,off,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,off,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,off,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,on,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,on,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,on,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,off,on,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,off,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,off,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,off,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,off,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,on,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,on,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,on,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
-off,on,on,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,off,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,off,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,off,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,off,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,on,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,on,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,on,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,off,on,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,off,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,off,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,off,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,off,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,on,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,on,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,on,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
-on,on,on,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
-off,any,any,any,any,off,74,66,28,70,66,28,74,66,28,70,66,28
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,off,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,off,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,off,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,on,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,on,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,on,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,on,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,off,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,off,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,off,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,off,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,on,off,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,on,off,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,on,on,off,on,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,on,on,on,on,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,off,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,off,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,off,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,off,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,on,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,on,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,on,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,off,on,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,off,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,off,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,off,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,off,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,on,off,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,on,off,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,on,on,off,any,74,66,28,70,66,28,74,66,28,70,66,28
+on,on,on,on,on,any,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,any,off,any,off,74,66,28,70,66,28,74,66,28,70,66,28
+off,on,any,off,any,off,74,66,28,70,66,28,74,66,28,70,66,28
+off,off,any,on,any,off,74,66,28,70,66,28,74,66,28,70,66,28
diff --git a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_JP.csv b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_JP.csv
index 3ec5bc3..1f725dc 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_JP.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_JP.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-off,any,any,any,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,any,off,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,any,off,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,any,on,any,off,68,66,38,72,66,38,68,66,38,72,66,38
diff --git a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_US.csv b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_US.csv
index 81b050e..579c955 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_US.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_G0DZQ_US.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
-off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-off,any,any,any,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
+off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+off,off,any,off,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,any,off,any,off,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,any,on,any,off,54,54,54,54,54,54,54,54,54,54,54,54
diff --git a/bluetooth/bluetooth_power_limits_Lynx_G82U8_JP.csv b/bluetooth/bluetooth_power_limits_Lynx_G82U8_JP.csv
index 3ec5bc3..1f725dc 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_G82U8_JP.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_G82U8_JP.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,off,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
-off,on,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,off,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
-on,on,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
-off,any,any,any,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,off,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,off,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,off,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,on,off,on,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,on,on,on,on,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,off,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,off,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,off,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,off,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,on,off,any,68,66,38,72,66,38,68,66,38,72,66,38
+on,on,on,on,on,any,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,any,off,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+off,on,any,off,any,off,68,66,38,72,66,38,68,66,38,72,66,38
+off,off,any,on,any,off,68,66,38,72,66,38,68,66,38,72,66,38
diff --git a/bluetooth/bluetooth_power_limits_Lynx_GHL1X_EU.csv b/bluetooth/bluetooth_power_limits_Lynx_GHL1X_EU.csv
index 54928f5..9f7153a 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_GHL1X_EU.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_GHL1X_EU.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,34,70,66,28,74,66,34,70,66,28
-off,off,off,off,on,on,74,66,34,70,66,28,74,66,34,70,66,28
-off,off,off,on,off,on,74,66,34,70,66,28,74,66,34,70,66,28
-off,off,off,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-off,off,on,off,off,on,74,66,34,70,66,28,74,66,34,70,66,28
-off,off,on,off,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-off,off,on,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,off,on,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-off,on,off,off,off,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,on,off,off,on,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,on,off,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,on,off,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-off,on,on,off,off,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,on,on,off,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-off,on,on,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
-off,on,on,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,off,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,off,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,off,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,off,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,on,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,on,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,on,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,off,on,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,off,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,off,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,off,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,off,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,on,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,on,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,on,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
-on,on,on,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
-off,any,any,any,any,off,74,66,34,70,66,28,74,66,34,70,66,28
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,34,70,66,28,74,66,34,70,66,28
+off,off,off,off,on,on,74,66,34,70,66,28,74,66,34,70,66,28
+off,off,off,on,off,on,74,66,34,70,66,28,74,66,34,70,66,28
+off,off,off,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+off,off,on,off,off,on,74,66,34,70,66,28,74,66,34,70,66,28
+off,off,on,off,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+off,off,on,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,off,on,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+off,on,off,off,off,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,on,off,off,on,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,on,off,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,on,off,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+off,on,on,off,off,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,on,on,off,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+off,on,on,on,off,on,70,66,34,70,66,28,70,66,34,70,66,28
+off,on,on,on,on,on,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,off,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,off,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,off,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,off,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,on,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,on,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,on,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,off,on,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,off,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,off,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,off,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,off,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,on,off,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,on,off,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,on,on,off,any,62,62,34,62,62,28,62,62,34,62,62,28
+on,on,on,on,on,any,62,62,34,62,62,28,62,62,34,62,62,28
+off,off,any,off,any,off,74,66,34,70,66,28,74,66,34,70,66,28
+off,on,any,off,any,off,62,62,34,62,62,28,62,62,34,62,62,28
+off,off,any,on,any,off,62,62,34,62,62,28,62,62,34,62,62,28
diff --git a/bluetooth/bluetooth_power_limits_Lynx_GWKK3_CA.csv b/bluetooth/bluetooth_power_limits_Lynx_GWKK3_CA.csv
index 81b050e..579c955 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_GWKK3_CA.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_GWKK3_CA.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
-off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-off,any,any,any,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
+off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+off,off,any,off,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,any,off,any,off,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,any,on,any,off,54,54,54,54,54,54,54,54,54,54,54,54
diff --git a/bluetooth/bluetooth_power_limits_Lynx_GWKK3_US.csv b/bluetooth/bluetooth_power_limits_Lynx_GWKK3_US.csv
index 81b050e..579c955 100644
--- a/bluetooth/bluetooth_power_limits_Lynx_GWKK3_US.csv
+++ b/bluetooth/bluetooth_power_limits_Lynx_GWKK3_US.csv
@@ -1,34 +1,36 @@
-Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
-off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
-off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
-off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
-on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
-on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
-off,any,any,any,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+Head,BTHotspot,WIFI5Ghz,HotspotVoice,Cell,IMU,BDR_Single_Chain_0,EDR_Single_Chain_0,BLE_Single_Chain_0,BDR_Single_Chain_1,EDR_Single_Chain_1,BLE_Single_Chain_1,BDR_Dual_Chain_0,EDR_Dual_Chain_0,BLE_Dual_Chain_0,BDR_Dual_Chain_1,EDR_Dual_Chain_1,BLE_Dual_Chain_1
+off,off,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,off,on,on,on,54,66,54,54,66,54,54,66,54,54,66,54
+off,off,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,off,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,off,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,off,on,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,off,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,off,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,off,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+off,on,on,on,off,on,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,on,on,on,on,54,54,54,54,54,54,54,54,54,54,54,54
+on,off,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,off,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,off,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,off,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,off,any,42,42,42,42,42,42,42,42,42,42,42,42
+on,on,on,on,on,any,42,42,42,42,42,42,42,42,42,42,42,42
+off,off,any,off,any,off,74,66,74,74,66,74,74,66,74,74,66,74
+off,on,any,off,any,off,54,54,54,54,54,54,54,54,54,54,54,54
+off,off,any,on,any,off,54,54,54,54,54,54,54,54,54,54,54,54
diff --git a/bluetooth/device_framework_matrix_product.xml b/bluetooth/device_framework_matrix_product.xml
new file mode 100644
index 0000000..0c013a6
--- /dev/null
+++ b/bluetooth/device_framework_matrix_product.xml
@@ -0,0 +1,18 @@
+
+
+ hardware.google.bluetooth.bt_channel_avoidance
+ 1.0
+
+ IBTChannelAvoidance
+ default
+
+
+
+ hardware.google.bluetooth.sar
+ 1.1
+
+ IBluetoothSar
+ default
+
+
+
diff --git a/bluetooth/le_audio_codec_capabilities.xml b/bluetooth/le_audio_codec_capabilities.xml
index cfb915b..d4404a8 100644
--- a/bluetooth/le_audio_codec_capabilities.xml
+++ b/bluetooth/le_audio_codec_capabilities.xml
@@ -32,9 +32,6 @@
-
-
-
@@ -47,10 +44,11 @@
-
-
+
+
+
@@ -64,10 +62,11 @@
-
+
+
@@ -80,5 +79,6 @@
+
diff --git a/bluetooth/qti_default.mk b/bluetooth/qti_default.mk
index d5717b2..5158663 100644
--- a/bluetooth/qti_default.mk
+++ b/bluetooth/qti_default.mk
@@ -24,10 +24,15 @@ PRODUCT_PRODUCT_PROPERTIES += \
# Bluetooth LE Audio
PRODUCT_PRODUCT_PROPERTIES += \
ro.bluetooth.leaudio_switcher.supported=true \
- ro.bluetooth.leaudio_broadcast_switcher.supported=true \
ro.bluetooth.leaudio_offload.supported=true \
persist.bluetooth.leaudio_offload.disabled=false \
ro.vendor.audio_hal.ble_use_stream_id=true \
+ bluetooth.profile.bap.unicast.client.enabled?=true \
+ bluetooth.profile.csip.set_coordinator.enabled?=true \
+ bluetooth.profile.hap.client.enabled?=true \
+ bluetooth.profile.mcp.server.enabled?=true \
+ bluetooth.profile.ccp.server.enabled?=true \
+ bluetooth.profile.vcp.controller.enabled?=true \
# Bluetooth LE Audio CIS handover to SCO
# Set the property only if the controller doesn't support CIS and SCO
@@ -42,6 +47,7 @@ PRODUCT_COPY_FILES += \
# Bluetooth HAL and Pixel extension
DEVICE_MANIFEST_FILE += \
device/google/lynx/bluetooth/manifest_bluetooth.xml
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/lynx/bluetooth/device_framework_matrix_product.xml
BOARD_SEPOLICY_DIRS += device/google/lynx-sepolicy/bluetooth
@@ -71,7 +77,9 @@ else ifeq ($(TARGET_USE_QTI_BT_SAR),true)
endif
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0-service-qti \
- hardware.google.bluetooth.bt_channel_avoidance@1.0-impl
+ hardware.google.bluetooth.bt_channel_avoidance@1.0-impl \
+ android.hardware.bluetooth.prebuilt.xml \
+ android.hardware.bluetooth_le.prebuilt.xml
# Bluetooth SAR Tx power caps
PRODUCT_COPY_FILES += \
diff --git a/conf/init.lynx.rc b/conf/init.lynx.rc
index c5fbb19..c116f92 100644
--- a/conf/init.lynx.rc
+++ b/conf/init.lynx.rc
@@ -16,7 +16,7 @@ on early-boot
wait_for_prop vendor.common.modules.ready 1
start insmod_sh_lynx
-service insmod_sh_lynx /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.lynx.cfg
+service insmod_sh_lynx /vendor/bin/insmod.sh /vendor/etc/init.insmod.lynx.cfg
class main
user root
group root system
@@ -38,11 +38,6 @@ on property:vendor.mfgapi.touchpanel.permission=1
chmod 0600 /sys/devices/virtual/sec/tsp/cmd
chown system system /sys/devices/virtual/sec/tsp/cmd
-# Fingerprint
-on post-fs-data
- chown system system /dev/goodix_fp
- exec_background - system shell -- /vendor/bin/trusty_apploader /vendor/firmware/g7.app
-
# SecureElement eSE2 cts mode
on property:persist.vendor.se.ese2.mode=ctsmode
write /sys/class/st33spi/st33spi/st33spi_state 33
@@ -88,31 +83,29 @@ on property:persist.vendor.touch_sensitivity_mode=0 && property:sys.boot_complet
on property:persist.vendor.touch_sensitivity_mode=1 && property:sys.boot_completed=1
write /sys/devices/virtual/goog_touch_interface/gti.0/screen_protector_mode_enabled 1
-# Touch
-on property:vendor.device.modules.ready=1
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/force_active
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/fw_ver
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_base
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_diff
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_raw
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/self_test
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_base
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_diff
- chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_raw
-
-# Override SF and RE uclamps to 0 on boot after being set elsewhere, for adpf cpu hints
-on property:sys.boot_completed=1
- trigger override-sf-uclamp
-
-on property:vendor.powerhal.init=*
- write /dev/cpuset/background/cpus ${persist.device_config.vendor_system_native.background_cpuset:-0-3}
-
-on override-sf-uclamp
- write /proc/vendor_sched/rt_uclamp_min 0
- write /proc/vendor_sched/sf_uclamp_min 0
-
# For Japan sku, always enforce camera shutter sound
# Since this property is read by the audio server in system service,
# it should be written by the system init.
on property:ro.boot.hardware.sku=G82U8
setprop audio.camerasound.force true
+
+# Haptics
+on property:vendor.all.modules.ready=1
+ mkdir /mnt/vendor/persist/haptics 0770 system system
+ chmod 770 /mnt/vendor/persist/haptics
+ chmod 440 /mnt/vendor/persist/haptics/cs40l26.cal
+ chown system system /mnt/vendor/persist/haptics
+ chown system system /mnt/vendor/persist/haptics/cs40l26.cal
+
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/f0_stored
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/q_stored
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/redc_stored
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/vibe_state
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/num_waves
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/f0_offset
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/f0_comp_enable
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/redc_comp_enable
+ chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/delay_before_stop_playback_us
+
+ enable vendor.vibrator.cs40l26
diff --git a/device-lynx.mk b/device-lynx.mk
index 339f561..a7f968a 100644
--- a/device-lynx.mk
+++ b/device-lynx.mk
@@ -29,6 +29,8 @@ DEVICE_PACKAGE_OVERLAYS += device/google/lynx/lynx/overlay
include device/google/lynx/audio/lynx/audio-tables.mk
include device/google/gs201/device-shipping-common.mk
include hardware/google/pixel/vibrator/cs40l26/device.mk
+include device/google/gs-common/touch/gti/gti.mk
+include device/google/gs-common/wlan/dump.mk
# go/lyric-soong-variables
$(call soong_config_set,lyric,camera_hardware,lynx)
@@ -151,10 +153,16 @@ include device/google/gs101/fingerprint/udfps_factory.mk
endif
# Vibrator HAL
+ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1
PRODUCT_VENDOR_PROPERTIES += \
ro.vendor.vibrator.hal.supported_primitives=243 \
ro.vendor.vibrator.hal.f0.comp.enabled=1 \
- ro.vendor.vibrator.hal.redc.comp.enabled=0
+ ro.vendor.vibrator.hal.redc.comp.enabled=0 \
+ persist.vendor.vibrator.hal.context.enable=false \
+ persist.vendor.vibrator.hal.context.scale=40 \
+ persist.vendor.vibrator.hal.context.fade=true \
+ persist.vendor.vibrator.hal.context.cooldowntime=1600 \
+ persist.vendor.vibrator.hal.context.settlingtime=5000
# Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/lynx/prebuilts
@@ -172,9 +180,13 @@ else
device/google/lynx/location/scd_user.conf.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf
endif
+# Wifi HAL
+PRODUCT_SOONG_NAMESPACES += hardware/qcom/wlan/wcn6740
+
# DCK properties based on target
PRODUCT_PROPERTY_OVERRIDES += \
- ro.gms.dck.eligible_wcc=2
+ ro.gms.dck.eligible_wcc=2 \
+ ro.gms.dck.se_capability=1
# WIFI COEX
PRODUCT_COPY_FILES += \
@@ -194,7 +206,7 @@ PRODUCT_VENDOR_PROPERTIES += \
# Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.build.svn=6
+ ro.vendor.build.svn=11
# Set support hide display cutout feature
PRODUCT_PRODUCT_PROPERTIES += \
@@ -245,17 +257,10 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.front_720P_always_binning=true
-# Use GmsCorePrebuilt y2022w28
-USE_GMSCORE_PREBUILT_Y2022W28 := true
-
# Device features
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
-# Enable adpf cpu hint session for SurfaceFlinger
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
- debug.sf.enable_adpf_cpu_hint=true
-
# The default value of this variable is false and should only be set to true when
# the device allows users to enable the seamless transfer feature.
PRODUCT_PRODUCT_PROPERTIES += \
@@ -277,4 +282,3 @@ PRODUCT_PACKAGES += \
SettingsOverlayG0DZQ \
SettingsOverlayGHL1X \
SettingsOverlayGWKK3
-
diff --git a/init.insmod.lynx.cfg b/init.insmod.lynx.cfg
index e4eecf5..1b88597 100644
--- a/init.insmod.lynx.cfg
+++ b/init.insmod.lynx.cfg
@@ -9,8 +9,7 @@
modprobe|snd-soc-cs35l41-spi.ko
modprobe|goodix_brl_touch.ko
modprobe|focal_touch.ko
-modprobe|cl_dsp.ko
-modprobe|input-cs40l26-i2c.ko
+modprobe|cs40l26-i2c.ko
modprobe|snd-soc-cs40l26.ko
# All device specific modules loaded
diff --git a/location/gps.xml.l10 b/location/gps.xml.l10
index 61c31d9..3463633 100644
--- a/location/gps.xml.l10
+++ b/location/gps.xml.l10
@@ -85,6 +85,7 @@
EnableOnChipStopNotification="2"
PowerMode="3"
MinGpsWeekNumber="2216"
+ OnChipAccMask="50"
/>
60
-
- 64
-
- 2
- 3
@@ -299,4 +296,17 @@
gwkk3
http://www.gstatic.com/android/sms/GWKK3.xml
+
+
+ M 50 0 C 42.768298 0.20918843 40.38325 0.67140492 36.839844 1.4492188 C 32.88207 2.499408 31.55228 2.9412067 27.529297 4.6933594 C 22.757243 6.7717586 20.051023 9.0487475 17.677734 10.873047 C 14.896398 13.14348 12.520098 15.642526 10.375 18.316406 C 7.8943843 21.48606 6.0935469 24.386022 4.3515625 28.15625 C 1.8145748 33.95665 1.4214109 36.446413 0.90625 38.939453 C 0.29310087 41.906691 0.090606668 43.961689 0 50 L 0 2350 C 0.083036414 2356.0047 0.27049146 2357.7278 0.70507812 2360.4961 C 1.0552946 2362.727 1.7787856 2366.4728 4.1152344 2372.0391 C 5.8274884 2375.87 7.608122 2378.6647 10.011719 2381.8281 C 12.156817 2384.5019 14.6796 2387.128 17.460938 2389.3984 C 19.82277 2391.2952 22.788288 2393.4515 27.306641 2395.5898 C 30.772461 2397.23 33.05157 2397.9241 37.181641 2398.8828 C 41.654968 2399.8035 43.840728 2399.9069 50 2400 L 1030 2400 C 1036.1593 2399.9069 1038.345 2399.8035 1042.8184 2398.8828 C 1046.9485 2397.9241 1049.2276 2397.23 1052.6934 2395.5898 C 1057.2118 2393.4515 1060.1773 2391.2952 1062.5391 2389.3984 C 1065.3205 2387.128 1067.8432 2384.5019 1069.9883 2381.8281 C 1072.3919 2378.6647 1074.1725 2375.87 1075.8848 2372.0391 C 1078.2212 2366.4728 1078.9466 2362.727 1079.2969 2360.4961 C 1079.7314 2357.7278 1079.917 2356.0047 1080 2350 L 1080 50 C 1079.909 43.961692 1079.7068 41.906687 1079.0938 38.939453 C 1078.5787 36.446409 1078.1854 33.956648 1075.6484 28.15625 C 1073.9064 24.386028 1072.1057 21.48606 1069.625 18.316406 C 1067.4799 15.642522 1065.1037 13.143473 1062.3223 10.873047 C 1059.949 9.0487399 1057.2428 6.7717652 1052.4707 4.6933594 C 1048.4477 2.9412128 1047.118 2.4994066 1043.1602 1.4492188 C 1039.6168 0.67140026 1037.2317 0.20918958 1030 0 L 50 0 z
diff --git a/lynx/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml b/lynx/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml
new file mode 100644
index 0000000..8304044
--- /dev/null
+++ b/lynx/overlay/frameworks/base/core/res/res/xml/irq_device_map.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ Alarm
+
+
+ Wifi
+
+
+ Cellular_data
+
+
+ Sound_trigger
+
+
+ Sensor
+
+
+
diff --git a/lynx/overlay/packages/apps/Nfc/res/values/config.xml b/lynx/overlay/packages/apps/Nfc/res/values/config.xml
index 34bf74e..4a8efa9 100644
--- a/lynx/overlay/packages/apps/Nfc/res/values/config.xml
+++ b/lynx/overlay/packages/apps/Nfc/res/values/config.xml
@@ -21,4 +21,15 @@
- GHL1X
- G82U8
+ true
+
+ 70
+ 150
+ false
+
+ - 36
+
+
+ - 102
+
diff --git a/powerhint.json b/powerhint.json
index 4f20b9c..5a7b1f9 100644
--- a/powerhint.json
+++ b/powerhint.json
@@ -1,5 +1,18 @@
{
"Nodes": [
+ {
+ "Name": "GPUMinFreq",
+ "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
+ "Values": [
+ "848000",
+ "762000",
+ "572000",
+ "471000",
+ "302000",
+ "202000"
+ ],
+ "ResetOnInit": true
+ },
{
"Name": "MemFreq",
"Path": "/sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/min_freq",
@@ -104,19 +117,6 @@
],
"ResetOnInit": true
},
- {
- "Name": "GPUMinFreq",
- "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
- "Values": [
- "848000",
- "762000",
- "572000",
- "471000",
- "302000",
- "202000"
- ],
- "ResetOnInit": true
- },
{
"Name": "ReducePreferIdle",
"Path": "/proc/vendor_sched/reduce_prefer_idle",
@@ -136,6 +136,16 @@
"DefaultIndex": 0,
"ResetOnInit": true
},
+ {
+ "Name": "CPUDVFSHeadroom",
+ "Path": "/proc/vendor_sched/dvfs_headroom",
+ "Values": [
+ "1280",
+ "1100 1078 1024"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
+ },
{
"Name": "MIFTargetLoad",
"Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
@@ -150,7 +160,7 @@
"Name": "CAMUClampBoost",
"Path": "/proc/vendor_sched/cam_uclamp_min",
"Values": [
- "612",
+ "764",
"0"
],
"ResetOnInit": true
@@ -159,7 +169,7 @@
"Name": "TAUClampBoost",
"Path": "/proc/vendor_sched/ta_uclamp_min",
"Values": [
- "612",
+ "764",
"1"
],
"ResetOnInit": true
@@ -177,8 +187,8 @@
"Name": "MLUclampBoost",
"Path": "/proc/vendor_sched/nnapi_uclamp_min",
"Values": [
- "180",
- "650"
+ "225",
+ "813"
],
"DefaultIndex": 0,
"ResetOnInit": true
@@ -593,6 +603,16 @@
"0,1,2,3,4,5,6,7"
],
"Type": "Property"
+ },
+ {
+ "Name": "Dex2oatGroup",
+ "Path": "/proc/vendor_sched/dex2oat_ug",
+ "Values": [
+ "1",
+ "0"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
}
],
"Actions": [
@@ -654,7 +674,7 @@
"PowerHint": "LAUNCH",
"Node": "TAUClampBoost",
"Duration": 5000,
- "Value": "612"
+ "Value": "764"
},
{
"PowerHint": "LAUNCH",
@@ -721,6 +741,18 @@
"Duration": 2000,
"Value": "9999999"
},
+ {
+ "PowerHint": "CPU_LOAD_RESET",
+ "Node": "GPUMinFreq",
+ "Duration": 50,
+ "Value": "302000"
+ },
+ {
+ "PowerHint": "CPU_LOAD_RESET",
+ "Node": "MemFreq",
+ "Duration": 33,
+ "Value": "1014000"
+ },
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "MemFreq",
@@ -767,7 +799,7 @@
"PowerHint": "CAMERA_LAUNCH",
"Node": "CAMUClampBoost",
"Duration": 1000,
- "Value": "612"
+ "Value": "764"
},
{
"PowerHint": "CAMERA_LAUNCH",
@@ -1117,6 +1149,12 @@
"Duration": 0,
"Value": "1100 1078 1024"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_HIGH",
+ "Node": "CPUDVFSHeadroom",
+ "Duration": 0,
+ "Value": "1100 1078 1024"
+ },
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CDPreferHighCap",
@@ -1437,6 +1475,66 @@
"Duration": 0,
"Value": "1"
},
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "BigControlTempSet",
+ "Duration": 0,
+ "Value": "80000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "MidControlTempSet",
+ "Duration": 0,
+ "Value": "80000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "LittleControlTempSet",
+ "Duration": 0,
+ "Value": "80000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "G3dControlTempSet",
+ "Duration": 0,
+ "Value": "80000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "TpuControlTempSet",
+ "Duration": 0,
+ "Value": "80000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "BigSwitchOnTempSet",
+ "Duration": 0,
+ "Value": "60000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "MidSwitchOnTempSet",
+ "Duration": 0,
+ "Value": "60000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "LittleSwitchOnTempSet",
+ "Duration": 0,
+ "Value": "60000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "G3dSwitchOnTempSet",
+ "Duration": 0,
+ "Value": "60000"
+ },
+ {
+ "PowerHint": "LOW_POWER",
+ "Node": "TpuSwitchOnTempSet",
+ "Duration": 0,
+ "Value": "60000"
+ },
{
"PowerHint": "REFRESH_90FPS",
"Node": "TAUClampBoost",
@@ -1502,12 +1600,6 @@
"Duration": 0,
"Value": "572000"
},
- {
- "PowerHint": "ADPF_FIRST_FRAME",
- "Node": "GPUMinFreq",
- "Duration": 50,
- "Value": "302000"
- },
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
"Node": "PMU_POLL",
@@ -1586,6 +1678,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
+ {
+ "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
+ "Node": "Dex2oatGroup",
+ "Duration": 0,
+ "Value": "0"
+ },
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_MODERATE",
"Node": "PMU_POLL",
@@ -1664,6 +1762,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
+ {
+ "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_MODERATE",
+ "Node": "Dex2oatGroup",
+ "Duration": 0,
+ "Value": "0"
+ },
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_SEVERE",
"Node": "PMU_POLL",
@@ -1742,6 +1846,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
+ {
+ "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_SEVERE",
+ "Node": "Dex2oatGroup",
+ "Duration": 0,
+ "Value": "0"
+ },
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_CRITICAL",
"Node": "PMU_POLL",
@@ -1820,6 +1930,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
+ {
+ "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_CRITICAL",
+ "Node": "Dex2oatGroup",
+ "Duration": 0,
+ "Value": "0"
+ },
{
"PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_EMERGENCY",
"Node": "PMU_POLL",
@@ -1916,6 +2032,12 @@
"Duration": 0,
"Value": "0,1,2,3"
},
+ {
+ "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_EMERGENCY",
+ "Node": "Dex2oatGroup",
+ "Duration": 0,
+ "Value": "0"
+ },
{
"PowerHint": "FACE_UNLOCK_BOOST",
"Node": "CPU_LITTLE_TSKIN_BYPASS",
@@ -1980,7 +2102,7 @@
"PowerHint": "ML_ACC",
"Node": "MLUclampBoost",
"Duration": 2000,
- "Value": "650"
+ "Value": "813"
},
{
"PowerHint": "ML_ACC",
@@ -2002,8 +2124,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
- "UclampMin_Init": 185,
- "UclampMin_High": 384,
+ "UclampMin_Init": 232,
+ "UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@@ -2026,8 +2148,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
- "UclampMin_Init": 129,
- "UclampMin_High": 384,
+ "UclampMin_Init": 162,
+ "UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@@ -2050,8 +2172,8 @@
"PID_Do": 500.0,
"PID_Du": 0.0,
"UclampMin_On": true,
- "UclampMin_Init": 129,
- "UclampMin_High": 384,
+ "UclampMin_Init": 162,
+ "UclampMin_High": 480,
"UclampMin_Low": 2,
"SamplingWindow_P": 1,
"SamplingWindow_I": 0,
@@ -2077,9 +2199,9 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
- "UclampMin_Init": 200,
- "UclampMin_High": 157,
- "UclampMin_Low": 157,
+ "UclampMin_Init": 250,
+ "UclampMin_High": 197,
+ "UclampMin_Low": 197,
"ReportingRateLimitNs": 1,
"EarlyBoost_On": false,
"EarlyBoost_TimeFactor": 0.0,
@@ -2101,9 +2223,9 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
- "UclampMin_Init": 200,
- "UclampMin_High": 42,
- "UclampMin_Low": 42,
+ "UclampMin_Init": 250,
+ "UclampMin_High": 53,
+ "UclampMin_Low": 53,
"ReportingRateLimitNs": 1,
"EarlyBoost_On": false,
"EarlyBoost_TimeFactor": 0.0,
@@ -2125,7 +2247,7 @@
"SamplingWindow_I": 1,
"SamplingWindow_D": 1,
"UclampMin_On": true,
- "UclampMin_Init": 200,
+ "UclampMin_Init": 250,
"UclampMin_High": 0,
"UclampMin_Low": 0,
"ReportingRateLimitNs": 1,
diff --git a/powerstats/service.cpp b/powerstats/service.cpp
index d8856cc..971fd8f 100644
--- a/powerstats/service.cpp
+++ b/powerstats/service.cpp
@@ -27,6 +27,7 @@
#include
#include
#include
+#include
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DisplayStateResidencyDataProvider;
@@ -89,6 +90,8 @@ void addGPUGs202(std::shared_ptr p) {
}
int main() {
+ struct stat buffer;
+
LOG(INFO) << "Pixel PowerStats HAL AIDL Service is starting.";
// single thread
@@ -107,7 +110,21 @@ int main() {
addWlan(p);
addTPU(p);
addUfs(p);
- addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-4/i2c-st21nfc/power_stats");
+ if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-2/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-2/i2c-st21nfc/power_stats");
+ } else if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-3/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-3/i2c-st21nfc/power_stats");
+ } else if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-4/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-4/i2c-st21nfc/power_stats");
+ } else if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-5/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-5/i2c-st21nfc/power_stats");
+ } else if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-6/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-6/i2c-st21nfc/power_stats");
+ } else if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-7/i2c-st21nfc/power_stats", &buffer)) {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-7/i2c-st21nfc/power_stats");
+ } else {
+ addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-8/i2c-st21nfc/power_stats");
+ }
addPowerDomains(p);
addDevfreq(p);
addGPUGs202(p);
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
index 4fa03d2..2659754 100644
--- a/rro_overlays/WifiOverlay/res/values/config.xml
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -126,10 +126,29 @@
true
+
+ true
+
+ 10000
true
true
+
+
+ true
+
+
+ true
+
+
+ true
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
index e09731b..63655a4 100644
--- a/self-extractors/extract-lists.txt
+++ b/self-extractors/extract-lists.txt
@@ -10,7 +10,7 @@
system_ext/lib64/libmediaadaptor.so \
system_ext/priv-app/ShannonRcs/ShannonRcs.apk \
system_ext/priv-app/ShannonIms/ShannonIms.apk \
- system_ext/priv-app/QualifiedNetworksService/QualifiedNetworksService.apk \
+ system_ext/priv-app/PixelQualifiedNetworksService/PixelQualifiedNetworksService.apk \
"
;;
diff --git a/self-extractors/google_devices/staging/Android.mk b/self-extractors/google_devices/staging/Android.mk
index c52fbf2..a720400 100644
--- a/self-extractors/google_devices/staging/Android.mk
+++ b/self-extractors/google_devices/staging/Android.mk
@@ -18,14 +18,13 @@ LOCAL_PATH := $(call my-dir)
ifneq ($(filter lynx,$(TARGET_DEVICE)),)
$(call add-radio-file,bootloader.img)
+ $(call add-radio-file,radio.img)
endif
-$(call add-radio-file-checked,radio.img,version-baseband)
-
ifneq ($(filter lynx,$(TARGET_DEVICE)),)
include $(CLEAR_VARS)
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_MODULE := QualifiedNetworksService
+LOCAL_MODULE := PixelQualifiedNetworksService
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_SYSTEM_EXT_MODULE := true
diff --git a/self-extractors/google_devices/staging/device-partial.mk b/self-extractors/google_devices/staging/device-partial.mk
index 7f1e7e3..d4e5924 100644
--- a/self-extractors/google_devices/staging/device-partial.mk
+++ b/self-extractors/google_devices/staging/device-partial.mk
@@ -17,7 +17,7 @@ PRODUCT_SOONG_NAMESPACES += \
# AOSP packages required by the blobs
PRODUCT_PACKAGES := \
- QualifiedNetworksService \
+ PixelQualifiedNetworksService \
ShannonIms \
ShannonRcs \
diff --git a/sensors/Android.mk b/sensors/Android.mk
deleted file mode 100644
index 46d6f0c..0000000
--- a/sensors/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (C) 2009 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.
-
-LOCAL_PATH := $(call my-dir)
-
-# HAL module implemenation stored in
-# hw/..so
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_SHARED_LIBRARIES := liblog libcutils libhardware
-LOCAL_SRC_FILES := sensors_dummy.c
-LOCAL_MODULE := sensors.lynx
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../NOTICE
-LOCAL_PROPRIETARY_MODULE := true
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/sensors/sensors_dummy.c b/sensors/sensors_dummy.c
deleted file mode 100644
index b1edd56..0000000
--- a/sensors/sensors_dummy.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * Copyright (C) 2009 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.
- */
-
-/* this implements a sensors hardware library for the Android emulator.
- * the following code should be built as a shared library that will be
- * placed into /system/lib/hw/sensors.goldfish.so
- *
- * it will be loaded by the code in hardware/libhardware/hardware.c
- * which is itself called from com_android_server_SensorService.cpp
- */
-
-#define SENSORS_SERVICE_NAME "sensors"
-
-#define LOG_TAG "Dummy_Sensors"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#if 0
-#define D(...) ALOGD(__VA_ARGS__)
-#else
-#define D(...) ((void)0)
-#endif
-
-#define E(...) ALOGE(__VA_ARGS__)
-
-/** SENSOR IDS AND NAMES
- **/
-
-#define MAX_NUM_SENSORS 8
-
-#define SUPPORTED_SENSORS ((1<";
-}
-
-static int
-_sensorIdFromName( const char* name )
-{
- int nn;
-
- if (name == NULL)
- return -1;
-
- for (nn = 0; nn < MAX_NUM_SENSORS; nn++)
- if (!strcmp(name, _sensorIds[nn].name))
- return _sensorIds[nn].id;
-
- return -1;
-}
-
-/* return the current time in nanoseconds */
-static int64_t now_ns(void) {
- struct timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts);
- return (int64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
-}
-
-/** SENSORS POLL DEVICE
- **
- ** This one is used to read sensor data from the hardware.
- ** We implement this by simply reading the data from the
- ** emulator through the QEMUD channel.
- **/
-
-typedef struct SensorDevice {
- struct sensors_poll_device_1 device;
- sensors_event_t sensors[MAX_NUM_SENSORS];
- uint32_t pendingSensors;
- int64_t timeStart;
- int64_t timeOffset;
- uint32_t active_sensors;
- int fd;
- pthread_mutex_t lock;
-} SensorDevice;
-
-/* Grab the file descriptor to the emulator's sensors service pipe.
- * This function returns a file descriptor on success, or -errno on
- * failure, and assumes the SensorDevice instance's lock is held.
- *
- * This is needed because set_delay(), poll() and activate() can be called
- * from different threads, and poll() is blocking.
- *
- * 1) On a first thread, de-activate() all sensors first, then call poll(),
- * which results in the thread blocking.
- *
- * 2) On a second thread, slightly later, call set_delay() then activate()
- * to enable the acceleration sensor.
- *
- * The system expects this to unblock the first thread which will receive
- * new sensor events after the activate() call in 2).
- *
- * This cannot work if both threads don't use the same connection.
- *
- * TODO(digit): This protocol is brittle, implement another control channel
- * for set_delay()/activate()/batch() when supporting HAL 1.3
- */
-static int sensor_device_get_fd_locked(SensorDevice* dev) {
- /* Create connection to service on first call */
- if (dev->fd < 0) {
- int ret = -errno;
- E("%s: Could not open connection to service: %s", __FUNCTION__,
- strerror(-ret));
- return ret;
- }
- return dev->fd;
-}
-
-/* Pick up one pending sensor event. On success, this returns the sensor
- * id, and sets |*event| accordingly. On failure, i.e. if there are no
- * pending events, return -EINVAL.
- *
- * Note: The device's lock must be acquired.
- */
-static int sensor_device_pick_pending_event_locked(SensorDevice* d,
- sensors_event_t* event)
-{
- uint32_t mask = SUPPORTED_SENSORS & d->pendingSensors;
-
- if (mask) {
- uint32_t i = 31 - __builtin_clz(mask);
-
- pthread_mutex_lock(&d->lock);
- d->pendingSensors &= ~(1U << i);
- *event = d->sensors[i];
- event->sensor = i;
- event->version = sizeof(*event);
- pthread_mutex_unlock(&d->lock);
- D("%s: %d [%f, %f, %f]", __FUNCTION__,
- i,
- event->data[0],
- event->data[1],
- event->data[2]);
- return i;
- }
- E("No sensor to return!!! pendingSensors=0x%08x", d->pendingSensors);
- // we may end-up in a busy loop, slow things down, just in case.
- usleep(1000);
- return -EINVAL;
-}
-
-static int sensor_device_close(struct hw_device_t* dev0)
-{
- SensorDevice* dev = (void*)dev0;
- // Assume that there are no other threads blocked on poll()
- if (dev->fd >= 0) {
- close(dev->fd);
- dev->fd = -1;
- }
- pthread_mutex_destroy(&dev->lock);
- free(dev);
- return 0;
-}
-
-/* Return an array of sensor data. This function blocks until there is sensor
- * related events to report. On success, it will write the events into the
- * |data| array, which contains |count| items. The function returns the number
- * of events written into the array, which shall never be greater than |count|.
- * On error, return -errno code.
- *
- * Note that according to the sensor HAL [1], it shall never return 0!
- *
- * [1] http://source.android.com/devices/sensors/hal-interface.html
- */
-static int sensor_device_poll(struct sensors_poll_device_t *dev0,
- sensors_event_t* data, int count)
-{
- return -EIO;
-}
-
-static int sensor_device_activate(struct sensors_poll_device_t *dev0,
- int handle,
- int enabled)
-{
- SensorDevice* dev = (void*)dev0;
-
- D("%s: handle=%s (%d) enabled=%d", __FUNCTION__,
- _sensorIdToName(handle), handle, enabled);
-
- /* Sanity check */
- if (!ID_CHECK(handle)) {
- E("%s: bad handle ID", __FUNCTION__);
- return -EINVAL;
- }
-
- /* Exit early if sensor is already enabled/disabled. */
- uint32_t mask = (1U << handle);
- uint32_t sensors = enabled ? mask : 0;
-
- pthread_mutex_lock(&dev->lock);
-
- uint32_t active = dev->active_sensors;
- uint32_t new_sensors = (active & ~mask) | (sensors & mask);
- uint32_t changed = active ^ new_sensors;
-
- if (changed)
- dev->active_sensors = new_sensors;
-
- pthread_mutex_unlock(&dev->lock);
- return 0;
-}
-
-static int sensor_device_default_flush(
- struct sensors_poll_device_1* dev0,
- int handle) {
-
- SensorDevice* dev = (void*)dev0;
-
- D("%s: handle=%s (%d)", __FUNCTION__,
- _sensorIdToName(handle), handle);
-
- /* Sanity check */
- if (!ID_CHECK(handle)) {
- E("%s: bad handle ID", __FUNCTION__);
- return -EINVAL;
- }
-
- pthread_mutex_lock(&dev->lock);
- dev->sensors[handle].version = META_DATA_VERSION;
- dev->sensors[handle].type = SENSOR_TYPE_META_DATA;
- dev->sensors[handle].sensor = 0;
- dev->sensors[handle].timestamp = 0;
- dev->sensors[handle].meta_data.what = META_DATA_FLUSH_COMPLETE;
- dev->pendingSensors |= (1U << handle);
- pthread_mutex_unlock(&dev->lock);
-
- return 0;
-}
-
-static int sensor_device_set_delay(struct sensors_poll_device_t *dev0,
- int handle __unused,
- int64_t ns)
-{
- return 0;
-}
-
-static int sensor_device_default_batch(
- struct sensors_poll_device_1* dev,
- int sensor_handle,
- int flags,
- int64_t sampling_period_ns,
- int64_t max_report_latency_ns) {
- return sensor_device_set_delay(dev, sensor_handle, sampling_period_ns);
-}
-
-/** MODULE REGISTRATION SUPPORT
- **
- ** This is required so that hardware/libhardware/hardware.c
- ** will dlopen() this library appropriately.
- **/
-
-/*
- * the following is the list of all supported sensors.
- * this table is used to build sSensorList declared below
- * according to which hardware sensors are reported as
- * available from the emulator (see get_sensors_list below)
- *
- * note: numerical values for maxRange/resolution/power for
- * all sensors but light, pressure and humidity were
- * taken from the reference AK8976A implementation
- */
-static const struct sensor_t sSensorListInit[] = {
- { .name = "Accelerometer",
- .vendor = "The Android Open Source Project",
- .version = 1,
- .handle = ID_ACCELERATION,
- .type = SENSOR_TYPE_ACCELEROMETER,
- .maxRange = 2.8f,
- .resolution = 1.0f/4032.0f,
- .power = 3.0f,
- .minDelay = 10000,
- .maxDelay = 60 * 1000 * 1000,
- .fifoReservedEventCount = 0,
- .fifoMaxEventCount = 0,
- .stringType = 0,
- .requiredPermission = 0,
- .flags = SENSOR_FLAG_CONTINUOUS_MODE,
- .reserved = {}
- },
-};
-
-static struct sensor_t sSensorList[1];
-
-static int sensors__get_sensors_list(struct sensors_module_t* module __unused,
- struct sensor_t const** list)
-{
- *list = sSensorList;
-
- return 0;
-}
-
-static int
-open_sensors(const struct hw_module_t* module,
- const char* name,
- struct hw_device_t* *device)
-{
- int status = -EINVAL;
-
- D("%s: name=%s", __FUNCTION__, name);
-
- if (!strcmp(name, SENSORS_HARDWARE_POLL)) {
- SensorDevice *dev = malloc(sizeof(*dev));
-
- memset(dev, 0, sizeof(*dev));
-
- dev->device.common.tag = HARDWARE_DEVICE_TAG;
- dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_3;
- dev->device.common.module = (struct hw_module_t*) module;
- dev->device.common.close = sensor_device_close;
- dev->device.poll = sensor_device_poll;
- dev->device.activate = sensor_device_activate;
- dev->device.setDelay = sensor_device_set_delay;
-
- // Version 1.3-specific functions
- dev->device.batch = sensor_device_default_batch;
- dev->device.flush = sensor_device_default_flush;
-
- dev->fd = -1;
- pthread_mutex_init(&dev->lock, NULL);
-
- *device = &dev->device.common;
- status = 0;
- }
- return status;
-}
-
-
-static struct hw_module_methods_t sensors_module_methods = {
- .open = open_sensors
-};
-
-struct sensors_module_t HAL_MODULE_INFO_SYM = {
- .common = {
- .tag = HARDWARE_MODULE_TAG,
- .version_major = 1,
- .version_minor = 0,
- .id = SENSORS_HARDWARE_MODULE_ID,
- .name = "Dummy SENSORS Module",
- .author = "The Android Open Source Project",
- .methods = &sensors_module_methods,
- },
- .get_sensors_list = sensors__get_sensors_list
-};
diff --git a/thermal_info_config_lynx.json b/thermal_info_config_lynx.json
index 075a283..a72d137 100644
--- a/thermal_info_config_lynx.json
+++ b/thermal_info_config_lynx.json
@@ -866,5 +866,45 @@
"PowerSampleDelay":14000,
"PowerSampleCount":5
}
- ]
+ ],
+ "Stats": {
+ "Sensors": {
+ "RecordWithDefaultThreshold": ["VIRTUAL-SKIN", "VIRTUAL-SKIN-CHARGE-WLC"],
+ "RecordWithThreshold": [
+ {
+ "Name": "VIRTUAL-NEU-QUT-SKIN1-SKIN2-USB-USB2-GNSS-1",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-QUT-SKIN2-USB-USB2-2",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-QUT-SKIN2-USB-GNSS-3",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-NEU-QUT-SKIN1-SKIN2-USB-USB2-GNSS-4",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-SKIN",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-SKIN-CHARGE-WLC",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-USB-THROTTLING",
+ "Thresholds": [2.0]
+ }
+ ]
+ },
+ "CoolingDevices": {
+ "RecordVotePerSensor": {
+ "DefaultThresholdEnableAll": true
+ }
+ }
+ }
}