audio: Update hal to handle 32bit/384kHz playback.

Update the mixer control string used to configure BE at 32bit format
with correct value.
For HDMI backend, as it does not support 32bit/384kHz, configure
BE to 24bit/192kHz if supported by the connected device.
Configure speaker device to bit width supported on the device
if stream bit width is greater than 24 bit.

Change-Id: Ic1c437d4cb15db709941eec065d40b2ae173ea9d
diff --git a/hal/audio_extn/usb.c b/hal/audio_extn/usb.c
index b3bd58f..f936f99 100644
--- a/hal/audio_extn/usb.c
+++ b/hal/audio_extn/usb.c
@@ -47,7 +47,7 @@
 #define SAMPLE_RATE_11025         11025
 // Supported sample rates for USB
 static uint32_t supported_sample_rates[] =
-    {44100, 48000, 64000, 88200, 96000, 176400, 192000};
+    {44100, 48000, 64000, 88200, 96000, 176400, 192000, 384000};
 
 #define  MAX_SAMPLE_RATE_SIZE  sizeof(supported_sample_rates)/sizeof(supported_sample_rates[0])
 
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 18c55cf..9542fbd 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -495,7 +495,7 @@
     struct stream_format *sf_info;
     char value[PROPERTY_VALUE_MAX] = {0};
 
-    if ((24 == bit_width) &&
+    if ((bit_width >= 24) &&
         (devices & AUDIO_DEVICE_OUT_SPEAKER)) {
         int32_t bw = platform_get_snd_device_bit_width(SND_DEVICE_OUT_SPEAKER);
         if (-ENOSYS != bw)