servo: Add a sleep between power_state change when necessary.

BUG=chromium:982993
TEST=None

Change-Id: I685a97933d80c919875bf040035abdc59caa517d
Reviewed-on: https://chromium-review.googlesource.com/1743059
Tested-by: Garry Wang <xianuowang@chromium.org>
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Congbin Guo <guocb@chromium.org>
diff --git a/server/cros/servo/servo.py b/server/cros/servo/servo.py
index 9731f59..de796e3 100644
--- a/server/cros/servo/servo.py
+++ b/server/cros/servo/servo.py
@@ -759,9 +759,9 @@
         self._server.hwinit()
         self._power_state.power_off()
 
-        # Set up Servo's usb mux.
-        self.switch_usbkey('host')
         if image_path:
+            # Set up Servo's usb mux.
+            self.switch_usbkey('host')
             logging.info('Searching for usb device and copying image to it. '
                          'Please wait a few minutes...')
             if not self._server.download_image_to_usb(image_path):
@@ -795,6 +795,10 @@
                 after installation.
         """
         self.image_to_servo_usb(image_path, make_image_noninteractive)
+        # Give the DUT some time to power_off if we skip
+        # download image to usb. (crbug.com/982993)
+        if not image_path:
+            time.sleep(10)
         self.boot_in_recovery_mode()