Check EALREADY status for HCIDEVUP command

Both bluez and bluedroid starts up HCI driver. If bluez starts the driver
before bluedroid. Current bluedroid fails incorrectly. Bluedroid should
treat EALREADY error code as success.
We place a warning message when EALREADY error happens. The reason is that
bluedroid should always starts up HCI driver first. bluedroid starts up
bluetoothd afterwards.
bug 5496360

Change-Id: I316a2b3ec52bfbe6d1cdf554eac3deabfd63f3da
diff --git a/bluedroid/bluetooth.c b/bluedroid/bluetooth.c
index 252bdc4..4cc9204 100644
--- a/bluedroid/bluetooth.c
+++ b/bluedroid/bluetooth.c
@@ -168,11 +168,17 @@
         if (hci_sock < 0) goto out;
 
         ret = ioctl(hci_sock, HCIDEVUP, HCI_DEV_ID);
+
+        LOGI("bt_enable: ret: %d, errno: %d", ret, errno);
         if (!ret) {
             break;
+        } else if (errno == EALREADY) {
+            LOGW("Bluetoothd already started, unexpectedly!");
+            break;
         }
+
         close(hci_sock);
-        usleep(10000);  // 10 ms retry delay
+        usleep(100000);  // 100 ms retry delay
     }
     if (attempt == 0) {
         LOGE("%s: Timeout waiting for HCI device to come up, error- %d, ",