110a5bb12SJeff Johnson# Android makefile for the WLAN Module 210a5bb12SJeff Johnson 310a5bb12SJeff Johnson# set WLAN_BUILD_DEBUG=y in your environment to enable debug logging 410a5bb12SJeff Johnsondefine wlog 510a5bb12SJeff Johnson$(if $(WLAN_BUILD_DEBUG),$(info $(1))) 610a5bb12SJeff Johnsonendef 710a5bb12SJeff Johnson 87eea98dcSZhaoyang Liudefine target_is_dual_wlan 97eea98dcSZhaoyang Liu$(strip \ 107eea98dcSZhaoyang Liu $(if $(TARGET_SUPPORT_DUAL_WLAN), \ 117eea98dcSZhaoyang Liu $(if $(findstring cnss2,$(1)),true,), \ 127eea98dcSZhaoyang Liu ) \ 137eea98dcSZhaoyang Liu) 147eea98dcSZhaoyang Liuendef 157eea98dcSZhaoyang Liu 16243b2afbSMohammed AhmedLOCAL_MODULE_DDK_BUILD := false 17243b2afbSMohammed AhmedLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := false 1891537161SMohammed Ahmed 1938a6b6bcSMohammed Ahmedifeq ($(TARGET_BOARD_PLATFORM), sun) 2038a6b6bcSMohammed AhmedLOCAL_MODULE_DDK_BUILD := true 2138a6b6bcSMohammed AhmedLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true 2238a6b6bcSMohammed Ahmedendif 2391537161SMohammed Ahmedifeq ($(TARGET_BOARD_PLATFORM), pineapple) 2491537161SMohammed AhmedLOCAL_MODULE_DDK_BUILD := true 2591537161SMohammed AhmedLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true 26243b2afbSMohammed Ahmedendif 27243b2afbSMohammed Ahmed 28ee1f25dfSSai Kumar Kunchalaifeq ($(TARGET_BOARD_PLATFORM), niobe) 29ee1f25dfSSai Kumar KunchalaLOCAL_MODULE_DDK_BUILD := true 30ee1f25dfSSai Kumar KunchalaLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true 31ee1f25dfSSai Kumar Kunchalaendif 32ee1f25dfSSai Kumar Kunchala 33080e8518SLin Baiifeq ($(TARGET_BOARD_PLATFORM), volcano) 34080e8518SLin BaiLOCAL_MODULE_DDK_BUILD := true 35080e8518SLin BaiLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true 36080e8518SLin Baiendif 37080e8518SLin Bai 38*9004d4b0SAsutosh Mohapatraifeq ($(TARGET_BOARD_PLATFORM),parrot) 39*9004d4b0SAsutosh Mohapatraifeq ($(TARGET_BOARD_SUFFIX),66) 40*9004d4b0SAsutosh MohapatraLOCAL_MODULE_DDK_BUILD := true 41*9004d4b0SAsutosh MohapatraLOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true 42*9004d4b0SAsutosh Mohapatraendif 43*9004d4b0SAsutosh Mohapatraendif 44*9004d4b0SAsutosh Mohapatra 4510a5bb12SJeff JohnsonLOCAL_PATH := $(call my-dir) 4610a5bb12SJeff Johnson$(call wlog,LOCAL_PATH=$(LOCAL_PATH)) 4751893a20SDundi RavitejaBOARD_OPENSOURCE_DIR ?= vendor/qcom/opensource 4810a5bb12SJeff Johnson 4956a9bf7fSSmita GhoshENABLE_QCACLD := true 5056a9bf7fSSmita Ghoshifeq ($(TARGET_USES_QMAA), true) 5156a9bf7fSSmita Ghoshifneq ($(TARGET_USES_QMAA_OVERRIDE_WLAN), true) 5256a9bf7fSSmita GhoshENABLE_QCACLD := false 5356a9bf7fSSmita Ghoshelse 5456a9bf7fSSmita GhoshENABLE_QCACLD := true 5556a9bf7fSSmita Ghoshendif 5656a9bf7fSSmita Ghoshendif 5756a9bf7fSSmita Ghosh 58a89f1924SKomal Maheshwariifeq ($(BOARD_COMMON_DIR),) 59a89f1924SKomal Maheshwari BOARD_COMMON_DIR := device/qcom/common 60a89f1924SKomal Maheshwariendif 61a89f1924SKomal Maheshwari 6256a9bf7fSSmita Ghoshifeq ($(ENABLE_QCACLD), true) 637090c5fdSPrakash Dhavali 647090c5fdSPrakash Dhavali# Assume no targets will be supported 657090c5fdSPrakash DhavaliWLAN_CHIPSET := 667090c5fdSPrakash Dhavali 677090c5fdSPrakash Dhavaliifeq ($(BOARD_HAS_QCOM_WLAN), true) 687090c5fdSPrakash Dhavali 691e382ffaSYue Ma# Check if this driver needs be built for current target 701e382ffaSYue Maifneq ($(findstring qca_cld3,$(WIFI_DRIVER_BUILT)),) 71fbb9b373SSatish Singh WLAN_CHIPSET := qca_cld3 727090c5fdSPrakash Dhavali WLAN_SELECT := CONFIG_QCA_CLD_WLAN=m 731e382ffaSYue Maendif 747090c5fdSPrakash Dhavali 757090c5fdSPrakash Dhavali# Build/Package only in case of supported target 767090c5fdSPrakash Dhavaliifneq ($(WLAN_CHIPSET),) 777090c5fdSPrakash Dhavali 787090c5fdSPrakash Dhavali# This makefile is only for DLKM 797090c5fdSPrakash Dhavaliifneq ($(findstring vendor,$(LOCAL_PATH)),) 807090c5fdSPrakash Dhavali 817090c5fdSPrakash Dhavaliifneq ($(findstring opensource,$(LOCAL_PATH)),) 8251893a20SDundi Raviteja WLAN_BLD_DIR := $(BOARD_OPENSOURCE_DIR)/wlan 837090c5fdSPrakash Dhavaliendif # opensource 847090c5fdSPrakash Dhavali 856c4599c8SYu Wang# Multi-ko check 868cf2c24eSYu WangLOCAL_DEV_NAME := $(patsubst .%,%,\ 878cf2c24eSYu Wang $(lastword $(strip $(subst /, ,$(LOCAL_PATH))))) 886c4599c8SYu Wang 8910a5bb12SJeff Johnson$(call wlog,LOCAL_DEV_NAME=$(LOCAL_DEV_NAME)) 9010a5bb12SJeff Johnson$(call wlog,TARGET_WLAN_CHIP=$(TARGET_WLAN_CHIP)) 9110a5bb12SJeff Johnson 9227b941b7SJeff JohnsonTARGET_WLAN_CHIP ?= wlan 9327b941b7SJeff JohnsonLOCAL_MULTI_KO := false 9427b941b7SJeff Johnsonifneq ($(TARGET_WLAN_CHIP), wlan) 957d866f69SYu Wangifeq ($(LOCAL_DEV_NAME), qcacld-3.0) 966c4599c8SYu WangLOCAL_MULTI_KO := true 976c4599c8SYu Wangendif 986c4599c8SYu Wangendif 996c4599c8SYu Wang 1006c4599c8SYu Wangifeq ($(LOCAL_MULTI_KO), true) 1016bff3d33SJeff JohnsonLOCAL_ANDROID_ROOT := $(shell pwd) 1026bff3d33SJeff JohnsonLOCAL_WLAN_BLD_DIR := $(LOCAL_ANDROID_ROOT)/$(WLAN_BLD_DIR) 103243b2afbSMohammed Ahmed$(shell `find $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/ -maxdepth 1 -name '.*' ! -name '.git' -delete`) 104b06fa33bSMohammed Ahmed 105243b2afbSMohammed Ahmedifeq ($(LOCAL_MODULE_DDK_BUILD), true) 106b06fa33bSMohammed Ahmedifeq ($(CHIPSET),) 107b06fa33bSMohammed Ahmed$(foreach chip, $(TARGET_WLAN_CHIP),\ 108b06fa33bSMohammed Ahmed $(eval CHIPSET := $(chip))\ 109b06fa33bSMohammed Ahmed $(eval include $(LOCAL_PATH)/Android.mk)) 110b06fa33bSMohammed Ahmedelse 111243b2afbSMohammed Ahmed# DLKM_DIR was moved for JELLY_BEAN (PLATFORM_SDK 16) 112b06fa33bSMohammed AhmedBAZEL_CHIPSET_NAME := $(subst _,-,$(CHIPSET)) 113243b2afbSMohammed Ahmedifeq ($(call is-platform-sdk-version-at-least,16),true) 114243b2afbSMohammed Ahmed DLKM_DIR := $(TOP)/$(BOARD_COMMON_DIR)/dlkm 115243b2afbSMohammed Ahmedelse 116243b2afbSMohammed Ahmed DLKM_DIR := build/dlkm 117243b2afbSMohammed Ahmedendif # platform-sdk-version 1186c4599c8SYu Wang 119243b2afbSMohammed Ahmedinclude $(CLEAR_VARS) 120243b2afbSMohammed AhmedLOCAL_MOD_NAME := wlan 121b06fa33bSMohammed AhmedLOCAL_MODULE := qca_cld3_$(CHIPSET).ko 122b06fa33bSMohammed AhmedLOCAL_MODULE_KBUILD_NAME := qca_cld3_$(CHIPSET).ko 123243b2afbSMohammed AhmedLOCAL_MODULE_DEBUG_ENABLE := true 124b06fa33bSMohammed AhmedLOCAL_MODULE_DDK_SUBTARGET_REGEX := "all.*" 125243b2afbSMohammed Ahmedifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 126243b2afbSMohammed Ahmed ifeq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true) 127243b2afbSMohammed Ahmed LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) 128243b2afbSMohammed Ahmed else 129243b2afbSMohammed Ahmed LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET) 130243b2afbSMohammed Ahmed endif 131243b2afbSMohammed Ahmedelse 132243b2afbSMohammed Ahmed LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/modules/$(WLAN_CHIPSET) 133243b2afbSMohammed Ahmedendif 134243b2afbSMohammed Ahmed 135243b2afbSMohammed Ahmed 136b06fa33bSMohammed AhmedLOCAL_DEV_NAME := $(CHIPSET) 137243b2afbSMohammed AhmedLOCAL_CHIP_NAME := $(LOCAL_DEV_NAME) 138243b2afbSMohammed AhmedTARGET_MAC_BIN_PATH := /mnt/vendor/persist/$(LOCAL_CHIP_NAME) 139243b2afbSMohammed AhmedTARGET_FW_DIR := firmware/wlan/qca_cld/$(LOCAL_CHIP_NAME) 140243b2afbSMohammed AhmedTARGET_CFG_PATH := /vendor/etc/wifi/$(LOCAL_CHIP_NAME) 141243b2afbSMohammed AhmedTARGET_MAC_BIN_PATH := /mnt/vendor/persist/$(LOCAL_CHIP_NAME) 142243b2afbSMohammed Ahmed 143243b2afbSMohammed Ahmedifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 144243b2afbSMohammed AhmedTARGET_FW_PATH := $(TARGET_OUT_VENDOR)/$(TARGET_FW_DIR) 145243b2afbSMohammed Ahmedelse 146243b2afbSMohammed AhmedTARGET_FW_PATH := $(TARGET_OUT_ETC)/$(TARGET_FW_DIR) 147243b2afbSMohammed Ahmedendif 148243b2afbSMohammed Ahmed 149243b2afbSMohammed Ahmed# Create wlan_mac.bin symbolic link as part of the module 150243b2afbSMohammed Ahmed$(call symlink-file,,$(TARGET_MAC_BIN_PATH)/wlan_mac.bin,$(TARGET_FW_PATH)/wlan_mac.bin) 151243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_FW_PATH)/wlan_mac.bin 152243b2afbSMohammed Ahmed 153243b2afbSMohammed Ahmed# Conditionally create module symbolic link 154243b2afbSMohammed Ahmedifneq ($(findstring $(WLAN_CHIPSET),$(WIFI_DRIVER_DEFAULT)),) 155243b2afbSMohammed Ahmedifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 156243b2afbSMohammed Ahmedifneq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true) 157243b2afbSMohammed Ahmed$(call symlink-file,,$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE),$(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MODULE)) 158243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MODULE) 159243b2afbSMohammed Ahmedendif 160243b2afbSMohammed Ahmedelse 161243b2afbSMohammed Ahmed$(call symlink-file,,/system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE),$(TARGET_OUT)/lib/modules/$(LOCAL_MODULE)) 162243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT)/lib/modules/$(LOCAL_MODULE) 163243b2afbSMohammed Ahmedendif 164243b2afbSMohammed Ahmedendif 165243b2afbSMohammed Ahmed 166243b2afbSMohammed Ahmed# Conditionally create ini symbolic link 167243b2afbSMohammed Ahmedifeq ($(TARGET_BOARD_AUTO),true) 168243b2afbSMohammed Ahmed$(call symlink-file,,$(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini,$(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini) 169243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini 170243b2afbSMohammed Ahmed$(call wlog,"generate soft link because TARGET_BOARD_AUTO true") 171243b2afbSMohammed Ahmedelse 172243b2afbSMohammed Ahmedifneq ($(GENERIC_ODM_IMAGE),true) 173243b2afbSMohammed Ahmed$(call symlink-file,,$(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini,$(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini) 174243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini 175243b2afbSMohammed Ahmed$(call wlog,"generate soft link because GENERIC_ODM_IMAGE not true") 176243b2afbSMohammed Ahmedendif 177243b2afbSMohammed Ahmedendif 178243b2afbSMohammed Ahmed 179243b2afbSMohammed Ahmed# Set dependencies so that CNSS family drivers can be compiled ahead. 180243b2afbSMohammed Ahmedifneq ($(WLAN_PLATFORM_KBUILD_OPTIONS),) 181243b2afbSMohammed AhmedLOCAL_REQUIRED_MODULES := wlan-platform-module-symvers 182243b2afbSMohammed AhmedLOCAL_ADDITIONAL_DEPENDENCIES += $(call intermediates-dir-for,DLKM,wlan-platform-module-symvers)/Module.symvers 183243b2afbSMohammed Ahmedendif 184243b2afbSMohammed Ahmed 185243b2afbSMohammed Ahmed$(call wlog,TARGET_USES_KERNEL_PLATFORM=$(TARGET_USES_KERNEL_PLATFORM)) 186243b2afbSMohammed Ahmedifeq ($(TARGET_USES_KERNEL_PLATFORM),true) 187243b2afbSMohammed Ahmed include $(DLKM_DIR)/Build_external_kernelmodule.mk 188243b2afbSMohammed Ahmedelse 189243b2afbSMohammed Ahmed include $(DLKM_DIR)/AndroidKernelModule.mk 190243b2afbSMohammed Ahmedendif 191b06fa33bSMohammed Ahmedendif 192243b2afbSMohammed Ahmedelse 1936bff3d33SJeff Johnson$(foreach chip, $(TARGET_WLAN_CHIP), \ 1946bff3d33SJeff Johnson $(shell ln -sf . $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/.$(chip))) 1958cf2c24eSYu Wanginclude $(foreach chip, $(TARGET_WLAN_CHIP), $(LOCAL_PATH)/.$(chip)/Android.mk) 196243b2afbSMohammed Ahmedendif 1976c4599c8SYu Wang 1986c4599c8SYu Wangelse # Multi-ok check 1996c4599c8SYu Wang 2007eea98dcSZhaoyang Liu# When dual wlan enabled, secondary dev name would be $(chip)_cnss2. 2017eea98dcSZhaoyang Liu# Use LOCAL_CHIP_NAME instead of LOCAL_DEV_NAME for secondary one. 2027eea98dcSZhaoyang LiuLOCAL_CHIP_NAME := $(LOCAL_DEV_NAME) 2037eea98dcSZhaoyang LiuTARGET_SECONDARY_WLAN := $(call target_is_dual_wlan,$(LOCAL_DEV_NAME)) 2047eea98dcSZhaoyang Liuifeq ($(TARGET_SECONDARY_WLAN), true) 2057eea98dcSZhaoyang LiuLOCAL_CHIP_NAME := $(patsubst %_cnss2,%,$(strip $(LOCAL_DEV_NAME))) 2067eea98dcSZhaoyang Liuendif 2077eea98dcSZhaoyang Liu 208d8ef4743SSurabhi Vishnoiifeq ($(WLAN_PROFILE),) 2094b136b1cSMahesh Kumar Kalikot VeetilWLAN_PROFILE := default 210d8ef4743SSurabhi Vishnoiendif 2114b136b1cSMahesh Kumar Kalikot Veetil 2127d866f69SYu Wangifeq ($(LOCAL_DEV_NAME), qcacld-3.0) 2137d866f69SYu Wang 2147d866f69SYu WangLOCAL_DEV_NAME := wlan 2156c4599c8SYu WangLOCAL_MOD_NAME := wlan 2166c4599c8SYu WangLOCAL_SRC_DIR := 2176c4599c8SYu WangTARGET_FW_DIR := firmware/wlan/qca_cld 2186c4599c8SYu WangTARGET_CFG_PATH := /vendor/etc/wifi 2196c4599c8SYu WangTARGET_MAC_BIN_PATH := /mnt/vendor/persist 2207d866f69SYu Wang 2216c4599c8SYu Wangelse 2227d866f69SYu Wang 2238cf2c24eSYu WangLOCAL_SRC_DIR := .$(LOCAL_DEV_NAME) 2244b136b1cSMahesh Kumar Kalikot Veetil# Use default profile if WLAN_CFG_USE_DEFAULT defined. 2254b136b1cSMahesh Kumar Kalikot Veetilifeq ($(WLAN_CFG_USE_DEFAULT),) 2267eea98dcSZhaoyang LiuWLAN_PROFILE := $(LOCAL_CHIP_NAME) 2274b136b1cSMahesh Kumar Kalikot Veetilendif 2287eea98dcSZhaoyang LiuTARGET_FW_DIR := firmware/wlan/qca_cld/$(LOCAL_CHIP_NAME) 2297eea98dcSZhaoyang LiuTARGET_CFG_PATH := /vendor/etc/wifi/$(LOCAL_CHIP_NAME) 2307eea98dcSZhaoyang LiuTARGET_MAC_BIN_PATH := /mnt/vendor/persist/$(LOCAL_CHIP_NAME) 2317d866f69SYu Wang 2327d866f69SYu Wangifneq ($(TARGET_MULTI_WLAN), true) 2337d866f69SYu WangLOCAL_MOD_NAME := wlan 2347d866f69SYu WangDYNAMIC_SINGLE_CHIP := $(LOCAL_DEV_NAME) 2357d866f69SYu Wangelse 2367d866f69SYu WangLOCAL_MOD_NAME := $(LOCAL_DEV_NAME) 2377d866f69SYu Wangendif 2387d866f69SYu Wang 2397eea98dcSZhaoyang Liuifeq ($(TARGET_SECONDARY_WLAN), true) 2404bf8ee08SYu OuyangTARGET_SECONDARY_WLAN_NUMBER := 2 2414bf8ee08SYu OuyangLOCAL_MOD_NAME := $(LOCAL_CHIP_NAME)_$(TARGET_SECONDARY_WLAN_NUMBER) 2427eea98dcSZhaoyang LiuDYNAMIC_SINGLE_CHIP := $(LOCAL_CHIP_NAME) 2437eea98dcSZhaoyang Liuendif 2447eea98dcSZhaoyang Liu 2456c4599c8SYu Wangendif 2466c4599c8SYu Wang 2477090c5fdSPrakash Dhavali# DLKM_DIR was moved for JELLY_BEAN (PLATFORM_SDK 16) 2487090c5fdSPrakash Dhavaliifeq ($(call is-platform-sdk-version-at-least,16),true) 249a89f1924SKomal Maheshwari DLKM_DIR := $(TOP)/$(BOARD_COMMON_DIR)/dlkm 2507090c5fdSPrakash Dhavalielse 2517090c5fdSPrakash Dhavali DLKM_DIR := build/dlkm 2527090c5fdSPrakash Dhavaliendif # platform-sdk-version 2537090c5fdSPrakash Dhavali 2547090c5fdSPrakash Dhavali# Build wlan.ko as $(WLAN_CHIPSET)_wlan.ko 2557090c5fdSPrakash Dhavali########################################################### 2567090c5fdSPrakash Dhavali# This is set once per LOCAL_PATH, not per (kernel) module 2576c4599c8SYu WangKBUILD_OPTIONS := WLAN_ROOT=$(WLAN_BLD_DIR)/qcacld-3.0/$(LOCAL_SRC_DIR) 258e5d65fc8SJeff JohnsonKBUILD_OPTIONS += WLAN_COMMON_ROOT=cmn 259e5d65fc8SJeff JohnsonKBUILD_OPTIONS += WLAN_COMMON_INC=$(WLAN_BLD_DIR)/qcacld-3.0/cmn 2606c4599c8SYu WangKBUILD_OPTIONS += WLAN_FW_API=$(WLAN_BLD_DIR)/fw-api 2616c4599c8SYu WangKBUILD_OPTIONS += WLAN_PROFILE=$(WLAN_PROFILE) 2627d866f69SYu WangKBUILD_OPTIONS += DYNAMIC_SINGLE_CHIP=$(DYNAMIC_SINGLE_CHIP) 26308abad6cSPrakash Dhavali 2647090c5fdSPrakash Dhavali# We are actually building wlan.ko here, as per the 2657090c5fdSPrakash Dhavali# requirement we are specifying <chipset>_wlan.ko as LOCAL_MODULE. 2667090c5fdSPrakash Dhavali# This means we need to rename the module to <chipset>_wlan.ko 2677090c5fdSPrakash Dhavali# after wlan.ko is built. 2686c4599c8SYu WangKBUILD_OPTIONS += MODNAME=$(LOCAL_MOD_NAME) 269f91c461dSAditya KodukulaKBUILD_OPTIONS += DEVNAME=$(LOCAL_DEV_NAME) 2707090c5fdSPrakash DhavaliKBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM) 2717090c5fdSPrakash DhavaliKBUILD_OPTIONS += $(WLAN_SELECT) 2727090c5fdSPrakash Dhavali 273716b35abSNamita NairKBUILD_REQUIRED_KOS := ipam.ko 274716b35abSNamita Nair 275baff800eSYu Wangifneq ($(WLAN_CFG_OVERRIDE_$(LOCAL_DEV_NAME)),) 276baff800eSYu WangKBUILD_OPTIONS += WLAN_CFG_OVERRIDE="$(WLAN_CFG_OVERRIDE_$(LOCAL_DEV_NAME))" 277baff800eSYu Wangendif 278baff800eSYu Wang 2797eea98dcSZhaoyang Liu# driver expects "/dev/<name>" for wifi driver state ctrl parameter. 2807eea98dcSZhaoyang Liu# i.e. WIFI_DRIVER_STATE_CTRL_PARAM="/dev/wlan" is defined for single wlan. 2817eea98dcSZhaoyang Liu# WIFI_DRIVER_STATE_CTRL_PARAM_SECONDARY="/dev/wlan2" is defined for 2nd wlan. 2827eea98dcSZhaoyang Liuifeq ($(TARGET_SECONDARY_WLAN), true) 2837eea98dcSZhaoyang Liu$(call wlog,STATE_CTRL_PARAM_SECONDARY=$(WIFI_DRIVER_STATE_CTRL_PARAM_SECONDARY)) 2847eea98dcSZhaoyang LiuPARAM_SECONDARY := $(patsubst "%",%,$(WIFI_DRIVER_STATE_CTRL_PARAM_SECONDARY)) 2857eea98dcSZhaoyang Liu$(call wlog,PARAM_SECONDARY=$(PARAM_SECONDARY)) 2867eea98dcSZhaoyang Liuifeq ($(dir $(PARAM_SECONDARY)),/dev/) 2877eea98dcSZhaoyang LiuKBUILD_OPTIONS += WLAN_CTRL_NAME=$(notdir $(PARAM_SECONDARY)) 2887eea98dcSZhaoyang Liuendif 2897eea98dcSZhaoyang Liuelse 290216957b4SJeff Johnson$(call wlog,WIFI_DRIVER_STATE_CTRL_PARAM=$(WIFI_DRIVER_STATE_CTRL_PARAM)) 291216957b4SJeff JohnsonPARAM := $(patsubst "%",%,$(WIFI_DRIVER_STATE_CTRL_PARAM)) 292216957b4SJeff Johnson$(call wlog,PARAM=$(PARAM)) 293216957b4SJeff Johnsonifeq ($(dir $(PARAM)),/dev/) 294216957b4SJeff JohnsonKBUILD_OPTIONS += WLAN_CTRL_NAME=$(notdir $(PARAM)) 295216957b4SJeff Johnsonendif 2967eea98dcSZhaoyang Liuendif 297216957b4SJeff Johnson 2989cc41114SMahesh Kumar Kalikot Veetil# Pass build options per chip to Kbuild. This will be injected from upper layer 2999cc41114SMahesh Kumar Kalikot Veetil# makefile. 3009cc41114SMahesh Kumar Kalikot Veetil# 3019cc41114SMahesh Kumar Kalikot Veetil# e.g. 3029cc41114SMahesh Kumar Kalikot Veetil# WLAN_KBUILD_OPTIONS_qca6390 := CONFIG_CNSS_QCA6390=y 3039cc41114SMahesh Kumar Kalikot Veetilifneq ($(WLAN_KBUILD_OPTIONS_$(LOCAL_DEV_NAME)),) 3049cc41114SMahesh Kumar Kalikot VeetilKBUILD_OPTIONS += "$(WLAN_KBUILD_OPTIONS_$(LOCAL_DEV_NAME))" 3059cc41114SMahesh Kumar Kalikot Veetilendif 3069cc41114SMahesh Kumar Kalikot Veetil 307a2f607aaSJeff Johnsonifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 308a2f607aaSJeff JohnsonTARGET_FW_PATH := $(TARGET_OUT_VENDOR)/$(TARGET_FW_DIR) 309a2f607aaSJeff Johnsonelse 310a2f607aaSJeff JohnsonTARGET_FW_PATH := $(TARGET_OUT_ETC)/$(TARGET_FW_DIR) 311a2f607aaSJeff Johnsonendif 312a2f607aaSJeff Johnson 313db747806SYue Ma# WLAN_PLATFORM_KBUILD_OPTIONS should be passed from upper level Makefiles 314db747806SYue Ma# like wlan.mk. It indicates sources of CNSS family drivers (cnss2, cnss_nl, 315db747806SYue Ma# cnss_prealloc and cnss_utils etc.) are built out of kernel tree and it 316db747806SYue Ma# should also include all necessary config flags (e.g. CONFIG_CNSS2) which 317db747806SYue Ma# are originally defined from kernel Kconfig/defconfig. KBUILD_EXTRA_SYMBOLS 318db747806SYue Ma# is also needed to indicate all the symbols from these drivers. 319db747806SYue Maifneq ($(WLAN_PLATFORM_KBUILD_OPTIONS),) 320db747806SYue MaKBUILD_OPTIONS += $(foreach wlan_platform_kbuild_option, \ 321db747806SYue Ma $(WLAN_PLATFORM_KBUILD_OPTIONS), \ 322db747806SYue Ma $(wlan_platform_kbuild_option)) 323db747806SYue Ma 324716b35abSNamita NairKBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS+=$(shell pwd)/$(call intermediates-dir-for,DLKM,wlan-platform-module-symvers)/Module.symvers 325db747806SYue Maendif 326db747806SYue Ma 3277090c5fdSPrakash Dhavaliinclude $(CLEAR_VARS) 328a2f607aaSJeff Johnson 329a2f607aaSJeff Johnson# Create the module 3307d866f69SYu WangLOCAL_MODULE := $(WLAN_CHIPSET)_$(LOCAL_DEV_NAME).ko 3316c4599c8SYu WangLOCAL_MODULE_KBUILD_NAME := $(LOCAL_MOD_NAME).ko 3327090c5fdSPrakash DhavaliLOCAL_MODULE_DEBUG_ENABLE := true 33364271516SSameer Thalappilifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 33464271516SSameer Thalappil ifeq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true) 33564271516SSameer Thalappil LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) 33664271516SSameer Thalappil else 337b4d7b211SSameer Thalappil LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET) 33864271516SSameer Thalappil endif 33964271516SSameer Thalappilelse 3407090c5fdSPrakash Dhavali LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/modules/$(WLAN_CHIPSET) 34164271516SSameer Thalappilendif 34264271516SSameer Thalappil 343a2f607aaSJeff Johnson# Create wlan_mac.bin symbolic link as part of the module 344a2f607aaSJeff Johnson$(call symlink-file,,$(TARGET_MAC_BIN_PATH)/wlan_mac.bin,$(TARGET_FW_PATH)/wlan_mac.bin) 345a2f607aaSJeff JohnsonLOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_FW_PATH)/wlan_mac.bin 346a2f607aaSJeff Johnson 347a2f607aaSJeff Johnson# Conditionally create module symbolic link 348a2f607aaSJeff Johnsonifneq ($(findstring $(WLAN_CHIPSET),$(WIFI_DRIVER_DEFAULT)),) 349a2f607aaSJeff Johnsonifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) 350a2f607aaSJeff Johnsonifneq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),true) 351a2f607aaSJeff Johnson$(call symlink-file,,$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE),$(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MODULE)) 352a2f607aaSJeff JohnsonLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MODULE) 353a2f607aaSJeff Johnsonendif 354a2f607aaSJeff Johnsonelse 355a2f607aaSJeff Johnson$(call symlink-file,,/system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE),$(TARGET_OUT)/lib/modules/$(LOCAL_MODULE)) 356a2f607aaSJeff JohnsonLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT)/lib/modules/$(LOCAL_MODULE) 357a2f607aaSJeff Johnsonendif 358a2f607aaSJeff Johnsonendif 359a2f607aaSJeff Johnson 360a2f607aaSJeff Johnson# Conditionally create ini symbolic link 361a2f607aaSJeff Johnsonifeq ($(TARGET_BOARD_AUTO),true) 362a2f607aaSJeff Johnson$(call symlink-file,,$(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini,$(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini) 363a2f607aaSJeff JohnsonLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini 364a2f607aaSJeff Johnson$(call wlog,"generate soft link because TARGET_BOARD_AUTO true") 365a2f607aaSJeff Johnsonelse 366a2f607aaSJeff Johnsonifneq ($(GENERIC_ODM_IMAGE),true) 367a2f607aaSJeff Johnson$(call symlink-file,,$(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini,$(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini) 368a2f607aaSJeff JohnsonLOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini 369a2f607aaSJeff Johnson$(call wlog,"generate soft link because GENERIC_ODM_IMAGE not true") 370a2f607aaSJeff Johnsonendif 371a2f607aaSJeff Johnsonendif 372a2f607aaSJeff Johnson 373db747806SYue Ma# Set dependencies so that CNSS family drivers can be compiled ahead. 374db747806SYue Maifneq ($(WLAN_PLATFORM_KBUILD_OPTIONS),) 375db747806SYue MaLOCAL_REQUIRED_MODULES := wlan-platform-module-symvers 376db747806SYue MaLOCAL_ADDITIONAL_DEPENDENCIES += $(call intermediates-dir-for,DLKM,wlan-platform-module-symvers)/Module.symvers 377db747806SYue Maendif 378db747806SYue Ma 3797d2bb431SJeff Johnson$(call wlog,TARGET_USES_KERNEL_PLATFORM=$(TARGET_USES_KERNEL_PLATFORM)) 3807d2bb431SJeff Johnsonifeq ($(TARGET_USES_KERNEL_PLATFORM),true) 381d7e399e9SJeff Johnson include $(DLKM_DIR)/Build_external_kernelmodule.mk 382d7e399e9SJeff Johnsonelse 3837090c5fdSPrakash Dhavali include $(DLKM_DIR)/AndroidKernelModule.mk 384d7e399e9SJeff Johnsonendif 3857090c5fdSPrakash Dhavali 3866c4599c8SYu Wangendif # Multi-ko check 3877090c5fdSPrakash Dhavaliendif # DLKM check 3887090c5fdSPrakash Dhavaliendif # supported target check 3897090c5fdSPrakash Dhavaliendif # WLAN enabled check 39056a9bf7fSSmita Ghoshendif # ENABLE_QCACLD 391