merge in oc-r6-release history after reset to oc-release
diff --git a/libaudio/ATVAudioPolicyManager.cpp b/libaudio/ATVAudioPolicyManager.cpp
index deb1bf4..0513052 100644
--- a/libaudio/ATVAudioPolicyManager.cpp
+++ b/libaudio/ATVAudioPolicyManager.cpp
@@ -129,7 +129,8 @@
     const audio_devices_t availableDeviceTypes = mAvailableInputDevices.types() &
             ~AUDIO_DEVICE_BIT_IN;
 
-    if (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION) {
+    if (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION ||
+            inputSource == AUDIO_SOURCE_UNPROCESSED) {
 #ifdef REMOTE_CONTROL_INTERFACE
       ALOGI("Using REMOTE_CONTROL_INTERFACE.");
       // Check if remote is actually connected or we should move on
diff --git a/libaudio/AudioHardwareInput.cpp b/libaudio/AudioHardwareInput.cpp
index eef0e89..71efbf9 100644
--- a/libaudio/AudioHardwareInput.cpp
+++ b/libaudio/AudioHardwareInput.cpp
@@ -257,6 +257,7 @@
 const AudioHotplugThread::DeviceInfo* AudioHardwareInput::getBestDevice(int inputSource)
 {
     bool doVoiceRecognition = (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION);
+    const bool favorNoVoiceRecognition = (inputSource == AUDIO_SOURCE_UNPROCESSED);
     int chosenDeviceIndex = -1;
     Mutex::Autolock _l(mLock);
 
@@ -266,9 +267,18 @@
     // and no other devices are used for voice recognition.
     // Currently the RemoteControl is the only device marked with forVoiceRecognition=true.
     // A connected USB mic could be used for anything but voice recognition.
+    // For UNPROCESSED source, a connected USB microphone will be favored over the remote mic.
     for (int i=0; i<kMaxDevices; i++) {
         if (mDeviceInfos[i].valid) {
-            if (mDeviceInfos[i].forVoiceRecognition == doVoiceRecognition) {
+            if (favorNoVoiceRecognition) {
+                if (mDeviceInfos[i].forVoiceRecognition) {
+                    chosenDeviceIndex = i;
+                    //continue matching
+                } else {
+                    chosenDeviceIndex = i;
+                    break;
+                }
+            } else if (mDeviceInfos[i].forVoiceRecognition == doVoiceRecognition) {
                 chosenDeviceIndex = i;
                 break;
             }