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++;