hal: Fix VTS errors
Deinit speaker protection thread(Cirrus)
before deinit of platform to avoid usage of
platform NULL pointer for further underlying
function calls.
Add a check to handle NULL pointer if VTS testcases
does not open a usecase.
Change-Id: I300a9b47e80e0d8349a15ed17533e62b2e7bf214
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 1cb3c1d..4f46a69 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -2934,8 +2934,6 @@
/* deinit usb */
audio_extn_usb_deinit();
audio_extn_dap_hal_deinit();
- if (audio_extn_spkr_prot_is_enabled())
- audio_extn_spkr_prot_deinit();
#ifdef DYNAMIC_LOG_ENABLED
log_utils_deinit();
#endif
@@ -3503,7 +3501,7 @@
list_for_each(node, &(platform->adev)->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if (is_offload_usecase(usecase->id) &&
+ if (usecase->stream.out && is_offload_usecase(usecase->id) &&
(usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) &&
OUTPUT_SAMPLING_RATE_44100 == usecase->stream.out->sample_rate) {
@@ -7807,7 +7805,8 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase != NULL && usecase->type == PCM_PLAYBACK) {
+ if (usecase != NULL && usecase->stream.out &&
+ usecase->type == PCM_PLAYBACK) {
int new_snd_device[2] = {0};
int i, num_devices = 1;
@@ -8306,7 +8305,7 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase->type == PCM_PLAYBACK &&
+ if (usecase->stream.out && usecase->type == PCM_PLAYBACK &&
usecase->stream.out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
/*
* If acdb tuning is different for SPEAKER_REVERSE, it is must