merge in oc-release history after reset to master
diff --git a/dbus/cryptohome/dbus-constants.h b/dbus/cryptohome/dbus-constants.h
index 76843f9..6c6a4ea 100644
--- a/dbus/cryptohome/dbus-constants.h
+++ b/dbus/cryptohome/dbus-constants.h
@@ -122,6 +122,7 @@
     "SetFirmwareManagementParameters";
 const char kCryptohomeRemoveFirmwareManagementParameters[] =
     "RemoveFirmwareManagementParameters";
+const char kCryptohomeMigrateToDircrypto[] = "MigrateToDircrypto";
 
 // Signals
 const char kSignalAsyncCallStatus[] = "AsyncCallStatus";
@@ -129,6 +130,7 @@
 const char kSignalTpmInitStatus[] = "TpmInitStatus";
 const char kSignalCleanupUsersRemoved[] = "CleanupUsersRemoved";
 const char kSignalLowDiskSpace[] = "LowDiskSpace";
+const char kSignalDircryptoMigrationProgress[] = "DircryptoMigrationProgress";
 // Error code
 enum MountError {
   MOUNT_ERROR_NONE = 0,
@@ -145,6 +147,15 @@
   MOUNT_ERROR_PREVIOUS_MIGRATION_INCOMPLETE = 1 << 8,
   MOUNT_ERROR_RECREATED = 1 << 31,
 };
+// Status code signaled from MigrateToDircrypto().
+enum DircryptoMigrationStatus {
+  // 0 means a successful completeion.
+  DYRCRYPTO_MIGRATION_SUCCESS = 0,
+  // Negative values mean failing completion.
+  // TODO(kinaba,dspaid): Add error codes as needed here.
+  // Positive values mean intermediate state report for the running migration.
+  // TODO(kinaba,dspaid): Add state codes as needed.
+};
 }  // namespace cryptohome
 
 #endif  // SYSTEM_API_DBUS_CRYPTOHOME_DBUS_CONSTANTS_H_
diff --git a/dbus/power_manager/dbus-constants.h b/dbus/power_manager/dbus-constants.h
index 0a3dfac..8fa97b3 100644
--- a/dbus/power_manager/dbus-constants.h
+++ b/dbus/power_manager/dbus-constants.h
@@ -21,6 +21,7 @@
 const char kRequestShutdownMethod[] = "RequestShutdown";
 const char kRequestSuspendMethod[] = "RequestSuspend";
 const char kGetPowerSupplyPropertiesMethod[] = "GetPowerSupplyProperties";
+const char kGetSwitchStatesMethod[] = "GetSwitchStates";
 const char kHandleUserActivityMethod[] = "HandleUserActivity";
 const char kHandleVideoActivityMethod[] = "HandleVideoActivity";
 const char kSetIsProjectingMethod[] = "SetIsProjecting";
diff --git a/dbus/power_manager/switch_states.proto b/dbus/power_manager/switch_states.proto
new file mode 100644
index 0000000..e1a827c
--- /dev/null
+++ b/dbus/power_manager/switch_states.proto
@@ -0,0 +1,28 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+// Included in responses to GetSwitchStates method calls to powerd.
+message SwitchStates {
+  // Next ID to use: 3
+
+  enum LidState {
+    OPEN = 0;
+    CLOSED = 1;
+    NOT_PRESENT = 2;
+  }
+  optional LidState lid_state = 1;
+
+  enum TabletMode {
+    ON = 0;
+    OFF = 1;
+    UNSUPPORTED = 2;
+  }
+  optional TabletMode tablet_mode = 2;
+}
diff --git a/dbus/service_constants.h b/dbus/service_constants.h
index 31144a6..86d6b0a 100644
--- a/dbus/service_constants.h
+++ b/dbus/service_constants.h
@@ -994,7 +994,7 @@
 // Signals
 const char kBiometricsManagerEnrollScanDoneSignal[] = "EnrollScanDone";
 const char kBiometricsManagerAuthScanDoneSignal[] = "AuthScanDone";
-const char kBiometricsManagerScanFailedSignal[] = "ScanFailed";
+const char kBiometricsManagerSessionFailedSignal[] = "SessionFailed";
 
 // Properties
 const char kBiometricsManagerBiometricTypeProperty[] = "Type";
@@ -1002,18 +1002,19 @@
 
 // Values
 enum BiometricType {
-  BIOMETRIC_FINGERPRINT = 0,
-  BIOMETRIC_RETINA = 1,
-  BIOMETRIC_FACE = 2,
-  BIOMETRIC_VOICE = 3,
+  BIOMETRIC_TYPE_UNKNOWN = 0,
+  BIOMETRIC_TYPE_FINGERPRINT = 1,
+  BIOMETRIC_TYPE_MAX,
 };
-enum ScanResultType {
+enum ScanResult {
   SCAN_RESULT_SUCCESS = 0,
   SCAN_RESULT_PARTIAL = 1,
   SCAN_RESULT_INSUFFICIENT = 2,
   SCAN_RESULT_SENSOR_DIRTY = 3,
   SCAN_RESULT_TOO_SLOW = 4,
   SCAN_RESULT_TOO_FAST = 5,
+  SCAN_RESULT_IMMOBILE = 6,
+  SCAN_RESULT_MAX,
 };
 }  // namespace biod
 
diff --git a/system_api.gyp b/system_api.gyp
index 82423f9..b05b95e 100644
--- a/system_api.gyp
+++ b/system_api.gyp
@@ -35,11 +35,12 @@
         'proto_out_dir': 'include/power_manager/proto_bindings',
       },
       'sources': [
-        '<(proto_in_dir)/suspend.proto',
         '<(proto_in_dir)/input_event.proto',
         '<(proto_in_dir)/peripheral_battery_status.proto',
         '<(proto_in_dir)/policy.proto',
         '<(proto_in_dir)/power_supply_properties.proto',
+        '<(proto_in_dir)/suspend.proto',
+        '<(proto_in_dir)/switch_states.proto',
       ],
       'includes': ['../../platform2/common-mk/protoc.gypi'],
     },
@@ -51,11 +52,12 @@
         'system_api-power_manager-protos-gen',
       ],
       'sources': [
-        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/suspend.pb.cc',
         '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/input_event.pb.cc',
         '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/peripheral_battery_status.pb.cc',
         '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/policy.pb.cc',
         '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/power_supply_properties.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/suspend.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/switch_states.pb.cc',
       ]
     },
     {