summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bcmdhd/firmware/bcm4343/fw_bcm4343_a1.binbin326651 -> 326978 bytes
-rw-r--r--bcmdhd/firmware/bcm4343/fw_bcm4343_a1_apsta.binbin298408 -> 298555 bytes
-rw-r--r--bcmdhd/firmware/bcm4375/device-bcm.mk26
-rwxr-xr-xbcmdhd/firmware/bcm4375/fw_bcm4375.binbin0 -> 1357249 bytes
-rwxr-xr-xbcmdhd/firmware/bcm4375/fw_bcm4375_ap.binbin0 -> 1357249 bytes
-rw-r--r--bcmdhd/wifi_hal/wifi_hal.cpp27
6 files changed, 53 insertions, 0 deletions
diff --git a/bcmdhd/firmware/bcm4343/fw_bcm4343_a1.bin b/bcmdhd/firmware/bcm4343/fw_bcm4343_a1.bin
index dec41dc..5755dfc 100644
--- a/bcmdhd/firmware/bcm4343/fw_bcm4343_a1.bin
+++ b/bcmdhd/firmware/bcm4343/fw_bcm4343_a1.bin
Binary files differ
diff --git a/bcmdhd/firmware/bcm4343/fw_bcm4343_a1_apsta.bin b/bcmdhd/firmware/bcm4343/fw_bcm4343_a1_apsta.bin
index 1748d33..df7fe71 100644
--- a/bcmdhd/firmware/bcm4343/fw_bcm4343_a1_apsta.bin
+++ b/bcmdhd/firmware/bcm4343/fw_bcm4343_a1_apsta.bin
Binary files differ
diff --git a/bcmdhd/firmware/bcm4375/device-bcm.mk b/bcmdhd/firmware/bcm4375/device-bcm.mk
new file mode 100644
index 0000000..709f3aa
--- /dev/null
+++ b/bcmdhd/firmware/bcm4375/device-bcm.mk
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2008 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+########################
+-include hardware/broadcom/wlan/bcmdhd/config/config-bcm.mk
+
+BCM_FW_SRC_FILE_STA := fw_bcm4375.bin
+BCM_FW_SRC_FILE_AP := fw_bcm4375_ap.bin
+
+PRODUCT_COPY_FILES += \
+ hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/$(BCM_FW_SRC_FILE_STA):$(TARGET_COPY_OUT_VENDOR)/firmware/fw_bcmdhd.bin \
+ hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/$(BCM_FW_SRC_FILE_AP):$(TARGET_COPY_OUT_VENDOR)/firmware/fw_bcmdhd_apsta.bin
+########################
diff --git a/bcmdhd/firmware/bcm4375/fw_bcm4375.bin b/bcmdhd/firmware/bcm4375/fw_bcm4375.bin
new file mode 100755
index 0000000..b1a033d
--- /dev/null
+++ b/bcmdhd/firmware/bcm4375/fw_bcm4375.bin
Binary files differ
diff --git a/bcmdhd/firmware/bcm4375/fw_bcm4375_ap.bin b/bcmdhd/firmware/bcm4375/fw_bcm4375_ap.bin
new file mode 100755
index 0000000..b1a033d
--- /dev/null
+++ b/bcmdhd/firmware/bcm4375/fw_bcm4375_ap.bin
Binary files differ
diff --git a/bcmdhd/wifi_hal/wifi_hal.cpp b/bcmdhd/wifi_hal/wifi_hal.cpp
index 511ff3f..81cad8a 100644
--- a/bcmdhd/wifi_hal/wifi_hal.cpp
+++ b/bcmdhd/wifi_hal/wifi_hal.cpp
@@ -60,6 +60,13 @@
#define WIFI_HAL_CMD_SOCK_PORT 644
#define WIFI_HAL_EVENT_SOCK_PORT 645
+/*
+ * Defines for wifi_wait_for_driver_ready()
+ * Specify durations between polls and max wait time
+ */
+#define POLL_DRIVER_DURATION_US (100000)
+#define POLL_DRIVER_MAX_TIME_MS (10000)
+
static void internal_event_handler(wifi_handle handle, int events);
static int internal_no_seq_check(nl_msg *msg, void *arg);
static int internal_valid_message_handler(nl_msg *msg, void *arg);
@@ -151,6 +158,7 @@ wifi_error init_wifi_vendor_hal_func_table(wifi_hal_fn *fn)
return WIFI_ERROR_UNKNOWN;
}
fn->wifi_initialize = wifi_initialize;
+ fn->wifi_wait_for_driver_ready = wifi_wait_for_driver_ready;
fn->wifi_cleanup = wifi_cleanup;
fn->wifi_event_loop = wifi_event_loop;
fn->wifi_get_supported_feature_set = wifi_get_supported_feature_set;
@@ -306,6 +314,25 @@ wifi_error wifi_initialize(wifi_handle *handle)
return WIFI_SUCCESS;
}
+wifi_error wifi_wait_for_driver_ready(void)
+{
+ // This function will wait to make sure basic client netdev is created
+ // Function times out after 10 seconds
+ int count = (POLL_DRIVER_MAX_TIME_MS * 1000) / POLL_DRIVER_DURATION_US;
+ FILE *fd;
+
+ do {
+ if ((fd = fopen("/sys/class/net/wlan0", "r")) != NULL) {
+ fclose(fd);
+ return WIFI_SUCCESS;
+ }
+ usleep(POLL_DRIVER_DURATION_US);
+ } while(--count > 0);
+
+ ALOGE("Timed out waiting on Driver ready ... ");
+ return WIFI_ERROR_TIMED_OUT;
+}
+
static int wifi_add_membership(wifi_handle handle, const char *group)
{
hal_info *info = getHalInfo(handle);