Add USB input channel index masks

Test: Attach various multichannel USB devices, check audio policy dumpsys
Bug: 74110332
Change-Id: I9a2d8ab235efcebc129a060d2ee6d6519d5e53dd
(cherry picked from commit 88ce1d930fa55e08dd5056cbc2b1d79bd2e65224)
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 9f90d93..57808a9 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1847,8 +1847,14 @@
 
     for (channel_count = channels; ((channel_count >= DEFAULT_CHANNEL_COUNT) &&
                                     (num_masks < max_masks)); channel_count--) {
-            supported_channel_masks[num_masks++] =
-                    audio_channel_mask_for_index_assignment_from_count(channel_count);
+        const audio_channel_mask_t mask =
+                audio_channel_in_mask_from_count(channel_count);
+        supported_channel_masks[num_masks++] = mask;
+        const audio_channel_mask_t index_mask =
+                audio_channel_mask_for_index_assignment_from_count(channel_count);
+        if (mask != index_mask && num_masks < max_masks) { // ensure index mask added.
+            supported_channel_masks[num_masks++] = index_mask;
+        }
     }
 
     ALOGV("%s: %s supported ch %d supported_channel_masks[0] %08x num_masks %d", __func__,
@@ -8078,6 +8084,10 @@
                                                             devices,
                                                             flags,
                                                             source);
+    ALOGV("%s: enter: flags %#x, is_usb_dev %d, may_use_hifi_record %d,"
+            " sample_rate %u, channel_mask %#x, format %#x",
+            __func__, flags, is_usb_dev, may_use_hifi_record,
+            config->sample_rate, config->channel_mask, config->format);
 
     if (is_usb_dev && (!audio_extn_usb_connected(NULL))) {
         is_usb_dev = false;
@@ -8148,7 +8158,7 @@
     in->direction = MIC_DIRECTION_UNSPECIFIED;
     in->zoom = 0;
 
-    ALOGV("%s: source = %d, config->channel_mask = %d", __func__, source, config->channel_mask);
+    ALOGV("%s: source %d, config->channel_mask %#x", __func__, source, config->channel_mask);
     if (source == AUDIO_SOURCE_VOICE_UPLINK ||
         source == AUDIO_SOURCE_VOICE_DOWNLINK) {
         /* Force channel config requested to mono if incall