diff --git a/include/hardware/bt_av.h b/include/hardware/bt_av.h
index 5f7601e..428a5b1 100644
--- a/include/hardware/bt_av.h
+++ b/include/hardware/bt_av.h
@@ -57,13 +57,6 @@
                                                 uint32_t sample_rate,
                                                 uint8_t channel_count);
 
-/*
- * Callback for audio focus request to be used only in
- * case of A2DP Sink. This is required because we are using
- * AudioTrack approach for audio data rendering.
- */
-typedef void (* btav_audio_focus_request_callback)(bt_bdaddr_t *bd_addr);
-
 /** BT-AV callback structure. */
 typedef struct {
     /** set to sizeof(btav_callbacks_t) */
@@ -71,7 +64,6 @@
     btav_connection_state_callback  connection_state_cb;
     btav_audio_state_callback audio_state_cb;
     btav_audio_config_callback audio_config_cb;
-    btav_audio_focus_request_callback audio_focus_request_cb;
 } btav_callbacks_t;
 
 /**
diff --git a/include/hardware/gps.h b/include/hardware/gps.h
index c839559..354d343 100644
--- a/include/hardware/gps.h
+++ b/include/hardware/gps.h
@@ -307,12 +307,6 @@
 #define GNSS_MEASUREMENT_HAS_CARRIER_PHASE                     (1<<11)
 /** A valid 'carrier phase uncertainty' is stored in the data structure. */
 #define GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY         (1<<12)
-/**
- * The value of 'pseudorange rate' is uncorrected.
- * This is a mandatory flag. See comments of
- * GpsMeasurement::pseudorange_rate_mps for more details.
- */
-#define GNSS_MEASUREMENT_HAS_UNCORRECTED_PSEUDORANGE_RATE      (1<<18)
 
 /* The following typedef together with its constants below are deprecated, and
  * will be removed in the next release. */
diff --git a/include/hardware/vehicle.h b/include/hardware/vehicle.h
index dc1419f..4a080a1 100644
--- a/include/hardware/vehicle.h
+++ b/include/hardware/vehicle.h
@@ -1161,9 +1161,9 @@
     VEHICLE_GEAR_REVERSE    = 0x0002,
 
     // Gear selections (mostly) present only in automatic cars.
-    VEHICLE_GEAR_PARKING    = 0x0004,
+    VEHICLE_GEAR_PARK       = 0x0004,
     VEHICLE_GEAR_DRIVE      = 0x0008,
-    VEHICLE_GEAR_L          = 0x0010,
+    VEHICLE_GEAR_LOW        = 0x0010,
 
     // Other possible gear selections (maybe present in manual or automatic
     // cars).
diff --git a/modules/vehicle/vehicle.c b/modules/vehicle/vehicle.c
index 38c38ee..564630c 100644
--- a/modules/vehicle/vehicle.c
+++ b/modules/vehicle/vehicle.c
@@ -336,7 +336,7 @@
                 event.value_type = VEHICLE_VALUE_TYPE_INT32;
                 switch ((event.timestamp & 0x30000000)>>28) {
                     case 0:
-                        event.value.gear_selection = VEHICLE_GEAR_PARKING;
+                        event.value.gear_selection = VEHICLE_GEAR_PARK;
                         break;
                     case 1:
                         event.value.gear_selection = VEHICLE_GEAR_NEUTRAL;
@@ -407,7 +407,7 @@
 }
 
 static int vdev_subscribe(vehicle_hw_device_t* device, int32_t prop, float sample_rate,
-        int32_t zones) {
+        int32_t zones UNUSED) {
     ALOGD("vdev_subscribe 0x%x, %f", prop, sample_rate);
     vehicle_device_impl_t* impl = (vehicle_device_impl_t*)device;
     // Check that the device is initialized.
diff --git a/tests/vehicle/vehicle-hal-tool.c b/tests/vehicle/vehicle-hal-tool.c
index d10a7b9..8cc8476 100755
--- a/tests/vehicle/vehicle-hal-tool.c
+++ b/tests/vehicle/vehicle-hal-tool.c
@@ -268,6 +268,15 @@
             printf("Value type: ZONED_FLOAT\nZone: %d\n", event_data->value.zoned_float_value.zone);
             printf("Value type: ZONED_FLOAT\nValue: %f\n", event_data->value.zoned_float_value.value);
             break;
+        case VEHICLE_VALUE_TYPE_INT32_VEC2:
+            printf("Value type: INT32_VEC2\nValue[0]: %d Value[1] %d\n",
+                  event_data->value.int32_array[0], event_data->value.int32_array[1]);
+            break;
+        case VEHICLE_VALUE_TYPE_INT32_VEC3:
+            printf("Value type: INT32_VEC3\nValue[0]: %d Value[1] %d Value[2] %d\n",
+                  event_data->value.int32_array[0], event_data->value.int32_array[1],
+                  event_data->value.int32_array[2]);
+            break;
         case VEHICLE_VALUE_TYPE_INT32_VEC4:
             printf("Value type: INT32_VEC4\nValue[0]: %d Value[1] %d Value[2] %d Value[3] %d\n",
                   event_data->value.int32_array[0], event_data->value.int32_array[1],
diff --git a/tests/vehicle/vehicle_test_fixtures.h b/tests/vehicle/vehicle_test_fixtures.h
index 15cafaa..a9572ba 100644
--- a/tests/vehicle/vehicle_test_fixtures.h
+++ b/tests/vehicle/vehicle_test_fixtures.h
@@ -55,7 +55,7 @@
     return 0;
 }
 
-int VehicleErrorCallback(int32_t error_code, int32_t property, int32_t operation) {
+ int VehicleErrorCallback(int32_t /*error_code*/, int32_t /*property*/, int32_t /*operation*/) {
     // Do nothing.
     return 0;
 }
