Merge "Modify submix HAL to allow either input or output streams create the pipe."
diff --git a/include/hardware/bt_gatt_client.h b/include/hardware/bt_gatt_client.h
index baed4bd..abd2e86 100644
--- a/include/hardware/bt_gatt_client.h
+++ b/include/hardware/bt_gatt_client.h
@@ -195,7 +195,7 @@
     bt_status_t (*unregister_client)(int client_if );
 
     /** Start or stop LE device scanning */
-    bt_status_t (*scan)( int client_if, bool start );
+    bt_status_t (*scan)( bool start );
 
     /** Create a connection to a remote LE or dual-mode device */
     bt_status_t (*connect)( int client_if, const bt_bdaddr_t *bd_addr,
@@ -304,6 +304,9 @@
     /** Configure the MTU for a given connection */
     bt_status_t (*configure_mtu)(int conn_id, int mtu);
 
+    /** Sets the LE scan interval and window in units of N*0.625 msec */
+    bt_status_t (*set_scan_parameters)(int scan_interval, int scan_window);
+
     /** Test mode interface */
     bt_status_t (*test_command)( int command, btgatt_test_params_t* params);
 
diff --git a/include/hardware/hdmi_cec.h b/include/hardware/hdmi_cec.h
index 1906153..0b724a1 100644
--- a/include/hardware/hdmi_cec.h
+++ b/include/hardware/hdmi_cec.h
@@ -91,7 +91,7 @@
     CEC_MESSAGE_TIMER_CLEARED_STATUS = 0x043,
     CEC_MESSAGE_USER_CONTROL_PRESSED = 0x44,
     CEC_MESSAGE_USER_CONTROL_RELEASED = 0x45,
-    CEC_MESSAGE_GET_OSD_NAME = 0x46,
+    CEC_MESSAGE_GIVE_OSD_NAME = 0x46,
     CEC_MESSAGE_SET_OSD_NAME = 0x47,
     CEC_MESSAGE_SET_OSD_STRING = 0x64,
     CEC_MESSAGE_SET_TIMER_PROGRAM_TITLE = 0x67,
@@ -129,6 +129,12 @@
     CEC_MESSAGE_VENDOR_COMMAND_WITH_ID = 0xA0,
     CEC_MESSAGE_CLEAR_EXTERNAL_TIMER = 0xA1,
     CEC_MESSAGE_SET_EXTERNAL_TIMER = 0xA2,
+    CEC_MESSAGE_INITIATE_ARC = 0xC0,
+    CEC_MESSAGE_REPORT_ARC_INITIATED = 0xC1,
+    CEC_MESSAGE_REPORT_ARC_TERMINATED = 0xC2,
+    CEC_MESSAGE_REQUEST_ARC_INITIATION = 0xC3,
+    CEC_MESSAGE_REQUEST_ARC_TERMINATION = 0xC4,
+    CEC_MESSAGE_TERMINATE_ARC = 0xC5,
     CEC_MESSAGE_ABORT = 0xFF
 };
 
diff --git a/modules/sensors/multihal.cpp b/modules/sensors/multihal.cpp
index 135e740..5fd500a 100644
--- a/modules/sensors/multihal.cpp
+++ b/modules/sensors/multihal.cpp
@@ -36,6 +36,7 @@
 
 static const char* CONFIG_FILENAME = "/system/etc/sensors/hals.conf";
 static const char* LEGAL_SUBHAL_PATH_PREFIX = "/system/lib/hw/";
+static const char* LEGAL_SUBHAL_ALTERNATE_PATH_PREFIX = "/system/vendor/lib/";
 static const int MAX_CONF_LINE_LENGTH = 1024;
 
 static pthread_mutex_t init_modules_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -440,14 +441,15 @@
         }
         ALOGV("config file line #%d: '%s'", ++line_count, line);
         char *real_path = realpath(line, NULL);
-        if (starts_with(real_path, LEGAL_SUBHAL_PATH_PREFIX)) {
+        if (starts_with(real_path, LEGAL_SUBHAL_PATH_PREFIX) ||
+		starts_with(real_path, LEGAL_SUBHAL_ALTERNATE_PATH_PREFIX)) {
             ALOGV("accepting valid path '%s'", real_path);
             char* compact_line = new char[strlen(real_path) + 1];
             strcpy(compact_line, real_path);
             so_paths->push_back(compact_line);
         } else {
-            ALOGW("rejecting path '%s' because it does not start with '%s'",
-                    real_path, LEGAL_SUBHAL_PATH_PREFIX);
+            ALOGW("rejecting path '%s' because it does not start with '%s' or '%s'",
+                    real_path, LEGAL_SUBHAL_PATH_PREFIX, LEGAL_SUBHAL_ALTERNATE_PATH_PREFIX);
         }
         free(real_path);
     }