audio: Change pcm id for sprk calib tx & read wsa tz name from tz type
- Change pcm id for USECASE_AUDIO_SPKR_CALIB_TX
wrt corresponding m/c driver dai.
- MSM8953 supports two different wsa versions.
Hard coding spkr tz name in platform info supports
only one of these hardware, causing spkr protection
to fail.
- Change is to read and set wsa tz name based on the hardware
while parsing thermal zone type.
Change-Id: I8e8467b2e4348834bf8471f12cb39378a06edab8
diff --git a/configs/msm8953/audio_platform_info_extcodec.xml b/configs/msm8953/audio_platform_info_extcodec.xml
index 66d2ecc..d7c713d 100644
--- a/configs/msm8953/audio_platform_info_extcodec.xml
+++ b/configs/msm8953/audio_platform_info_extcodec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015 - 2016, 2018 - 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@@ -47,13 +47,11 @@
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="35"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="36"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="36"/>
- <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
+ <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="40"/>
<usecase name="USECASE_QCHAT_CALL" type="in" id="42"/>
<usecase name="USECASE_QCHAT_CALL" type="out" id="42"/>
</pcm_ids>
<config_params>
- <param key="spkr_1_tz_name" value="wsatz.11"/>
- <param key="spkr_2_tz_name" value="wsatz.12"/>
<param key="native_audio_mode" value="src"/>
<param key="input_mic_max_count" value="4"/>
</config_params>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 8f9975d..cb7363a 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -238,6 +238,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#read wsatz name from thermal zone type
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.read.wsatz.type=true
+
#Set AudioFlinger client heap size
PRODUCT_PROPERTY_OVERRIDES += \
ro.af.client_heap_size_kbyte=7168
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 93b2210..4ae72a6 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -1346,20 +1346,28 @@
{
int err;
- err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_1,
- value, len);
- if (err >= 0) {
- tz_names.spkr_1_name = strdup(value);
- str_parms_del(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_1);
- }
+ if (property_get_bool("vendor.audio.read.wsatz.type", false)) {
+ if ((!tz_names.spkr_2_name) && (strstr(value, "wsa"))) {
+ tz_names.spkr_2_name = strdup(value);
+ } else if ((!tz_names.spkr_1_name) && (strstr(value, "wsa"))) {
+ tz_names.spkr_1_name = strdup(value);
+ }
+ } else {
- err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_2,
+ err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_1,
value, len);
- if (err >= 0) {
- tz_names.spkr_2_name = strdup(value);
- str_parms_del(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_2);
- }
+ if (err >= 0) {
+ tz_names.spkr_1_name = strdup(value);
+ str_parms_del(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_1);
+ }
+ err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_2,
+ value, len);
+ if (err >= 0) {
+ tz_names.spkr_2_name = strdup(value);
+ str_parms_del(parms, AUDIO_PARAMETER_KEY_SPKR_TZ_2);
+ }
+ }
ALOGV("%s: tz1: %s, tz2: %s", __func__,
tz_names.spkr_1_name, tz_names.spkr_2_name);
}
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 026b653..a08aafa 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -2077,6 +2077,11 @@
ALOGD("Opening %s\n", name);
read_line_from_file(name, buf, sizeof(buf));
if (strstr(buf, file)) {
+ if (property_get_bool("vendor.audio.read.wsatz.type", false)) {
+ struct str_parms *parms = NULL;
+ buf[strlen(buf) - 1] = '\0';
+ audio_extn_spkr_prot_set_parameters(parms, buf, 0);
+ }
wsa_count++;
}
tzn++;