OSDN Git Service

kernel.mk: add rules to get source of Broadcom hybrid device driver
authorChih-Wei Huang <cwhuang@linux.org.tw>
Sun, 24 Apr 2011 14:27:01 +0000 (22:27 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Mon, 2 May 2011 09:32:34 +0000 (17:32 +0800)
core/kernel.mk

index 1a85e61..9248653 100644 (file)
@@ -54,6 +54,18 @@ else
 endif
        $(if $(FIRMWARE_ENABLED),$(mk_kernel) INSTALL_MOD_PATH=$(CURDIR)/$(TARGET_OUT) firmware_install)
 
+# rules to get source of Broadcom 802.11a/b/g/n hybrid device driver
+# based on broadcomsetup.sh of Kyle Evans
+WL_ENABLED := $(shell grep ^CONFIG_WL=[my] $(KERNEL_CONFIG_FILE))
+WL_PATH := drivers/net/wireless/wl
+WL_SRC := kernel/$(WL_PATH)/hybrid-portsrc_x86_32-v5_100_82_38.tar.gz
+$(WL_SRC):
+       @echo Downloading $(@F)...
+       $(hide) curl http://www.broadcom.com/docs/linux_sta/$(@F) > $@ && tar zxf $@ -C $(@D) --overwrite && (cd kernel; git checkout $(WL_PATH)) && \
+               sed -i '/<linux\/wireless.h>/ a#include <linux/semaphore.h>' $(@D)/src/wl/sys/wl_iw.h && \
+               sed -i 's/init_MUTEX(&wl->sem)/\n#ifndef init_MUTEX\nsema_init(\&wl->sem,1)\n#else\ninit_MUTEX(\&wl->sem)\n#endif\n/' $(@D)/src/wl/sys/wl_linux.c
+$(INSTALLED_KERNEL_TARGET): $(if $(WL_ENABLED),$(WL_SRC))
+
 installclean: FILES += $(KBUILD_OUTPUT) $(INSTALLED_KERNEL_TARGET)
 
 TARGET_PREBUILT_KERNEL  := $(INSTALLED_KERNEL_TARGET)