Permalink
Browse files

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
  • Loading branch information...
1 parent b9bcd9f commit 62432dd0bb4d59f640bde9309f86eef2fd984f18 Matthew Xie committed Oct 27, 2011
Showing with 7 additions and 1 deletion.
  1. +7 −1 bluedroid/bluetooth.c
View
@@ -168,11 +168,17 @@ int bt_enable() {
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, ",

0 comments on commit 62432dd

Please sign in to comment.