From e71e442c6fab79ae8db1834cb109c9872b772015 Mon Sep 17 00:00:00 2001 From: Rios Kao Date: Thu, 25 Jul 2024 00:57:40 +0000 Subject: [PATCH] audio: Phase in TG4 fortemedia tuning tables Change List : Fortemedia: Check in PTCRB setting, HASWB TX/RX EQ. HHWB and HHSWB RXEQ and vol gain. HHSWB TXEQ HHWB ECNS. Files from the latest attachment on b/355139309 Bug: 355139309 Test: verified by ntkuo@ Flag: EXEMPT tuning table update Change-Id: I8fea1f44756c4e3cef8a14509fe1086d8319415d --- audio/tegu/tuning/fortemedia/BLUETOOTH.dat | Bin 161366 -> 161366 bytes audio/tegu/tuning/fortemedia/BLUETOOTH.mods | 252 +- audio/tegu/tuning/fortemedia/HANDSET.dat | Bin 139854 -> 139854 bytes audio/tegu/tuning/fortemedia/HANDSET.mods | 2706 +++++------ audio/tegu/tuning/fortemedia/HANDSFREE.dat | Bin 64562 -> 64562 bytes audio/tegu/tuning/fortemedia/HANDSFREE.mods | 4584 +++++++++---------- audio/tegu/tuning/fortemedia/HEADSET.dat | Bin 258170 -> 258170 bytes audio/tegu/tuning/fortemedia/HEADSET.mods | 3076 ++++++------- 8 files changed, 5309 insertions(+), 5309 deletions(-) diff --git a/audio/tegu/tuning/fortemedia/BLUETOOTH.dat b/audio/tegu/tuning/fortemedia/BLUETOOTH.dat index 9f8fa434d6ba6a05abb5355e0d66efe9d4282673..84e296c6cf68437c988130c6c202a7b8eb0cd117 100644 GIT binary patch delta 968 zcma))-BZ+67{|ZQc^2Iz7Pp2W2FTq&19=&D#tAi*T`6Tt4Md`B+S-O9a;9P+TQTED zc+rjI>QTU#65pxu0$Yn-%x-$I7iYL=950-KtV=Gi1W{bJZ~s9TpYwdrd7kHco-=c< zPI#_PcoNmJ>U^l&*skAmY?tvh1-JJBzJ5Rk$RWTSCP&Co@)7wMh#ez?NIS>L338I0 z0>Y=s8S1k@{SXGtCy3!ww8Bnyw-n7eKVZoD5x2U2LeGxN@U{Pp+s-c-bADy{Z^X7$ zE;M1kO;qOFGn$hoWfVW^Mt~Q^4J6a+`XFXLmUD zT|j4n)IE~oevVV8sp(@x5H>Pbr-Go3xSARYkuO0Mh!2I5gNNjPER;p?GX`V<9+m)# zm@5`H7BMa+k4Pa(m@5^;mIzQr$|dbo(7ICY#Ol-b_MYeyde|22qW#9dGas7Q# zATb;3^>gj+J)F$;1&VW9x2-YFt<`4hiy^b6F>D$e)|$-`8;KTqBasbeTV$hYd3}?K cB;(PMK(egS?fKs=yW`Oh;!zoiN6lE?zZ!%ZJ^%m! delta 980 zcmb8t?Qhdn6bJC{xu#jTWXZnfg58?w=DuF)6jgtZ9R@-SD%+(SrNak$Bhabb{# zK=@Tj6q8K`S2u<-%A*gj1_h=J0YzY-i@f56Z+wc;7fYSj=bYcU_n!Mp z?!8gly-{0tB@LbRmniH0>@NJyx?Sbh#rO6Aj$S|=2B=Ts5%GceP#hKg(my5=;b92U359r2AU|5oVsvV4`8 zue;0K`V8mTiwl2(QS&nhzsSM*Zhh{5-5JAxmA20XKQ@FgdW0a_|T(Kt3(TB8eVah)2nV0y0o2 z7R#E)#1i>lMDtNhGu2B8@QMasp~}p-QV4)k7jrs##Y*&{jwa_Lg}Vf3iSR#l&8lV z9rk|SPTAZ+uF@UUxk@{Hxfup_lT{a4{T1+a62-gZ&)${s2Pj0{l!1eE9)}1!w2Xg` zhVedG(L<%wOOxhdg3(6J z?Xl>dEk1oE%jGO{yuw4qHXbQ$hgqw^)V?zcbmpfAC5=5dDQ1o!Pa$qnih!_ar1_HK@*2H3ar zEYHI^&OuU~myH+LLl^nUjzL!VjAtMCoDsRiBbh^7jLZD%>tFD1tydVXs|~~(($f5@(d2VLr2`nC0@gp+uXKXHAgE|<7U6wSQ}7PH7nGH spbkX}vbKcRskW`_Rm-+2wK5rt40@8@+W)a-Uo7%=EJA~^i2A|xFYsRv$^ZZW diff --git a/audio/tegu/tuning/fortemedia/BLUETOOTH.mods b/audio/tegu/tuning/fortemedia/BLUETOOTH.mods index cfc98cf..0e47196 100644 --- a/audio/tegu/tuning/fortemedia/BLUETOOTH.mods +++ b/audio/tegu/tuning/fortemedia/BLUETOOTH.mods @@ -3,7 +3,7 @@ #EXPORT_FLAG BLUETOOTH #PARAM_MODE FULL #SAVE_MODE 3 -#SAVE_TIME 2024-07-11 15:50:41 +#SAVE_TIME 2024-07-24 15:56:42 #CASE_NAME BLUETOOTH-BT_HAC-VOICE_GENERIC-WB #PARAM_TYPE TX+2RX @@ -11,7 +11,7 @@ #TX 0 0x4001 //TX_OPERATION_MODE_0 1 0x0001 //TX_OPERATION_MODE_1 -2 0x00BB //TX_PATCH_REG +2 0x003B //TX_PATCH_REG 3 0x6F7C //TX_SENDFUNC_MODE_0 4 0x0000 //TX_SENDFUNC_MODE_1 5 0x0002 //TX_NUM_MIC @@ -150,8 +150,8 @@ 138 0x0000 //TX_LT_ENB_FLAG 139 0x2A94 //TX_LT_DOA_L_THRD 140 0x55F0 //TX_LT_DOA_H_THRD -141 0x1388 //TX_NEPLH_LOWFREQ_THR -142 0x03E8 //TX_NEPLH_HIGHFREQ_THR +141 0x0000 //TX_NEPLH_LOWFREQ_THR +142 0x0000 //TX_NEPLH_HIGHFREQ_THR 143 0x0000 //TX_PP_RESRV_5 144 0x0000 //TX_PP_RESRV_6 145 0x0000 //TX_PP_RESRV_7 @@ -159,28 +159,28 @@ 147 0x0300 //TX_AEC_REF_GAIN_0 148 0x0800 //TX_AEC_REF_GAIN_1 149 0x0800 //TX_AEC_REF_GAIN_2 -150 0x7E80 //TX_EAD_THR +150 0x7530 //TX_EAD_THR 151 0x1000 //TX_THR_RE_EST -152 0x0200 //TX_MIN_EQ_RE_EST_0 +152 0x0100 //TX_MIN_EQ_RE_EST_0 153 0x0100 //TX_MIN_EQ_RE_EST_1 154 0x0200 //TX_MIN_EQ_RE_EST_2 155 0x0200 //TX_MIN_EQ_RE_EST_3 156 0x0200 //TX_MIN_EQ_RE_EST_4 157 0x0200 //TX_MIN_EQ_RE_EST_5 158 0x0200 //TX_MIN_EQ_RE_EST_6 -159 0x1000 //TX_MIN_EQ_RE_EST_7 -160 0x1000 //TX_MIN_EQ_RE_EST_8 -161 0x1000 //TX_MIN_EQ_RE_EST_9 -162 0x1000 //TX_MIN_EQ_RE_EST_10 -163 0x1000 //TX_MIN_EQ_RE_EST_11 -164 0x1000 //TX_MIN_EQ_RE_EST_12 +159 0x6000 //TX_MIN_EQ_RE_EST_7 +160 0x6000 //TX_MIN_EQ_RE_EST_8 +161 0x7FFF //TX_MIN_EQ_RE_EST_9 +162 0x7FFF //TX_MIN_EQ_RE_EST_10 +163 0x7FFF //TX_MIN_EQ_RE_EST_11 +164 0x7FFF //TX_MIN_EQ_RE_EST_12 165 0x4000 //TX_LAMBDA_RE_EST 166 0x4000 //TX_LAMBDA_CB_NLE -167 0x0000 //TX_C_POST_FLT +167 0x7FFF //TX_C_POST_FLT 168 0x5000 //TX_GAIN_NP 169 0x02A0 //TX_SE_HOLD_N -170 0x00C8 //TX_DT_HOLD_N -171 0x02C0 //TX_DT2_HOLD_N +170 0x0060 //TX_DT_HOLD_N +171 0x0068 //TX_DT2_HOLD_N 172 0x6666 //TX_AEC_RESRV_0 173 0x0000 //TX_AEC_RESRV_1 174 0x0014 //TX_AEC_RESRV_2 @@ -206,13 +206,13 @@ 194 0x0000 //TX_NORMENERTH 195 0x0000 //TX_NORMENERHIGHTH 196 0x0000 //TX_NORMENERHIGHTHL -197 0x733C //TX_DTD_THR1_0 -198 0x7FF0 //TX_DTD_THR1_1 -199 0x7918 //TX_DTD_THR1_2 -200 0x7FF0 //TX_DTD_THR1_3 -201 0x7FF0 //TX_DTD_THR1_4 -202 0x7FF0 //TX_DTD_THR1_5 -203 0x7FF0 //TX_DTD_THR1_6 +197 0x7FFE //TX_DTD_THR1_0 +198 0x7FA8 //TX_DTD_THR1_1 +199 0x7EF4 //TX_DTD_THR1_2 +200 0x7882 //TX_DTD_THR1_3 +201 0x7210 //TX_DTD_THR1_4 +202 0x7FF7 //TX_DTD_THR1_5 +203 0x7FDF //TX_DTD_THR1_6 204 0x5000 //TX_DTD_THR2_0 205 0x5000 //TX_DTD_THR2_1 206 0x5000 //TX_DTD_THR2_2 @@ -222,7 +222,7 @@ 210 0x5000 //TX_DTD_THR2_6 211 0x7FFF //TX_DTD_THR3 212 0x0000 //TX_SPK_CUT_K -213 0x0FA0 //TX_DT_CUT_K +213 0x1F40 //TX_DT_CUT_K 214 0x0100 //TX_DT_CUT_THR 215 0x04EB //TX_COMFORT_G 216 0x01F4 //TX_POWER_YOUT_TH @@ -234,16 +234,16 @@ 222 0x023E //TX_ADPT_STRICT_H 223 0x0001 //TX_RATIO_DT_L_TH_LOW 224 0x0A98 //TX_RATIO_DT_H_TH_LOW -225 0x2328 //TX_RATIO_DT_L_TH_HIGH -226 0x5208 //TX_RATIO_DT_H_TH_HIGH +225 0x0FA0 //TX_RATIO_DT_L_TH_HIGH +226 0x6D60 //TX_RATIO_DT_H_TH_HIGH 227 0x0001 //TX_RATIO_DT_L0_TH -228 0x4000 //TX_B_POST_FILT_ECHO_L +228 0x7FFF //TX_B_POST_FILT_ECHO_L 229 0x7FFF //TX_B_POST_FILT_ECHO_H 230 0x0200 //TX_MIN_G_CTRL_ECHO 231 0x1000 //TX_B_LESSCUT_RTO_ECHO 232 0x0000 //TX_EPD_OFFSET_00 233 0x0000 //TX_EPD_OFFST_01 -234 0x0FA0 //TX_RATIO_DT_L0_TH_HIGH +234 0x0DAC //TX_RATIO_DT_L0_TH_HIGH 235 0x7FFF //TX_RATIO_DT_H_TH_CUT 236 0x7FFF //TX_MIN_EQ_RE_EST_13 237 0x0000 //TX_DTD_THR1_7 @@ -252,24 +252,24 @@ 240 0x0800 //TX_DT_RESRV_8 241 0x0000 //TX_DT_RESRV_9 242 0xF800 //TX_THR_SN_EST_0 -243 0x1200 //TX_THR_SN_EST_1 -244 0x1000 //TX_THR_SN_EST_2 +243 0x0A00 //TX_THR_SN_EST_1 +244 0xF800 //TX_THR_SN_EST_2 245 0xF600 //TX_THR_SN_EST_3 246 0xFA00 //TX_THR_SN_EST_4 247 0xFA00 //TX_THR_SN_EST_5 248 0xF600 //TX_THR_SN_EST_6 249 0xF800 //TX_THR_SN_EST_7 250 0x0100 //TX_DELTA_THR_SN_EST_0 -251 0xFB00 //TX_DELTA_THR_SN_EST_1 +251 0x0300 //TX_DELTA_THR_SN_EST_1 252 0xFD00 //TX_DELTA_THR_SN_EST_2 -253 0xFB00 //TX_DELTA_THR_SN_EST_3 +253 0xFD00 //TX_DELTA_THR_SN_EST_3 254 0x0100 //TX_DELTA_THR_SN_EST_4 255 0x0200 //TX_DELTA_THR_SN_EST_5 -256 0x0300 //TX_DELTA_THR_SN_EST_6 +256 0xFD00 //TX_DELTA_THR_SN_EST_6 257 0x0200 //TX_DELTA_THR_SN_EST_7 258 0x4000 //TX_LAMBDA_NN_EST_0 -259 0x3FFF //TX_LAMBDA_NN_EST_1 -260 0x3FFF //TX_LAMBDA_NN_EST_2 +259 0x4FFE //TX_LAMBDA_NN_EST_1 +260 0x3000 //TX_LAMBDA_NN_EST_2 261 0x3FFF //TX_LAMBDA_NN_EST_3 262 0x4000 //TX_LAMBDA_NN_EST_4 263 0x4000 //TX_LAMBDA_NN_EST_5 @@ -291,67 +291,67 @@ 279 0x2000 //TX_B_POST_FLT_0 280 0x1000 //TX_B_POST_FLT_1 281 0x0010 //TX_NS_LVL_CTRL_0 -282 0x0008 //TX_NS_LVL_CTRL_1 -283 0x0020 //TX_NS_LVL_CTRL_2 +282 0x001C //TX_NS_LVL_CTRL_1 +283 0x0030 //TX_NS_LVL_CTRL_2 284 0x0010 //TX_NS_LVL_CTRL_3 285 0x0014 //TX_NS_LVL_CTRL_4 286 0x0011 //TX_NS_LVL_CTRL_5 287 0x0024 //TX_NS_LVL_CTRL_6 288 0x0011 //TX_NS_LVL_CTRL_7 -289 0x001C //TX_MIN_GAIN_S_0 -290 0x0018 //TX_MIN_GAIN_S_1 -291 0x0008 //TX_MIN_GAIN_S_2 +289 0x000F //TX_MIN_GAIN_S_0 +290 0x0020 //TX_MIN_GAIN_S_1 +291 0x0010 //TX_MIN_GAIN_S_2 292 0x0008 //TX_MIN_GAIN_S_3 293 0x0010 //TX_MIN_GAIN_S_4 294 0x0010 //TX_MIN_GAIN_S_5 295 0x001C //TX_MIN_GAIN_S_6 296 0x000F //TX_MIN_GAIN_S_7 -297 0x4FFD //TX_NMOS_SUP +297 0x6000 //TX_NMOS_SUP 298 0x0000 //TX_NS_MAX_PRI_SNR_TH 299 0x0000 //TX_NMOS_SUP_MENSA 300 0x7FFF //TX_SNRI_SUP_0 -301 0x2FFC //TX_SNRI_SUP_1 -302 0x4FF8 //TX_SNRI_SUP_2 +301 0x4000 //TX_SNRI_SUP_1 +302 0x77F9 //TX_SNRI_SUP_2 303 0x47FF //TX_SNRI_SUP_3 304 0x4000 //TX_SNRI_SUP_4 305 0x50C0 //TX_SNRI_SUP_5 306 0x7FF8 //TX_SNRI_SUP_6 307 0x7FFF //TX_SNRI_SUP_7 308 0x7FFF //TX_THR_LFNS -309 0x001C //TX_G_LFNS +309 0x0028 //TX_G_LFNS 310 0x09C4 //TX_GAIN0_NTH 311 0x000A //TX_MUSIC_MORENS 312 0x7FFF //TX_A_POST_FILT_0 313 0x2000 //TX_A_POST_FILT_1 314 0x5000 //TX_A_POST_FILT_S_0 -315 0x47F9 //TX_A_POST_FILT_S_1 -316 0x37FB //TX_A_POST_FILT_S_2 -317 0x67F5 //TX_A_POST_FILT_S_3 +315 0x5FF6 //TX_A_POST_FILT_S_1 +316 0x7FF2 //TX_A_POST_FILT_S_2 +317 0x27FD //TX_A_POST_FILT_S_3 318 0x4000 //TX_A_POST_FILT_S_4 319 0x5000 //TX_A_POST_FILT_S_5 -320 0x7FF2 //TX_A_POST_FILT_S_6 +320 0x27FD //TX_A_POST_FILT_S_6 321 0x7000 //TX_A_POST_FILT_S_7 322 0x2000 //TX_B_POST_FILT_0 -323 0x2FFB //TX_B_POST_FILT_1 -324 0x27FC //TX_B_POST_FILT_2 +323 0x47F8 //TX_B_POST_FILT_1 +324 0x7FF1 //TX_B_POST_FILT_2 325 0x47F8 //TX_B_POST_FILT_3 326 0x4000 //TX_B_POST_FILT_4 327 0x1000 //TX_B_POST_FILT_5 -328 0x5FF5 //TX_B_POST_FILT_6 +328 0x2FFB //TX_B_POST_FILT_6 329 0x2000 //TX_B_POST_FILT_7 330 0x4000 //TX_B_LESSCUT_RTO_S_0 -331 0x5FFC //TX_B_LESSCUT_RTO_S_1 -332 0x4000 //TX_B_LESSCUT_RTO_S_2 +331 0x77F9 //TX_B_LESSCUT_RTO_S_1 +332 0x67FB //TX_B_LESSCUT_RTO_S_2 333 0x4FFE //TX_B_LESSCUT_RTO_S_3 334 0x7FFF //TX_B_LESSCUT_RTO_S_4 335 0x6000 //TX_B_LESSCUT_RTO_S_5 -336 0x77F9 //TX_B_LESSCUT_RTO_S_6 +336 0x4FFE //TX_B_LESSCUT_RTO_S_6 337 0x7FFF //TX_B_LESSCUT_RTO_S_7 338 0x7C00 //TX_LAMBDA_PFILT 339 0x7C00 //TX_LAMBDA_PFILT_S_0 -340 0x7FF0 //TX_LAMBDA_PFILT_S_1 -341 0x72FD //TX_LAMBDA_PFILT_S_2 -342 0x7EF1 //TX_LAMBDA_PFILT_S_3 +340 0x7AF5 //TX_LAMBDA_PFILT_S_1 +341 0x7EF1 //TX_LAMBDA_PFILT_S_2 +342 0x79F6 //TX_LAMBDA_PFILT_S_3 343 0x7C00 //TX_LAMBDA_PFILT_S_4 344 0x7C00 //TX_LAMBDA_PFILT_S_5 345 0x7BF4 //TX_LAMBDA_PFILT_S_6 @@ -365,31 +365,31 @@ 353 0x0200 //TX_DT_BINVAD_TH_0 354 0x0200 //TX_DT_BINVAD_TH_1 355 0x0200 //TX_DT_BINVAD_TH_2 -356 0x0800 //TX_DT_BINVAD_TH_3 -357 0x1388 //TX_DT_BINVAD_ENDF +356 0x0400 //TX_DT_BINVAD_TH_3 +357 0x1F40 //TX_DT_BINVAD_ENDF 358 0x2000 //TX_C_POST_FLT_DT -359 0x5FF8 //TX_NS_B_POST_FLT_LESSCUT +359 0x0CCD //TX_NS_B_POST_FLT_LESSCUT 360 0x0140 //TX_DT_BOOST 361 0x0000 //TX_BF_SGRAD_FLG 362 0x0005 //TX_BF_DVG_TH -363 0x001E //TX_SN_C_F +363 0x0000 //TX_SN_C_F 364 0x0000 //TX_K_APT 365 0x0001 //TX_NOISEDET 366 0x0064 //TX_NDETCT 367 0x000A //TX_NOISE_TH_0 368 0x7FFF //TX_NOISE_TH_0_2 369 0x7FFF //TX_NOISE_TH_0_3 -370 0x039E //TX_NOISE_TH_1 -371 0x0313 //TX_NOISE_TH_2 -372 0x2C18 //TX_NOISE_TH_3 -373 0x448C //TX_NOISE_TH_4 +370 0x0DF8 //TX_NOISE_TH_1 +371 0x05DC //TX_NOISE_TH_2 +372 0x2CEC //TX_NOISE_TH_3 +373 0x36B0 //TX_NOISE_TH_4 374 0x7FFF //TX_NOISE_TH_5 375 0x7FFF //TX_NOISE_TH_5_2 -376 0x0000 //TX_NOISE_TH_5_3 +376 0x0001 //TX_NOISE_TH_5_3 377 0x7FFF //TX_NOISE_TH_5_4 -378 0x7FFF //TX_NOISE_TH_6 -379 0x0008 //TX_MINENOISE_TH -380 0xD506 //TX_MORENS_TFMASK_TH +378 0x1770 //TX_NOISE_TH_6 +379 0x0033 //TX_MINENOISE_TH +380 0xD508 //TX_MORENS_TFMASK_TH 381 0x0001 //TX_DRC_QUIET_FLOOR 382 0x7999 //TX_RATIODTL_CUT_TH 383 0x0119 //TX_DT_CUT_K1 @@ -405,21 +405,21 @@ 393 0x4000 //TX_B_LESSCUT_RTO_WTA 394 0x0000 //TX_MEL_G_R 395 0x0080 //TX_SUPHIGH_TH -396 0x3000 //TX_MASK_G_R -397 0x8001 //TX_LOGSNR_THR +396 0x1FFF //TX_MASK_G_R +397 0x0082 //TX_LOGSNR_THR 398 0x0000 //TX_C_POST_FLT_MASK 399 0x4000 //TX_A_POST_FLT_WNS 400 0x0148 //TX_MIN_G_LOW300HZ 401 0x0005 //TX_MAXLEVEL_CNG 402 0x00B4 //TX_STN_NOISE_TH -403 0x7400 //TX_POST_MASK_SUP +403 0x63FF //TX_POST_MASK_SUP 404 0x7FFF //TX_POST_MASK_ADJUST 405 0x00C8 //TX_NS_ENOISE_MIC0_TH -406 0x0006 //TX_MINENOISE_MIC0_TH +406 0x0009 //TX_MINENOISE_MIC0_TH 407 0x012C //TX_MINENOISE_MIC0_S_TH -408 0x7FFA //TX_MIN_G_CTRL_SSNS -409 0x0800 //TX_METAL_RTO_THR -410 0x04B0 //TX_NS_FP_K_METAL +408 0x6FFD //TX_MIN_G_CTRL_SSNS +409 0x0000 //TX_METAL_RTO_THR +410 0x4848 //TX_NS_FP_K_METAL 411 0x3A98 //TX_NOISEDET_BOOST_TH 412 0x0FA0 //TX_NSMOOTH_TH 413 0x0000 //TX_NS_RESRV_8 @@ -488,7 +488,7 @@ 476 0x012C //TX_DOA_TRACK_HT 477 0x0200 //TX_N1_HOLD_HF 478 0x0100 //TX_N2_HOLD_HF -479 0x3FFE //TX_BF_RESET_THR_HF +479 0x2FFF //TX_BF_RESET_THR_HF 480 0x7333 //TX_DOA_SMOOTH 481 0x0800 //TX_MU_BF 482 0x0800 //TX_BF_MU_LF_B2 @@ -533,10 +533,10 @@ 521 0x3A98 //TX_GSC_RTOL_TH 522 0x3A98 //TX_GSC_RTOH_TH 523 0x7E2C //TX_WIDE2_MEANHTH -524 0x0000 //TX_KIDDET_NTH -525 0x0000 //TX_B_POST_FLT_KID -526 0x122E //TX_T0_NE_TH -527 0x1100 //TX_T0_NE_3_TH +524 0x0003 //TX_KIDDET_NTH +525 0x1000 //TX_B_POST_FLT_KID +526 0x0DAC //TX_T0_NE_TH +527 0x0FA0 //TX_T0_NE_3_TH 528 0x1333 //TX_WIND_MARK_TH 529 0x399A //TX_CORR_THR 530 0x0004 //TX_SNR_THR @@ -863,8 +863,8 @@ 851 0x0000 //TX_FFP_RESRV_5 852 0x0000 //TX_FFP_RESRV_6 853 0x0002 //TX_FILTINDX -854 0x0001 //TX_TDDRC_THRD_0 -855 0x0002 //TX_TDDRC_THRD_1 +854 0x0008 //TX_TDDRC_THRD_0 +855 0x0030 //TX_TDDRC_THRD_1 856 0x1000 //TX_TDDRC_THRD_2 857 0x1200 //TX_TDDRC_THRD_3 858 0x6000 //TX_TDDRC_SLANT_0 @@ -881,11 +881,11 @@ 869 0x0000 //TX_TFMASKLTH 870 0x0000 //TX_TFMASKLTHL 871 0x0CCD //TX_TFMASKHTH -872 0x102D //TX_TFMASKLTH_BINVAD -873 0x08BB //TX_TFMASKLTH_NS_EST +872 0x0C80 //TX_TFMASKLTH_BINVAD +873 0xF5D8 //TX_TFMASKLTH_NS_EST 874 0x2CCD //TX_TFMASKLTH_DOA 875 0xECCD //TX_TFMASKTH_BLESSCUT -876 0x3FFE //TX_B_LESSCUT_RTO_MASK +876 0x1000 //TX_B_LESSCUT_RTO_MASK 877 0x3800 //TX_SB_RHO_MEAN_TH_ABN 878 0x2000 //TX_B_POST_FLT_MASK 879 0x0000 //TX_B_POST_FLT_MASK1 @@ -900,7 +900,7 @@ 888 0x0028 //TX_FASTNS_ARSPC_TH 889 0xC000 //TX_FASTNS_MASK5_TH 890 0x4848 //TX_POSTSSA_MIN_G_VR_MASK -891 0x7FFA //TX_A_LESSCUT_RTO_MASK +891 0x4FFC //TX_A_LESSCUT_RTO_MASK 892 0x1770 //TX_FASTNS_NOISETH 893 0xC000 //TX_FASTNS_SSA_THLFL 894 0xC000 //TX_FASTNS_SSA_THHFL @@ -908,8 +908,8 @@ 896 0xD999 //TX_FASTNS_SSA_THHFH 897 0x2339 //TX_SENDFUNC_REG_MICMUTE 898 0x0020 //TX_SENDFUNC_REG_MICMUTE1 -899 0x0280 //TX_MICMUTE_RATIO_THR -900 0x0280 //TX_MICMUTE_AMP_THR +899 0x0320 //TX_MICMUTE_RATIO_THR +900 0x02D0 //TX_MICMUTE_AMP_THR 901 0x0000 //TX_MICMUTE_HPF_IND 902 0x00C0 //TX_MICMUTE_LOG_EYR_TH 903 0x0008 //TX_MICMUTE_CVG_TIME @@ -920,33 +920,33 @@ 908 0x7999 //TX_MICMUTE_EAD_THR 909 0x3000 //TX_MICMUTE_LAMBDA_CB_NLE 910 0x7FFF //TX_MICMUTE_LAMBDA_RE_EST -911 0x7530 //TX_DTD_THR1_MICMUTE_0 +911 0x7918 //TX_DTD_THR1_MICMUTE_0 912 0x7FBC //TX_DTD_THR1_MICMUTE_1 -913 0x7F58 //TX_DTD_THR1_MICMUTE_2 -914 0x6D60 //TX_DTD_THR1_MICMUTE_3 -915 0x4000 //TX_DTD_THR2_MICMUTE_0 +913 0x7D00 //TX_DTD_THR1_MICMUTE_2 +914 0x733C //TX_DTD_THR1_MICMUTE_3 +915 0x7FFF //TX_DTD_THR2_MICMUTE_0 916 0x0100 //TX_MICMUTE_MIN_EQ_RE_EST_0 917 0x0100 //TX_MICMUTE_MIN_EQ_RE_EST_1 918 0x0100 //TX_MICMUTE_MIN_EQ_RE_EST_2 919 0x0100 //TX_MICMUTE_MIN_EQ_RE_EST_3 920 0x0100 //TX_MICMUTE_MIN_EQ_RE_EST_4 -921 0x4000 //TX_MICMUTE_C_POST_FLT +921 0x1000 //TX_MICMUTE_C_POST_FLT 922 0x1F40 //TX_MICMUTE_DT_CUT_K 923 0x0100 //TX_MICMUTE_DT_CUT_THR 924 0x1F40 //TX_MICMUTE_DT_CUT_K2 925 0x0100 //TX_MICMUTE_DT_CUT_THR2 926 0x0100 //TX_MICMUTE_DT2_HOLD_N 927 0x1000 //TX_MICMUTE_RATIODTH_THCUT -928 0x3000 //TX_MICMUTE_B_POST_FLT_ECHOL +928 0x1000 //TX_MICMUTE_B_POST_FLT_ECHOL 929 0x7FFF //TX_MICMUTE_B_POST_FLT_ECHOH 930 0x0400 //TX_MICMUTE_C_POST_FLT_MASK 931 0x7999 //TX_MICMUTE_RATIODTL_CUT_TH 932 0x0258 //TX_MICMUTE_DT_CUT_K1 -933 0x0800 //TX_MICMUTE_POST_MASK_SUP -934 0xFC00 //TX_MICMUTE_PRE_MASK_SUP -935 0x001C //TX_MICMUTE_SDPCRN_GAIN +933 0x7200 //TX_MICMUTE_POST_MASK_SUP +934 0x4000 //TX_MICMUTE_PRE_MASK_SUP +935 0x0100 //TX_MICMUTE_SDPCRN_GAIN 936 0x6000 //TX_MICMUTE_NSSAMASK_MORENS -937 0x7000 //TX_MICMUTE_CGMMMASK_MORENS +937 0x0100 //TX_MICMUTE_CGMMMASK_MORENS 938 0x2710 //TX_MIC1RUB_AMP_THR 939 0x7FFF //TX_MIC1MUTE_RATIO_THR 940 0x0001 //TX_MIC1MUTE_AMP_THR @@ -954,29 +954,29 @@ 942 0x0008 //TX_MIC1MUTE_RELEASE_TIME 943 0x0100 //TX_MIC_VOLUME_MIC1MUTE 944 0xF060 //TX_TFMASKM4_2_DT_THR -945 0x7530 //TX_MEAN_GAIN500HZ_DT_THR +945 0x7242 //TX_MEAN_GAIN500HZ_DT_THR 946 0x000A //TX_MUTE_REF_POW_TH 947 0x0014 //TX_MIC0_MUTE_INITECHO_CUT_LEN 948 0x0014 //TX_MIC1_MUTE_INITECHO_CUT_LEN -949 0x4000 //TX_PRE_MASK_SUP -950 0x0120 //TX_SDPCRN_GAIN +949 0x3FFD //TX_PRE_MASK_SUP +950 0x02E0 //TX_SDPCRN_GAIN 951 0x7333 //TX_EASSA_CUT_GAINTH 952 0x0002 //TX_DT_HARME_ENDF -953 0x0BFE //TX_NSSAMASK_MORENS -954 0x5D00 //TX_CGMMMASK_MORENS +953 0x1663 //TX_NSSAMASK_MORENS +954 0x5AE2 //TX_CGMMMASK_MORENS 955 0x0CCD //TX_DPCRN_MASK_MORENS_ECHO 956 0x0028 //TX_PRE_EASSAMASK_SUP -957 0x6FE5 //TX_NSSAMASK_MORENS_TYPE1 -958 0x67E7 //TX_NSSAMASK_MORENS_TYPE2 -959 0x1800 //TX_CGMMMASK_MORENS_TYPE1 -960 0x0200 //TX_CGMMMASK_MORENS_TYPE2 +957 0x6000 //TX_NSSAMASK_MORENS_TYPE1 +958 0x73E4 //TX_NSSAMASK_MORENS_TYPE2 +959 0x1000 //TX_CGMMMASK_MORENS_TYPE1 +960 0x0100 //TX_CGMMMASK_MORENS_TYPE2 961 0x0000 //TX_SSA30_RESRV_0 962 0x0100 //TX_EASSA_AEC_NSSA_REFG_0 963 0x0200 //TX_EASSA_AEC_NSSA_REFG_1 964 0x0200 //TX_EASSA_AEC_NSSA_REFG_2 -965 0x0C00 //TX_EASSA_AEC_NSSA_REFG_3 -966 0x0C00 //TX_EASSA_AEC_NSSA_REFG_4 -967 0x0200 //TX_EASSA_AEC_NSSA_REFG_5 +965 0x0200 //TX_EASSA_AEC_NSSA_REFG_3 +966 0x0200 //TX_EASSA_AEC_NSSA_REFG_4 +967 0x6000 //TX_EASSA_AEC_NSSA_REFG_5 968 0x0000 //TX_EASSA_AEC_NSSA_GAIN 969 0x2710 //TX_EASSA_BIG_NONLINEAR_TH 970 0x0000 //TX_EASSA_AEC_REFG_STNONL_0 @@ -984,13 +984,13 @@ 972 0x0400 //TX_EASSA_AEC_REFG_STNONL_2 973 0x0400 //TX_EASSA_AEC_REFG_STNONL_3 974 0x0400 //TX_EASSA_AEC_REFG_STNONL_4 -975 0x0100 //TX_EASSA_AEC_REFG_STNONL_5 +975 0x6000 //TX_EASSA_AEC_REFG_STNONL_5 976 0x00A0 //TX_EASSA_AEC_FEMALE_ECHO_TH 977 0x0032 //TX_EASSA_NONLECHO_TH 978 0x4E20 //TX_EASSA_NONLECHO_ECHOENTH 979 0x0000 //TX_EASSA_NNG 980 0x0800 //TX_EASSA_NONLHFG -981 0x2000 //TX_EASSA_DT2000HZ_REFG +981 0x1000 //TX_EASSA_DT2000HZ_REFG 982 0x0C00 //TX_EASSA_DT400HZ_MAING 983 0x3A98 //TX_EASSA_RATIODTH_THCUT_NSSA 984 0x0000 //TX_EASSA_AEC_NSSA_REFG_MAINBLK_0 @@ -3277,12 +3277,12 @@ 570 0x5B54 //TX_FDEQ_GAIN_3 571 0x4E52 //TX_FDEQ_GAIN_4 572 0x595C //TX_FDEQ_GAIN_5 -573 0x6A63 //TX_FDEQ_GAIN_6 -574 0x6063 //TX_FDEQ_GAIN_7 +573 0x6A68 //TX_FDEQ_GAIN_6 +574 0x6863 //TX_FDEQ_GAIN_7 575 0x5E59 //TX_FDEQ_GAIN_8 576 0x5453 //TX_FDEQ_GAIN_9 -577 0x524D //TX_FDEQ_GAIN_10 -578 0x4751 //TX_FDEQ_GAIN_11 +577 0x5254 //TX_FDEQ_GAIN_10 +578 0x4851 //TX_FDEQ_GAIN_11 579 0x5257 //TX_FDEQ_GAIN_12 580 0x5A5A //TX_FDEQ_GAIN_13 581 0x5751 //TX_FDEQ_GAIN_14 @@ -3291,10 +3291,10 @@ 584 0x4A44 //TX_FDEQ_GAIN_17 585 0x4E4B //TX_FDEQ_GAIN_18 586 0x4B4B //TX_FDEQ_GAIN_19 -587 0x5061 //TX_FDEQ_GAIN_20 -588 0x646A //TX_FDEQ_GAIN_21 +587 0x4848 //TX_FDEQ_GAIN_20 +588 0x486A //TX_FDEQ_GAIN_21 589 0x6966 //TX_FDEQ_GAIN_22 -590 0x5E43 //TX_FDEQ_GAIN_23 +590 0x5E48 //TX_FDEQ_GAIN_23 591 0x0202 //TX_FDEQ_BIN_0 592 0x0203 //TX_FDEQ_BIN_1 593 0x0203 //TX_FDEQ_BIN_2 @@ -5972,12 +5972,12 @@ 570 0x5B54 //TX_FDEQ_GAIN_3 571 0x4E52 //TX_FDEQ_GAIN_4 572 0x595C //TX_FDEQ_GAIN_5 -573 0x6A63 //TX_FDEQ_GAIN_6 -574 0x6063 //TX_FDEQ_GAIN_7 +573 0x6A68 //TX_FDEQ_GAIN_6 +574 0x6863 //TX_FDEQ_GAIN_7 575 0x5E59 //TX_FDEQ_GAIN_8 576 0x5453 //TX_FDEQ_GAIN_9 -577 0x524D //TX_FDEQ_GAIN_10 -578 0x4751 //TX_FDEQ_GAIN_11 +577 0x5254 //TX_FDEQ_GAIN_10 +578 0x4851 //TX_FDEQ_GAIN_11 579 0x5257 //TX_FDEQ_GAIN_12 580 0x5A5A //TX_FDEQ_GAIN_13 581 0x5751 //TX_FDEQ_GAIN_14 @@ -5986,10 +5986,10 @@ 584 0x4A44 //TX_FDEQ_GAIN_17 585 0x4E4B //TX_FDEQ_GAIN_18 586 0x4B4B //TX_FDEQ_GAIN_19 -587 0x5061 //TX_FDEQ_GAIN_20 -588 0x646A //TX_FDEQ_GAIN_21 +587 0x4848 //TX_FDEQ_GAIN_20 +588 0x486A //TX_FDEQ_GAIN_21 589 0x6966 //TX_FDEQ_GAIN_22 -590 0x5E43 //TX_FDEQ_GAIN_23 +590 0x5E48 //TX_FDEQ_GAIN_23 591 0x0202 //TX_FDEQ_BIN_0 592 0x0203 //TX_FDEQ_BIN_1 593 0x0203 //TX_FDEQ_BIN_2 diff --git a/audio/tegu/tuning/fortemedia/HANDSET.dat b/audio/tegu/tuning/fortemedia/HANDSET.dat index 3511fc92c7c8d3ef513d58c2bbe1ab7044ed59ec..bffa2fffe34995679fe2bd11234c4ec0b9e254f5 100644 GIT binary patch delta 5317 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