Merge "hal: fix A2DP mute issue for compress playback"
diff --git a/hal/Android.mk b/hal/Android.mk
index 3de649f..4139313 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -48,7 +48,7 @@
 endif
 ifneq ($(filter msm8998 apq8098_latv,$(TARGET_BOARD_PLATFORM)),)
   LOCAL_CFLAGS := -DPLATFORM_MSM8998
-  LOCAL_CFLAGS += -DMAX_TARGET_SPECIFIC_CHANNEL_CNT="4"
+  LOCAL_CFLAGS += -DMAX_TARGET_SPECIFIC_CHANNEL_CNT="8"
   LOCAL_CFLAGS += -DINCALL_MUSIC_ENABLED
 endif
 ifneq ($(filter sdm845,$(TARGET_BOARD_PLATFORM)),)
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 5eff194..a27abcb 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -3044,10 +3044,11 @@
                     pcm_close(in->pcm);
                     in->pcm = NULL;
                 }
-                if (pcm_open_retry_count-- == 0) {
+                if (pcm_open_retry_count == 0) {
                     ret = -EIO;
                     goto error_open;
                 }
+                pcm_open_retry_count--;
                 usleep(PROXY_OPEN_WAIT_TIME * 1000);
                 continue;
             }
@@ -3536,9 +3537,10 @@
                 pcm_close(pcm);
                 pcm = NULL;
             }
-            if (pcm_open_retry_count-- == 0)
+            if (pcm_open_retry_count == 0)
                 return NULL;
 
+            pcm_open_retry_count--;
             usleep(PROXY_OPEN_WAIT_TIME * 1000);
             continue;
         }
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 73369ea..6c6d0de 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -2533,6 +2533,8 @@
         } else {
             my_data->is_acdb_initialized = false;
             ALOGD("ACDB initialization failed");
+            if (my_data->acdb_deallocate)
+                my_data->acdb_deallocate();
         }
     }
     audio_extn_pm_vote();
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index cc75c9e..264c6f6 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -3408,6 +3408,8 @@
         } else {
             my_data->is_acdb_initialized = false;
             ALOGD("ACDB initialization failed");
+            if (my_data->acdb_deallocate)
+                my_data->acdb_deallocate();
         }
     }
     /* init keep-alive for compress passthru */