am 991c0925: am a9024def: audio: implement mute on hdmi multichannel

* commit '991c092525c6f2ca9f4c6cd2f3cee1713d33fc23':
  audio: implement mute on hdmi multichannel
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3782c32..55ab055 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1380,6 +1380,12 @@
 static int out_set_volume(struct audio_stream_out *stream, float left,
                           float right)
 {
+    struct stream_out *out = (struct stream_out *)stream;
+    if (out->usecase == USECASE_AUDIO_PLAYBACK_MULTI_CH) {
+        /* only take left channel into account: the API is for stereo anyway */
+        out->muted = (left == 0.0f);
+        return 0;
+    }
     return -ENOSYS;
 }
 
@@ -1402,6 +1408,8 @@
     }
 
     if (out->pcm) {
+        if (out->muted)
+            memset((void *)buffer, 0, bytes);
         //ALOGV("%s: writing buffer (%d bytes) to pcm device", __func__, bytes);
         ret = pcm_write(out->pcm, (void *)buffer, bytes);
     }
@@ -1712,6 +1720,7 @@
 
     out->dev = adev;
     out->standby = 1;
+    /* out->muted = false; by calloc() */
 
     config->format = out->stream.common.get_format(&out->stream.common);
     config->channel_mask = out->stream.common.get_channels(&out->stream.common);
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index 7bc2ecb..0ac03fa 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -158,6 +158,7 @@
     audio_usecase_t usecase;
     /* Array of supported channel mask configurations. +1 so that the last entry is always 0 */
     audio_channel_mask_t supported_channel_masks[MAX_SUPPORTED_CHANNEL_MASKS + 1];
+    bool muted;
 
     struct audio_device *dev;
 };