merge in mnc-release history after reset to mnc-dev
diff --git a/include/hardware/camera3.h b/include/hardware/camera3.h
index 3ef6d6f..d23bdf2 100644
--- a/include/hardware/camera3.h
+++ b/include/hardware/camera3.h
@@ -2958,14 +2958,6 @@
      * interruptible hardware blocks should be stopped, and any uninterruptible
      * blocks should be waited on.
      *
-     * flush() may be called concurrently to process_capture_request(), with the expectation that
-     * process_capture_request will return quickly and the request submitted in that
-     * process_capture_request call is treated like all other in-flight requests.  Due to
-     * concurrency issues, it is possible that from the HAL's point of view, a
-     * process_capture_request() call may be started after flush has been invoked but has not
-     * returned yet. If such a call happens before flush() returns, the HAL should treat the new
-     * capture request like other in-flight pending requests (see #4 below).
-     *
      * More specifically, the HAL must follow below requirements for various cases:
      *
      * 1. For captures that are too late for the HAL to cancel/stop, and will be
@@ -3010,12 +3002,6 @@
      *    3.7. For fully-missing metadata, calling CAMERA3_MSG_ERROR_RESULT is sufficient, no
      *         need to call process_capture_result with NULL metadata or equivalent.
      *
-     * 4. If a flush() is invoked while a process_capture_request() invocation is active, that
-     *    process call should return as soon as possible. In addition, if a process_capture_request()
-     *    call is made after flush() has been invoked but before flush() has returned, the
-     *    capture request provided by the late process_capture_request call should be treated like
-     *    a pending request in case #2 above.
-     *
      * flush() should only return when there are no more outstanding buffers or
      * requests left in the HAL. The framework may call configure_streams (as
      * the HAL state is now quiesced) or may issue new requests.
diff --git a/modules/usbaudio/audio_hal.c b/modules/usbaudio/audio_hal.c
index 872fa93..5431476 100644
--- a/modules/usbaudio/audio_hal.c
+++ b/modules/usbaudio/audio_hal.c
@@ -55,8 +55,6 @@
 
 #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
 
@@ -530,14 +528,10 @@
         proposed_channel_count =  profile_get_default_channel_count(out->profile);
     }
     if (proposed_channel_count != 0) {
-        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_out_mask_from_count(proposed_channel_count);
+        if (config->channel_mask == AUDIO_CHANNEL_INVALID)
             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);