Update USB channel mask handling

1 and 2 channels will default to mono and stereo
n > 2 will default to channel index masks

Bug: 16245854
Change-Id: I39f9d43385a93f48e323653fbde2e38a99b6256f
diff --git a/modules/usbaudio/audio_hal.c b/modules/usbaudio/audio_hal.c
index 5431476..872fa93 100644
--- a/modules/usbaudio/audio_hal.c
+++ b/modules/usbaudio/audio_hal.c
@@ -55,6 +55,8 @@
 
 #define DEFAULT_INPUT_BUFFER_SIZE_MS 20
 
+// stereo channel count
+#define FCC_2 2
 // fixed channel count of 8 limitation (for data processing in AudioFlinger)
 #define FCC_8 8
 
@@ -528,10 +530,14 @@
         proposed_channel_count =  profile_get_default_channel_count(out->profile);
     }
     if (proposed_channel_count != 0) {
-        config->channel_mask = audio_channel_out_mask_from_count(proposed_channel_count);
-        if (config->channel_mask == AUDIO_CHANNEL_INVALID)
+        if (proposed_channel_count <= FCC_2) {
+            // use channel position mask for mono and stereo
+            config->channel_mask = audio_channel_out_mask_from_count(proposed_channel_count);
+        } else {
+            // use channel index mask for multichannel
             config->channel_mask =
                     audio_channel_mask_for_index_assignment_from_count(proposed_channel_count);
+        }
         out->hal_channel_count = proposed_channel_count;
     } else {
         out->hal_channel_count = audio_channel_count_from_out_mask(config->channel_mask);