123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- ENABLE_QCACLD := true
- ifeq ($(TARGET_USES_QMAA), true)
- ifneq ($(TARGET_USES_QMAA_OVERRIDE_WLAN), true)
- ENABLE_QCACLD := false
- else
- ENABLE_QCACLD := true
- endif
- endif
- ifeq ($(ENABLE_QCACLD), true)
- # Android makefile for the WLAN Module
- LOCAL_PATH := $(call my-dir)
- # Assume no targets will be supported
- WLAN_CHIPSET :=
- ifeq ($(BOARD_HAS_QCOM_WLAN), true)
- # Check if this driver needs be built for current target
- ifneq ($(findstring qca_cld3,$(WIFI_DRIVER_BUILT)),)
- WLAN_CHIPSET := qca_cld3
- WLAN_SELECT := CONFIG_QCA_CLD_WLAN=m
- endif
- # Build/Package only in case of supported target
- ifneq ($(WLAN_CHIPSET),)
- # This makefile is only for DLKM
- ifneq ($(findstring vendor,$(LOCAL_PATH)),)
- ifneq ($(findstring opensource,$(LOCAL_PATH)),)
- WLAN_BLD_DIR := vendor/qcom/opensource/wlan
- endif # opensource
- # Multi-ko check
- LOCAL_DEV_NAME := $(patsubst .%,%,\
- $(lastword $(strip $(subst /, ,$(LOCAL_PATH)))))
- ifeq (1, $(strip $(shell expr $(words $(strip $(TARGET_WLAN_CHIP))) \>= 2)))
- ifeq ($(LOCAL_DEV_NAME), qcacld-3.0)
- LOCAL_MULTI_KO := true
- else
- LOCAL_MULTI_KO := false
- endif
- endif
- ifeq ($(LOCAL_MULTI_KO), true)
- LOCAL_ANDROID_ROOT := $(shell pwd)
- LOCAL_WLAN_BLD_DIR := $(LOCAL_ANDROID_ROOT)/$(WLAN_BLD_DIR)
- $(shell find $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/ -maxdepth 1 \
- -name '.*' ! -name '.git' -exec rm -rf {} +)
- $(foreach chip, $(TARGET_WLAN_CHIP), \
- $($(shell mkdir -p $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/.$(chip); \
- ln -sf $(LOCAL_WLAN_BLD_DIR)/qca-wifi-host-cmn \
- $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/.$(chip)/qca-wifi-host-cmn); \
- $(foreach node, \
- $(shell find $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/ -maxdepth 1 \
- ! -name '.*' ! -name '*~' \
- ! -name '.' ! -name 'qcacld-3.0'), \
- $(shell ln -sf $(node) \
- $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/.$(chip)/$(lastword $(strip $(subst /, ,$(node)))) \
- ))))
- include $(foreach chip, $(TARGET_WLAN_CHIP), $(LOCAL_PATH)/.$(chip)/Android.mk)
- else # Multi-ok check
- ifeq ($(LOCAL_DEV_NAME), qcacld-3.0)
- LOCAL_DEV_NAME := wlan
- LOCAL_MOD_NAME := wlan
- CMN_OFFSET := ..
- LOCAL_SRC_DIR :=
- WLAN_PROFILE := default
- TARGET_FW_DIR := firmware/wlan/qca_cld
- TARGET_CFG_PATH := /vendor/etc/wifi
- TARGET_MAC_BIN_PATH := /mnt/vendor/persist
- else
- LOCAL_SRC_DIR := .$(LOCAL_DEV_NAME)
- CMN_OFFSET := .
- WLAN_PROFILE := $(LOCAL_DEV_NAME)
- TARGET_FW_DIR := firmware/wlan/qca_cld/$(LOCAL_DEV_NAME)
- TARGET_CFG_PATH := /vendor/etc/wifi/$(LOCAL_DEV_NAME)
- TARGET_MAC_BIN_PATH := /mnt/vendor/persist/$(LOCAL_DEV_NAME)
- ifneq ($(TARGET_MULTI_WLAN), true)
- LOCAL_MOD_NAME := wlan
- DYNAMIC_SINGLE_CHIP := $(LOCAL_DEV_NAME)
- else
- LOCAL_MOD_NAME := $(LOCAL_DEV_NAME)
- endif
- endif
- # DLKM_DIR was moved for JELLY_BEAN (PLATFORM_SDK 16)
- ifeq ($(call is-platform-sdk-version-at-least,16),true)
- DLKM_DIR := $(TOP)/device/qcom/common/dlkm
- else
- DLKM_DIR := build/dlkm
- endif # platform-sdk-version
- # Build wlan.ko as $(WLAN_CHIPSET)_wlan.ko
- ###########################################################
- # This is set once per LOCAL_PATH, not per (kernel) module
- KBUILD_OPTIONS := WLAN_ROOT=$(WLAN_BLD_DIR)/qcacld-3.0/$(LOCAL_SRC_DIR)
- KBUILD_OPTIONS += WLAN_COMMON_ROOT=$(CMN_OFFSET)/qca-wifi-host-cmn
- KBUILD_OPTIONS += WLAN_COMMON_INC=$(WLAN_BLD_DIR)/qca-wifi-host-cmn
- KBUILD_OPTIONS += WLAN_FW_API=$(WLAN_BLD_DIR)/fw-api
- KBUILD_OPTIONS += WLAN_PROFILE=$(WLAN_PROFILE)
- KBUILD_OPTIONS += DYNAMIC_SINGLE_CHIP=$(DYNAMIC_SINGLE_CHIP)
- # We are actually building wlan.ko here, as per the
- # requirement we are specifying <chipset>_wlan.ko as LOCAL_MODULE.
- # This means we need to rename the module to <chipset>_wlan.ko
- # after wlan.ko is built.
- KBUILD_OPTIONS += MODNAME=$(LOCAL_MOD_NAME)
- KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
- KBUILD_OPTIONS += $(WLAN_SELECT)
- ifneq ($(WLAN_CFG_OVERRIDE_$(LOCAL_DEV_NAME)),)
- KBUILD_OPTIONS += WLAN_CFG_OVERRIDE="$(WLAN_CFG_OVERRIDE_$(LOCAL_DEV_NAME))"
- endif
- include $(CLEAR_VARS)
- LOCAL_MODULE := $(WLAN_CHIPSET)_$(LOCAL_DEV_NAME).ko
- LOCAL_MODULE_KBUILD_NAME := $(LOCAL_MOD_NAME).ko
- LOCAL_MODULE_DEBUG_ENABLE := true
- ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
- ifeq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true)
- LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
- else
- LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)
- endif
- else
- LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/modules/$(WLAN_CHIPSET)
- endif
- include $(DLKM_DIR)/AndroidKernelModule.mk
- ###########################################################
- # Create Symbolic link
- ifneq ($(findstring $(WLAN_CHIPSET),$(WIFI_DRIVER_DEFAULT)),)
- ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
- ifneq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),)
- $(shell mkdir -p $(TARGET_OUT_VENDOR)/lib/modules; \
- ln -sf /$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MODULE))
- endif
- else
- $(shell mkdir -p $(TARGET_OUT)/lib/modules; \
- ln -sf /system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT)/lib/modules/$(LOCAL_MODULE))
- endif
- endif
- ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)
- TARGET_FW_PATH := $(TARGET_OUT_VENDOR)/$(TARGET_FW_DIR)
- else
- TARGET_FW_PATH := $(TARGET_OUT_ETC)/$(TARGET_FW_DIR)
- endif
- $(shell mkdir -p $(TARGET_FW_PATH); \
- ln -sf $(TARGET_MAC_BIN_PATH)/wlan_mac.bin $(TARGET_FW_PATH)/wlan_mac.bin; \
- ln -sf $(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini)
- endif # Multi-ko check
- endif # DLKM check
- endif # supported target check
- endif # WLAN enabled check
- endif # ENABLE_QCACLD
|