Resolved hardware error observed during SCO Connection setup

Hardware error was caused due to a faulty HCI command formed in the
process of vendor specific pre-SCO setup in the stack(set_audio_state)

Fixed the above problem and also added back the vendor (interface)
mapping for the set_audio_state functionality to facilitate the
sending of the pre-SCO vendor specific commands.

Bug: 19923226
Change-Id: I03c6a1c048c21549b7326a783b70588686283eb3
diff --git a/system/hci/include/vendor.h b/system/hci/include/vendor.h
index 6e4c070..3181e62 100644
--- a/system/hci/include/vendor.h
+++ b/system/hci/include/vendor.h
@@ -31,7 +31,8 @@
   VENDOR_OPEN_USERIAL         = BT_VND_OP_USERIAL_OPEN,
   VENDOR_CLOSE_USERIAL        = BT_VND_OP_USERIAL_CLOSE,
   VENDOR_GET_LPM_IDLE_TIMEOUT = BT_VND_OP_GET_LPM_IDLE_TIMEOUT,
-  VENDOR_SET_LPM_WAKE_STATE   = BT_VND_OP_LPM_WAKE_SET_STATE
+  VENDOR_SET_LPM_WAKE_STATE   = BT_VND_OP_LPM_WAKE_SET_STATE,
+  VENDOR_SET_AUDIO_STATE      = BT_VND_OP_SET_AUDIO_STATE
 } vendor_opcode_t;
 
 typedef enum {
diff --git a/system/main/bte_main.c b/system/main/bte_main.c
index 9343bad..a442101 100755
--- a/system/main/bte_main.c
+++ b/system/main/bte_main.c
@@ -55,6 +55,7 @@
 #include "osi/include/log.h"
 #include "stack_config.h"
 #include "osi/include/thread.h"
+#include "vendor.h"
 
 /*******************************************************************************
 **  Constants & Macros
@@ -290,7 +291,7 @@
     /* layer_specific shall contain return path event! for BTA events!
      * 0 means no return message is expected. */
     p_msg->hdr.layer_specific = 0;
-    hci->transmit_downward(MSG_STACK_TO_HC_HCI_CMD, p_msg);
+    vendor_get_interface()->send_command(VENDOR_SET_AUDIO_STATE, &(p_msg->audio));
     return result;
 }