hal: fix resource leak issues in platform.c

- fix resource leak issues related to mixer
  controls and file handles

Change-Id: I3675da4504a93a084ad582e5e6eb7c75f38e736e
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 4839451..7cdfc62 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -1677,6 +1677,7 @@
                 ALOGE("%s: Failed to init audio route controls, aborting.",
                        __func__);
                 free(my_data);
+                mixer_close(adev->mixer);
                 return NULL;
             }
             adev->snd_card = snd_card_num;
@@ -1686,6 +1687,7 @@
         }
         retry_num = 0;
         snd_card_num++;
+        mixer_close(adev->mixer);
     }
 
     if (snd_card_num >= MAX_SND_CARD) {
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index e7d6920..be50289 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -243,6 +243,7 @@
     adev->audio_route = audio_route_init(MIXER_CARD, MIXER_XML_PATH);
     if (!adev->audio_route) {
         ALOGE("%s: Failed to init audio route controls, aborting.", __func__);
+        mixer_close(adev->mixer);
         return NULL;
     }
 
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index e091547..65ef702 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1335,6 +1335,7 @@
         if (!snd_card_name) {
             ALOGE("failed to allocate memory for snd_card_name\n");
             free(my_data);
+            mixer_close(adev->mixer);
             return NULL;
         }
         ALOGD("%s: snd_card_name: %s", __func__, snd_card_name);
@@ -1401,6 +1402,7 @@
                 free(my_data);
                 free(snd_card_name);
                 free(snd_card_name_t);
+                mixer_close(adev->mixer);
                 return NULL;
             }
             adev->snd_card = snd_card_num;
@@ -1409,6 +1411,7 @@
         }
         retry_num = 0;
         snd_card_num++;
+        mixer_close(adev->mixer);
     }
 
     if (snd_card_num >= MAX_SND_CARD) {