cld: Initial push of cld to opensource Code Aurora Forum

Initial push of cld to opensource Code Aaurora Forum
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bec0707
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,1054 @@
+# We can build either as part of a standalone Kernel build or part
+# of an Android build.  Determine which mechanism is being used
+#ifeq ($(MODNAME),)
+#	KERNEL_BUILD := 1
+#else
+#	KERNEL_BUILD := 0
+#endif
+
+#ifeq ($(KERNEL_BUILD),1)
+	# These are provided in Android-based builds
+	# Need to explicitly define for Kernel-based builds
+	MODNAME := wlan
+	WLAN_ROOT := $(shell pwd)
+#endif
+
+#ifeq ($(KERNEL_BUILD),0)
+	# These are configurable via Kconfig for kernel-based builds
+	# Need to explicitly configure for Android-based builds
+
+	#Flag to enable BlueTooth AMP feature
+	CONFIG_PRIMA_WLAN_BTAMP := n
+
+	#Flag to enable Legacy Fast Roaming(LFR)
+	CONFIG_PRIMA_WLAN_LFR := y
+
+	#JB kernel has PMKSA patches, hence enabling this flag
+	CONFIG_PRIMA_WLAN_OKC := y
+
+	# JB kernel has CPU enablement patches, so enable
+	CONFIG_PRIMA_WLAN_11AC_HIGH_TP := n
+
+	#Flag to enable TDLS feature
+	CONFIG_QCOM_TDLS := n
+
+	#Flag to enable Fast Transition (11r) feature
+	ifeq ($(CONFIG_PRONTO_WLAN), m)
+	CONFIG_QCOM_VOWIFI_11R := y
+	endif
+
+	#Flag to enable Protected Managment Frames (11w) feature
+	ifneq ($(CONFIG_PRONTO_WLAN),)
+	CONFIG_WLAN_FEATURE_11W := y
+	endif
+
+#endif
+
+# Feature flags which are not (currently) configurable via Kconfig
+
+#Whether to build debug version
+BUILD_DEBUG_VERSION := 1
+
+#Enable this flag to build driver in diag version
+BUILD_DIAG_VERSION := 0
+
+#Do we panic on bug?  default is to warn
+PANIC_ON_BUG := 0
+
+#Re-enable wifi on WDI timeout
+RE_ENABLE_WIFI_ON_WDI_TIMEOUT := 0
+
+#Enable to compile converged driver (CLD)
+#Disable to compile cld (default)
+CONFIG_QCA_WIFI_2_0 := 1
+
+#Enable to compile for integrated SOC (common for prima and CLD)
+#Disable to compile for discrete
+CONFIG_QCA_WIFI_ISOC := 0
+
+#Enable OS specific ADF abstraction
+CONFIG_ADF_SUPPORT := 1
+
+#Enable OL debug and wmi unified functions
+CONFIG_ATH_PERF_PWR_OFFLOAD := 1
+
+#Disable packet log
+CONFIG_REMOVE_PKT_LOG := 0
+
+#Enable 11AC TX
+CONFIG_ATH_11AC_TXCOMPACT := 1
+
+#Enable OS specific IRQ abstraction
+CONFIG_ATH_SUPPORT_SHARED_IRQ := 1
+
+#Enable message based HIF instead of RAW access in BMI
+CONFIG_HIF_MESSAGE_BASED := 1
+
+#Enable PCI specific APIS (dma, etc)
+CONFIG_HIF_PCI := 1
+
+#Enable pci read/write config functions
+CONFIG_ATH_PCI := 1
+
+#Enable power management suspend/resume functionality to PCI
+CONFIG_ATH_BUS_PM := 1
+
+#Enable dword alignment for IP header
+CONFIG_IP_HDR_ALIGNMENT := 0
+
+#Enable FLOWMAC module support
+CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := 0
+
+#Enable spectral support
+CONFIG_ATH_SUPPORT_SPECTRAL := 0
+
+#Enable HOST statistics support
+CONFIG_SUPPORT_HOST_STATISTICS := 0
+
+#Enable WDI Event support
+CONFIG_WDI_EVENT_ENABLE := 1
+
+#Endianess selection
+CONFIG_LITTLE_ENDIAN := 1
+
+#Enable TX reclaim support
+CONFIG_TX_CREDIT_RECLAIM_SUPPORT := 0
+
+#Enable FTM support
+CONFIG_QCA_WIFI_FTM := 0
+
+#Enable Checksum Offload
+CONFIG_CHECKSUM_OFFLOAD := 1
+
+#Enable GTK offload
+CONFIG_GTK_OFFLOAD := 0
+
+ifeq ($(CONFIG_CFG80211),y)
+HAVE_CFG80211 := 1
+else
+ifeq ($(CONFIG_CFG80211),m)
+HAVE_CFG80211 := 1
+else
+HAVE_CFG80211 := 0
+endif
+endif
+
+############ COMMON ############
+COMMON_DIR :=	CORE/SERVICES/COMMON
+COMMON_INC :=	-I$(WLAN_ROOT)/$(COMMON_DIR)
+
+############ ADF ##############
+ADF_DIR	:=	$(COMMON_DIR)/adf
+ADF_INC :=	-I$(WLAN_ROOT)/$(ADF_DIR) \
+		-I$(WLAN_ROOT)/$(ADF_DIR)/linux \
+		-I$(WLAN_ROOT)/$(COMMON_DIR)/asf
+
+ADF_OBJS :=     $(ADF_DIR)/adf_nbuf.o \
+                $(ADF_DIR)/adf_os_lock.o \
+                $(ADF_DIR)/adf_os_mem.o \
+                $(ADF_DIR)/linux/adf_os_lock_pvt.o
+
+############ BAP ############
+BAP_DIR :=	CORE/BAP
+BAP_INC_DIR :=	$(BAP_DIR)/inc
+BAP_SRC_DIR :=	$(BAP_DIR)/src
+
+BAP_INC := 	-I$(WLAN_ROOT)/$(BAP_INC_DIR) \
+		-I$(WLAN_ROOT)/$(BAP_SRC_DIR)
+
+BAP_OBJS := 	$(BAP_SRC_DIR)/bapApiData.o \
+		$(BAP_SRC_DIR)/bapApiDebug.o \
+		$(BAP_SRC_DIR)/bapApiExt.o \
+		$(BAP_SRC_DIR)/bapApiHCBB.o \
+		$(BAP_SRC_DIR)/bapApiInfo.o \
+		$(BAP_SRC_DIR)/bapApiLinkCntl.o \
+		$(BAP_SRC_DIR)/bapApiLinkSupervision.o \
+		$(BAP_SRC_DIR)/bapApiStatus.o \
+		$(BAP_SRC_DIR)/bapApiTimer.o \
+		$(BAP_SRC_DIR)/bapModule.o \
+		$(BAP_SRC_DIR)/bapRsn8021xAuthFsm.o \
+		$(BAP_SRC_DIR)/bapRsn8021xPrf.o \
+		$(BAP_SRC_DIR)/bapRsn8021xSuppRsnFsm.o \
+		$(BAP_SRC_DIR)/bapRsnAsfPacket.o \
+		$(BAP_SRC_DIR)/bapRsnSsmAesKeyWrap.o \
+		$(BAP_SRC_DIR)/bapRsnSsmEapol.o \
+		$(BAP_SRC_DIR)/bapRsnSsmReplayCtr.o \
+		$(BAP_SRC_DIR)/bapRsnTxRx.o \
+		$(BAP_SRC_DIR)/btampFsm.o \
+		$(BAP_SRC_DIR)/btampHCI.o
+
+############ DXE ############
+DXE_DIR :=      CORE/DXE
+DXE_INC_DIR :=  $(DXE_DIR)/inc
+DXE_SRC_DIR :=  $(DXE_DIR)/src
+
+DXE_INC :=      -I$(WLAN_ROOT)/$(DXE_INC_DIR) \
+                -I$(WLAN_ROOT)/$(DXE_SRC_DIR)
+
+HIF_DXE_DIR :=  CORE/SERVICES/HIF/DXE
+HIF_DXE_INC :=  -I$(WLAN_ROOT)/$(HIF_DXE_DIR)
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+DXE_OBJS =      $(DXE_SRC_DIR)/wlan_qct_dxe.o \
+                $(DXE_SRC_DIR)/wlan_qct_dxe_cfg_i.o
+else
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 1)
+HIF_DXE_INC :=  -I$(WLAN_ROOT)/$(HIF_DXE_DIR) \
+		-I$(WLAN_ROOT)/$(HIF_DXE_DIR)/linux
+
+HIF_DXE_OBJS:=  $(HIF_DXE_DIR)/hif_dxe.o \
+                $(HIF_DXE_DIR)/hif_dxe_config.o \
+                $(HIF_DXE_DIR)/linux/hif_dxe_os.o \
+                $(HIF_DXE_DIR)/dmux_dxe.o \
+                $(DXE_DIR)/htt_dxe_tx.o \
+                $(DXE_DIR)/htt_dxe_fw_stats.o \
+                $(DXE_DIR)/htt_dxe_h2t.o \
+                $(DXE_DIR)/htt_dxe_t2h.o \
+                $(DXE_DIR)/htt_dxe.o \
+                $(DXE_DIR)/htt_dxe_rx.o
+
+DXE_INC += $(HIF_DXE_INC)
+DXE_OBJS := $(HIF_DXE_OBJS)
+endif
+endif
+
+############ HDD ############
+HDD_DIR :=	CORE/HDD
+HDD_INC_DIR :=	$(HDD_DIR)/inc
+HDD_SRC_DIR :=	$(HDD_DIR)/src
+
+HDD_INC := 	-I$(WLAN_ROOT)/$(HDD_INC_DIR) \
+		-I$(WLAN_ROOT)/$(HDD_SRC_DIR)
+
+HDD_OBJS := 	$(HDD_SRC_DIR)/bap_hdd_main.o \
+		$(HDD_SRC_DIR)/wlan_hdd_assoc.o \
+		$(HDD_SRC_DIR)/wlan_hdd_cfg.o \
+		$(HDD_SRC_DIR)/wlan_hdd_dev_pwr.o \
+		$(HDD_SRC_DIR)/wlan_hdd_dp_utils.o \
+		$(HDD_SRC_DIR)/wlan_hdd_early_suspend.o \
+		$(HDD_SRC_DIR)/wlan_hdd_ftm.o \
+		$(HDD_SRC_DIR)/wlan_hdd_hostapd.o \
+		$(HDD_SRC_DIR)/wlan_hdd_oemdata.o \
+		$(HDD_SRC_DIR)/wlan_hdd_main.o \
+		$(HDD_SRC_DIR)/wlan_hdd_mib.o \
+		$(HDD_SRC_DIR)/wlan_hdd_scan.o \
+		$(HDD_SRC_DIR)/wlan_hdd_softap_tx_rx.o \
+		$(HDD_SRC_DIR)/wlan_hdd_tx_rx.o \
+		$(HDD_SRC_DIR)/wlan_hdd_wext.o \
+		$(HDD_SRC_DIR)/wlan_hdd_wmm.o \
+		$(HDD_SRC_DIR)/wlan_hdd_wowl.o
+
+ifeq ($(HAVE_CFG80211),1)
+HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_cfg80211.o \
+		$(HDD_SRC_DIR)/wlan_hdd_p2p.o
+endif
+
+ifeq ($(CONFIG_QCOM_TDLS),y)
+HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_tdls.o
+endif
+
+############ MAC ############
+MAC_DIR :=	CORE/MAC
+MAC_INC_DIR :=	$(MAC_DIR)/inc
+MAC_SRC_DIR :=	$(MAC_DIR)/src
+
+MAC_INC := 	-I$(WLAN_ROOT)/$(MAC_INC_DIR) \
+		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/dph \
+		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/include \
+		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/include \
+		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/lim
+
+MAC_CFG_OBJS := $(MAC_SRC_DIR)/cfg/cfgApi.o \
+		$(MAC_SRC_DIR)/cfg/cfgDebug.o \
+		$(MAC_SRC_DIR)/cfg/cfgParamName.o \
+		$(MAC_SRC_DIR)/cfg/cfgProcMsg.o \
+		$(MAC_SRC_DIR)/cfg/cfgSendMsg.o
+
+MAC_DPH_OBJS :=	$(MAC_SRC_DIR)/dph/dphHashTable.o
+
+MAC_LIM_OBJS := $(MAC_SRC_DIR)/pe/lim/limAIDmgmt.o \
+		$(MAC_SRC_DIR)/pe/lim/limAdmitControl.o \
+		$(MAC_SRC_DIR)/pe/lim/limApi.o \
+		$(MAC_SRC_DIR)/pe/lim/limAssocUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limDebug.o \
+		$(MAC_SRC_DIR)/pe/lim/limFT.o \
+		$(MAC_SRC_DIR)/pe/lim/limIbssPeerMgmt.o \
+		$(MAC_SRC_DIR)/pe/lim/limLinkMonitoringAlgo.o \
+		$(MAC_SRC_DIR)/pe/lim/limLogDump.o \
+		$(MAC_SRC_DIR)/pe/lim/limP2P.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessActionFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessAssocReqFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessAssocRspFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessAuthFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessBeaconFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessCfgUpdates.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessDeauthFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessDisassocFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessLmmMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessMessageQueue.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessMlmReqMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessMlmRspMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessProbeReqFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessProbeRspFrame.o \
+		$(MAC_SRC_DIR)/pe/lim/limProcessSmeReqMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limPropExtsUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limRoamingAlgo.o \
+		$(MAC_SRC_DIR)/pe/lim/limScanResultUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limSecurityUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limSendManagementFrames.o \
+		$(MAC_SRC_DIR)/pe/lim/limSendMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limSendSmeRspMessages.o \
+		$(MAC_SRC_DIR)/pe/lim/limSerDesUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limSession.o \
+		$(MAC_SRC_DIR)/pe/lim/limSessionUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limSmeReqUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limStaHashApi.o \
+		$(MAC_SRC_DIR)/pe/lim/limTimerUtils.o \
+		$(MAC_SRC_DIR)/pe/lim/limTrace.o \
+		$(MAC_SRC_DIR)/pe/lim/limUtils.o
+
+ifeq ($(CONFIG_QCOM_CCX),y)
+MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/limProcessCcxFrame.o
+endif
+
+ifeq ($(CONFIG_QCOM_TDLS),y)
+MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/limProcessTdls.o
+endif
+
+MAC_PMM_OBJS := $(MAC_SRC_DIR)/pe/pmm/pmmAP.o \
+		$(MAC_SRC_DIR)/pe/pmm/pmmApi.o \
+		$(MAC_SRC_DIR)/pe/pmm/pmmDebug.o
+
+MAC_SCH_OBJS := $(MAC_SRC_DIR)/pe/sch/schApi.o \
+		$(MAC_SRC_DIR)/pe/sch/schBeaconGen.o \
+		$(MAC_SRC_DIR)/pe/sch/schBeaconProcess.o \
+		$(MAC_SRC_DIR)/pe/sch/schDebug.o \
+		$(MAC_SRC_DIR)/pe/sch/schMessage.o
+
+MAC_RRM_OBJS :=	$(MAC_SRC_DIR)/pe/rrm/rrmApi.o
+
+MAC_OBJS := 	$(MAC_CFG_OBJS) \
+		$(MAC_DPH_OBJS) \
+		$(MAC_LIM_OBJS) \
+		$(MAC_PMM_OBJS) \
+		$(MAC_SCH_OBJS) \
+		$(MAC_RRM_OBJS)
+
+############ SAP ############
+SAP_DIR :=	CORE/SAP
+SAP_INC_DIR :=	$(SAP_DIR)/inc
+SAP_SRC_DIR :=	$(SAP_DIR)/src
+
+SAP_INC := 	-I$(WLAN_ROOT)/$(SAP_INC_DIR) \
+		-I$(WLAN_ROOT)/$(SAP_SRC_DIR)
+
+SAP_OBJS :=	$(SAP_SRC_DIR)/sapApiLinkCntl.o \
+		$(SAP_SRC_DIR)/sapChSelect.o \
+		$(SAP_SRC_DIR)/sapFsm.o \
+		$(SAP_SRC_DIR)/sapModule.o
+
+############ SME ############
+SME_DIR :=	CORE/SME
+SME_INC_DIR :=	$(SME_DIR)/inc
+SME_SRC_DIR :=	$(SME_DIR)/src
+
+SME_INC := 	-I$(WLAN_ROOT)/$(SME_INC_DIR) \
+		-I$(WLAN_ROOT)/$(SME_SRC_DIR)/csr
+
+SME_CCM_OBJS := $(SME_SRC_DIR)/ccm/ccmApi.o \
+		$(SME_SRC_DIR)/ccm/ccmLogDump.o
+
+SME_CSR_OBJS := $(SME_SRC_DIR)/csr/csrApiRoam.o \
+		$(SME_SRC_DIR)/csr/csrApiScan.o \
+		$(SME_SRC_DIR)/csr/csrCmdProcess.o \
+		$(SME_SRC_DIR)/csr/csrLinkList.o \
+		$(SME_SRC_DIR)/csr/csrLogDump.o \
+		$(SME_SRC_DIR)/csr/csrNeighborRoam.o \
+		$(SME_SRC_DIR)/csr/csrUtil.o
+
+ifeq ($(CONFIG_QCOM_CCX),y)
+SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csrCcx.o
+endif
+
+ifeq ($(CONFIG_QCOM_TDLS),y)
+SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csrTdlsProcess.o
+endif
+
+SME_PMC_OBJS := $(SME_SRC_DIR)/pmc/pmcApi.o \
+		$(SME_SRC_DIR)/pmc/pmc.o \
+		$(SME_SRC_DIR)/pmc/pmcLogDump.o
+
+SME_QOS_OBJS := $(SME_SRC_DIR)/QoS/sme_Qos.o
+
+SME_CMN_OBJS := $(SME_SRC_DIR)/sme_common/sme_Api.o \
+		$(SME_SRC_DIR)/sme_common/sme_FTApi.o
+
+SME_BTC_OBJS := $(SME_SRC_DIR)/btc/btcApi.o
+
+SME_OEM_DATA_OBJS := $(SME_SRC_DIR)/oemData/oemDataApi.o
+
+SME_P2P_OBJS = $(SME_SRC_DIR)/p2p/p2p_Api.o
+
+SME_RRM_OBJS := $(SME_SRC_DIR)/rrm/sme_rrm.o
+
+SME_OBJS :=	$(SME_BTC_OBJS) \
+		$(SME_CCM_OBJS) \
+		$(SME_CMN_OBJS) \
+		$(SME_CSR_OBJS) \
+		$(SME_OEM_DATA_OBJS) \
+		$(SME_P2P_OBJS) \
+		$(SME_PMC_OBJS) \
+		$(SME_QOS_OBJS) \
+		$(SME_RRM_OBJS)
+
+############ SVC ############
+SVC_DIR :=	CORE/SVC
+SVC_INC_DIR :=	$(SVC_DIR)/inc
+SVC_SRC_DIR :=	$(SVC_DIR)/src
+
+SVC_INC := 	-I$(WLAN_ROOT)/$(SVC_INC_DIR) \
+		-I$(WLAN_ROOT)/$(SVC_DIR)/external
+
+BTC_SRC_DIR :=	$(SVC_SRC_DIR)/btc
+BTC_OBJS :=	$(BTC_SRC_DIR)/wlan_btc_svc.o
+
+NLINK_SRC_DIR := $(SVC_SRC_DIR)/nlink
+NLINK_OBJS :=	$(NLINK_SRC_DIR)/wlan_nlink_srv.o
+
+PTT_SRC_DIR :=	$(SVC_SRC_DIR)/ptt
+PTT_OBJS :=	$(PTT_SRC_DIR)/wlan_ptt_sock_svc.o
+
+SVC_OBJS :=	$(BTC_OBJS) \
+		$(NLINK_OBJS) \
+		$(PTT_OBJS)
+
+############ SYS ############
+SYS_DIR :=	CORE/SYS
+
+SYS_INC := 	-I$(WLAN_ROOT)/$(SYS_DIR)/common/inc \
+		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/pal/inc \
+		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/platform/inc \
+		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/system/inc \
+		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/utils/inc
+
+SYS_COMMON_SRC_DIR := $(SYS_DIR)/common/src
+SYS_LEGACY_SRC_DIR := $(SYS_DIR)/legacy/src
+SYS_OBJS :=	$(SYS_COMMON_SRC_DIR)/wlan_qct_sys.o \
+		$(SYS_LEGACY_SRC_DIR)/pal/src/palApiComm.o \
+		$(SYS_LEGACY_SRC_DIR)/pal/src/palTimer.o \
+		$(SYS_LEGACY_SRC_DIR)/platform/src/VossWrapper.o \
+		$(SYS_LEGACY_SRC_DIR)/system/src/macInitApi.o \
+		$(SYS_LEGACY_SRC_DIR)/system/src/sysEntryFunc.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/dot11f.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/logApi.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/logDump.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/macTrace.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/parserApi.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/utilsApi.o \
+		$(SYS_LEGACY_SRC_DIR)/utils/src/utilsParser.o
+
+ifeq ($(CONFIG_QCOM_CCX),y)
+SYS_OBJS += $(SYS_LEGACY_SRC_DIR)/utils/src/limCcxparserApi.o
+endif
+
+############ TL ############
+TL_DIR :=	CORE/TL
+TL_INC_DIR :=	$(TL_DIR)/inc
+TL_SRC_DIR :=	$(TL_DIR)/src
+
+TL_INC := 	-I$(WLAN_ROOT)/$(TL_INC_DIR) \
+		-I$(WLAN_ROOT)/$(TL_SRC_DIR)
+
+TL_OBJS := 	$(TL_SRC_DIR)/wlan_qct_tl.o \
+		$(TL_SRC_DIR)/wlan_qct_tl_ba.o \
+		$(TL_SRC_DIR)/wlan_qct_tl_hosupport.o
+
+############ VOSS ############
+VOSS_DIR :=	CORE/VOSS
+VOSS_INC_DIR :=	$(VOSS_DIR)/inc
+VOSS_SRC_DIR :=	$(VOSS_DIR)/src
+
+VOSS_INC := 	-I$(WLAN_ROOT)/$(VOSS_INC_DIR) \
+		-I$(WLAN_ROOT)/$(VOSS_SRC_DIR)
+
+VOSS_OBJS :=    $(VOSS_SRC_DIR)/vos_api.o \
+		$(VOSS_SRC_DIR)/vos_event.o \
+		$(VOSS_SRC_DIR)/vos_getBin.o \
+		$(VOSS_SRC_DIR)/vos_list.o \
+		$(VOSS_SRC_DIR)/vos_lock.o \
+		$(VOSS_SRC_DIR)/vos_memory.o \
+		$(VOSS_SRC_DIR)/vos_mq.o \
+		$(VOSS_SRC_DIR)/vos_nvitem.o \
+		$(VOSS_SRC_DIR)/vos_packet.o \
+		$(VOSS_SRC_DIR)/vos_power.o \
+		$(VOSS_SRC_DIR)/vos_sched.o \
+		$(VOSS_SRC_DIR)/vos_threads.o \
+		$(VOSS_SRC_DIR)/vos_timer.o \
+		$(VOSS_SRC_DIR)/vos_trace.o \
+		$(VOSS_SRC_DIR)/vos_types.o \
+		$(VOSS_SRC_DIR)/vos_utils.o
+
+ifeq ($(BUILD_DIAG_VERSION),1)
+VOSS_OBJS += $(VOSS_SRC_DIR)/vos_diag.o
+endif
+
+########### BMI ###########
+BMI_DIR := CORE/SERVICES/BMI
+
+BMI_INC := -I$(WLAN_ROOT)/$(BMI_DIR)
+
+BMI_OBJS := $(BMI_DIR)/bmi.o \
+            $(BMI_DIR)/ol_fw.o
+
+########### WMI ###########
+WMI_DIR := CORE/SERVICES/WMI
+
+WMI_INC := -I$(WLAN_ROOT)/$(WMI_DIR)
+
+WMI_OBJS := $(WMI_DIR)/wmi_unified.o \
+	    $(WMI_DIR)/wmi_tlv_helper.o
+
+########### FWLOG ###########
+FWLOG_DIR := CORE/UTILS/FWLOG
+
+FWLOG_INC := -I$(WLAN_ROOT)/$(FWLOG_DIR)
+
+FWLOG_OBJS := $(FWLOG_DIR)/dbglog_host.o
+
+############ TLSHIM ############
+TLSHIM_DIR := CORE/CLD_TXRX/TLSHIM
+TLSHIM_INC := -I$(WLAN_ROOT)/$(TLSHIM_DIR)
+
+TLSHIM_OBJS := $(TLSHIM_DIR)/tl_shim.o
+
+############ TXRX ############
+TXRX_DIR :=     CORE/CLD_TXRX/TXRX
+TXRX_INC :=     -I$(WLAN_ROOT)/$(TXRX_DIR)
+
+TXRX_OBJS := $(TXRX_DIR)/ol_txrx.o \
+                $(TXRX_DIR)/ol_cfg.o \
+                $(TXRX_DIR)/ol_rx.o \
+                $(TXRX_DIR)/ol_rx_fwd.o \
+                $(TXRX_DIR)/ol_txrx.o \
+                $(TXRX_DIR)/ol_rx_defrag.o \
+                $(TXRX_DIR)/ol_tx_desc.o \
+                $(TXRX_DIR)/ol_tx_classify.o \
+                $(TXRX_DIR)/ol_tx.o \
+                $(TXRX_DIR)/ol_rx_reorder_timeout.o \
+                $(TXRX_DIR)/ol_rx_reorder.o \
+                $(TXRX_DIR)/ol_rx_pn.o \
+                $(TXRX_DIR)/ol_tx_queue.o \
+                $(TXRX_DIR)/ol_txrx_peer_find.o \
+                $(TXRX_DIR)/ol_txrx_event.o \
+                $(TXRX_DIR)/ol_txrx_encap.o \
+                $(TXRX_DIR)/ol_tx_send.o \
+                $(TXRX_DIR)/ol_tx_sched.o
+
+############ PKTLOG ############
+PKTLOG_DIR :=      CORE/UTILS/PKTLOG
+PKTLOG_INC :=      -I$(WLAN_ROOT)/$(PKTLOG_DIR)/include
+
+PKTLOG_OBJS :=	$(PKTLOG_DIR)/pktlog_ac.o \
+		$(PKTLOG_DIR)/pktlog_internal.o \
+		$(PKTLOG_DIR)/linux_ac.o
+
+############ HTT ############
+HTT_DIR :=      CORE/CLD_TXRX/HTT
+HTT_INC :=      -I$(WLAN_ROOT)/$(HTT_DIR)
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 0)
+HTT_OBJS := $(HTT_DIR)/htt_tx.o \
+            $(HTT_DIR)/htt.o \
+            $(HTT_DIR)/htt_t2h.o \
+            $(HTT_DIR)/htt_h2t.o \
+            $(HTT_DIR)/htt_fw_stats.o \
+            $(HTT_DIR)/htt_rx.o
+endif
+
+############## HTC ##########
+HTC_DIR := CORE/SERVICES/HTC
+
+HTC_INC := -I$(WLAN_ROOT)/$(HTC_DIR)
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 1)
+HTC_INC += -I$(WLAN_ROOT)/$(HTC_DIR)/linux/
+HTC_OBJS := $(HTC_DIR)/linux/htc_smd.o
+else
+HTC_OBJS := $(HTC_DIR)/htc.o \
+            $(HTC_DIR)/htc_send.o \
+            $(HTC_DIR)/htc_recv.o \
+            $(HTC_DIR)/htc_services.o
+endif
+
+########### HIF ###########
+HIF_DIR := CORE/SERVICES/HIF
+HIF_PCIE_DIR := $(HIF_DIR)/PCIe
+
+HIF_INC := -I$(WLAN_ROOT)/$(HIF_PCIE_DIR)
+
+HIF_OBJS := $(HIF_DIR)/ath_procfs.o
+
+HIF_PCIE_OBJS := $(HIF_PCIE_DIR)/copy_engine.o \
+                 $(HIF_PCIE_DIR)/hif_pci.o \
+                 $(HIF_PCIE_DIR)/if_pci.o \
+                 $(HIF_PCIE_DIR)/regtable.o \
+                 $(HIF_PCIE_DIR)/mp_dev.o
+
+HIF_OBJS += $(HIF_PCIE_OBJS)
+
+############ WMA ############
+WMA_DIR :=      CORE/SERVICES/WMA
+
+WMA_INC :=      -I$(WLAN_ROOT)/$(WMA_DIR)
+
+WMA_OBJS :=     $(WMA_DIR)/wma.o
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 1)
+WMA_OBJS +=     $(WMA_DIR)/wma_isoc.o
+else
+WMA_OBJS +=     $(WMA_DIR)/regdomain.o
+endif
+
+############ WDA ############
+WDA_DIR :=	CORE/WDA
+WDA_INC_DIR :=	$(WDA_DIR)/inc
+WDA_SRC_DIR :=	$(WDA_DIR)/src
+
+WDA_INC := 	-I$(WLAN_ROOT)/$(WDA_INC_DIR) \
+		-I$(WLAN_ROOT)/$(WDA_INC_DIR)/legacy \
+		-I$(WLAN_ROOT)/$(WDA_SRC_DIR)
+
+WDA_OBJS :=	$(WDA_SRC_DIR)/wlan_qct_wda_debug.o \
+		$(WDA_SRC_DIR)/wlan_qct_wda_legacy.o \
+		$(WDA_SRC_DIR)/wlan_nv.o
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+WDA_OBJS +=	$(WDA_SRC_DIR)/wlan_qct_wda.o \
+		$(WDA_SRC_DIR)/wlan_qct_wda_ds.o
+endif
+
+############ WDI ############
+WDI_DIR :=	CORE/WDI
+
+WDI_CP_INC :=	-I$(WLAN_ROOT)/$(WDI_DIR)/CP/inc/
+
+WDI_CP_SRC_DIR := $(WDI_DIR)/CP/src
+WDI_CP_OBJS :=	$(WDI_CP_SRC_DIR)/wlan_qct_wdi.o \
+		$(WDI_CP_SRC_DIR)/wlan_qct_wdi_dp.o \
+		$(WDI_CP_SRC_DIR)/wlan_qct_wdi_sta.o
+
+WDI_DP_INC := -I$(WLAN_ROOT)/$(WDI_DIR)/DP/inc/
+
+WDI_DP_SRC_DIR := $(WDI_DIR)/DP/src
+WDI_DP_OBJS :=	$(WDI_DP_SRC_DIR)/wlan_qct_wdi_bd.o \
+		$(WDI_DP_SRC_DIR)/wlan_qct_wdi_ds.o
+
+WDI_TRP_INC :=	-I$(WLAN_ROOT)/$(WDI_DIR)/TRP/CTS/inc/ \
+		-I$(WLAN_ROOT)/$(WDI_DIR)/TRP/DTS/inc/
+
+WDI_TRP_CTS_SRC_DIR :=	$(WDI_DIR)/TRP/CTS/src
+WDI_TRP_CTS_OBJS :=	$(WDI_TRP_CTS_SRC_DIR)/wlan_qct_wdi_cts.o
+
+WDI_TRP_DTS_SRC_DIR :=	$(WDI_DIR)/TRP/DTS/src
+WDI_TRP_DTS_OBJS :=	$(WDI_TRP_DTS_SRC_DIR)/wlan_qct_wdi_dts.o
+
+WDI_TRP_OBJS :=	$(WDI_TRP_CTS_OBJS) \
+		$(WDI_TRP_DTS_OBJS)
+
+WDI_WPAL_INC := -I$(WLAN_ROOT)/$(WDI_DIR)/WPAL/inc
+
+WDI_WPAL_SRC_DIR := $(WDI_DIR)/WPAL/src
+WDI_WPAL_OBJS := $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_trace.o
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+WDI_WPAL_OBJS += $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_api.o \
+		 $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_device.o \
+		 $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_msg.o \
+		 $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_packet.o \
+		 $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_sync.o \
+		 $(WDI_WPAL_SRC_DIR)/wlan_qct_pal_timer.o
+endif
+
+WDI_INC :=	$(WDI_CP_INC) \
+		$(WDI_DP_INC) \
+		$(WDI_TRP_INC) \
+		$(WDI_WPAL_INC)
+
+WDI_OBJS :=	$(WDI_WPAL_OBJS)
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+WDI_OBJS +=	$(WDI_CP_OBJS) \
+		$(WDI_DP_OBJS) \
+		$(WDI_TRP_OBJS)
+endif
+
+
+WCNSS_INC :=	-I$(WLAN_ROOT)/wcnss/inc
+
+LINUX_INC :=	-Iinclude/linux
+
+INCS :=		$(BAP_INC) \
+		$(HDD_INC) \
+		$(LINUX_INC) \
+		$(MAC_INC) \
+		$(WCNSS_INC) \
+		$(SAP_INC) \
+		$(SME_INC) \
+		$(SVC_INC) \
+		$(SYS_INC) \
+		$(TL_INC) \
+		$(VOSS_INC) \
+		$(WDA_INC) \
+		$(WDI_INC)
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+INCS +=		$(DXE_INC)
+else
+INCS +=		$(WMA_INC) \
+		$(COMMON_INC) \
+		$(WMI_INC) \
+		$(FWLOG_INC) \
+		$(ADF_INC) \
+		$(TLSHIM_INC) \
+		$(TXRX_INC) \
+		$(PKTLOG_INC) \
+		$(HTT_INC) \
+		$(HTC_INC)
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 0)
+INCS +=		$(HIF_INC) \
+		$(BMI_INC)
+
+ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
+INCS +=		$(PKTLOG_INC)
+endif
+
+else
+INCS +=		$(DXE_INC)
+endif
+
+endif
+
+OBJS :=		$(BAP_OBJS) \
+		$(HDD_OBJS) \
+		$(MAC_OBJS) \
+		$(SAP_OBJS) \
+		$(SME_OBJS) \
+		$(SVC_OBJS) \
+		$(SYS_OBJS) \
+		$(VOSS_OBJS) \
+		$(WDA_OBJS) \
+		$(WDI_OBJS)
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+OBJS +=		$(DXE_OBJS) \
+		$(TL_OBJS)
+else
+OBJS +=		$(WMA_OBJS) \
+		$(TLSHIM_OBJS) \
+		$(TXRX_OBJS) \
+		$(WMI_OBJS) \
+		$(FWLOG_OBJS) \
+		$(HTC_OBJS) \
+		$(ADF_OBJS)
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 0)
+OBJS +=		$(HIF_OBJS) \
+		$(BMI_OBJS) \
+		$(HTT_OBJS)
+
+ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
+OBJS +=		$(PKTLOG_OBJS)
+endif
+
+else
+OBJS +=		$(DXE_OBJS)
+endif
+
+endif
+
+EXTRA_CFLAGS += $(INCS)
+
+CDEFINES :=	-DANI_LITTLE_BYTE_ENDIAN \
+		-DANI_LITTLE_BIT_ENDIAN \
+		-DQC_WLAN_CHIPSET_QCA_CLD \
+		-DINTEGRATION_READY \
+		-DDOT11F_LITTLE_ENDIAN_HOST \
+		-DGEN6_ONWARDS \
+		-DANI_COMPILER_TYPE_GCC \
+		-DANI_OS_TYPE_ANDROID=6 \
+		-DANI_LOGDUMP \
+		-DWLAN_PERF \
+		-DPTT_SOCK_SVC_ENABLE \
+		-Wall\
+		-D__linux__ \
+		-DHAL_SELF_STA_PER_BSS=1 \
+		-DWLAN_FEATURE_VOWIFI_11R \
+		-DWLAN_FEATURE_NEIGHBOR_ROAMING \
+		-DWLAN_FEATURE_NEIGHBOR_ROAMING_DEBUG \
+		-DWLAN_FEATURE_VOWIFI_11R_DEBUG \
+		-DFEATURE_WLAN_WAPI \
+		-DFEATURE_OEM_DATA_SUPPORT\
+		-DSOFTAP_CHANNEL_RANGE \
+		-DWLAN_AP_STA_CONCURRENCY \
+		-DFEATURE_WLAN_SCAN_PNO \
+		-DWLAN_FEATURE_PACKET_FILTERING \
+		-DWLAN_FEATURE_VOWIFI \
+		-DWLAN_FEATURE_11AC \
+		-DWLAN_FEATURE_P2P_DEBUG \
+		-DWLAN_ENABLE_AGEIE_ON_SCAN_RESULTS \
+		-DWLANTL_DEBUG\
+		-DWLAN_NS_OFFLOAD \
+		-DWLAN_ACTIVEMODE_OFFLOAD_FEATURE \
+		-DWLAN_FEATURE_HOLD_RX_WAKELOCK \
+		-DWLAN_SOFTAP_VSTA_FEATURE \
+                -DWLAN_FEATURE_ROAM_SCAN_OFFLOAD \
+                -DWLAN_FEATURE_SCAN_OFFLOAD \
+		-DWLAN_LINK_UMAC_SUSPEND_WITH_BUS_SUSPEND \
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 0)
+CDEFINES +=	-DWLANTL_DEBUG
+else
+CDEFINES +=	-DOSIF_NEED_RX_PEER_ID \
+		-DQCA_SUPPORT_TXRX_LOCAL_PEER_ID
+endif
+
+ifneq ($(CONFIG_PRONTO_WLAN),)
+CDEFINES += -DWCN_PRONTO
+CDEFINES += -DWCN_PRONTO_V1
+endif
+
+ifeq ($(BUILD_DEBUG_VERSION),1)
+CDEFINES +=	-DWLAN_DEBUG \
+		-DTRACE_RECORD \
+		-DLIM_TRACE_RECORD \
+		-DPE_DEBUG_LOGW \
+		-DPE_DEBUG_LOGE \
+		-DDEBUG
+endif
+
+ifeq ($(CONFIG_SLUB_DEBUG_ON),y)
+CDEFINES += -DTIMER_MANAGER
+CDEFINES += -DMEMORY_DEBUG
+endif
+
+ifeq ($(HAVE_CFG80211),1)
+CDEFINES += -DWLAN_FEATURE_P2P
+CDEFINES += -DWLAN_FEATURE_WFD
+ifeq ($(CONFIG_QCOM_VOWIFI_11R),y)
+CDEFINES += -DKERNEL_SUPPORT_11R_CFG80211
+CDEFINES += -DUSE_80211_WMMTSPEC_FOR_RIC
+endif
+endif
+
+ifeq ($(CONFIG_QCOM_CCX),y)
+CDEFINES += -DFEATURE_WLAN_CCX
+endif
+
+#normally, TDLS negative behavior is not needed
+ifeq ($(CONFIG_QCOM_TDLS),y)
+CDEFINES += -DFEATURE_WLAN_TDLS
+CDEFINES += -DWLAN_FEATURE_TDLS_DEBUG
+CDEFINES += -DCONFIG_TDLS_IMPLICIT
+#CDEFINES += -DFEATURE_WLAN_TDLS_NEGATIVE
+#Code under FEATURE_WLAN_TDLS_INTERNAL is ported from volans, This code
+#is not tested only verifed that it compiles. This is not required for
+#supplicant based implementation
+#CDEFINES += -DFEATURE_WLAN_TDLS_INTERNAL
+endif
+
+ifeq ($(CONFIG_PRIMA_WLAN_BTAMP),y)
+CDEFINES += -DWLAN_BTAMP_FEATURE
+endif
+
+ifeq ($(CONFIG_PRIMA_WLAN_LFR),y)
+CDEFINES += -DFEATURE_WLAN_LFR
+endif
+
+ifeq ($(CONFIG_PRIMA_WLAN_OKC),y)
+CDEFINES += -DFEATURE_WLAN_OKC
+endif
+
+ifeq ($(CONFIG_PRIMA_WLAN_11AC_HIGH_TP),y)
+CDEFINES += -DWLAN_FEATURE_11AC_HIGH_TP
+endif
+
+ifeq ($(BUILD_DIAG_VERSION),1)
+CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT
+CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_CSR
+CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_LIM
+ifeq ($(CONFIG_HIF_PCI), 1)
+CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
+endif
+endif
+
+# enable the MAC Address auto-generation feature
+CDEFINES += -DWLAN_AUTOGEN_MACADDR_FEATURE
+
+ifeq ($(CONFIG_WLAN_FEATURE_11W),y)
+CDEFINES += -DWLAN_FEATURE_11W
+endif
+
+ifneq (, $(filter msm8960, $(BOARD_PLATFORM)))
+EXTRA_CFLAGS += -march=armv7-a
+CDEFINES += -DMSM_PLATFORM_8960
+endif
+
+ifneq (, $(filter msm8660, $(BOARD_PLATFORM)))
+EXTRA_CFLAGS += -march=armv7-a
+CDEFINES += -DMSM_PLATFORM_8660
+endif
+
+ifneq (, $(filter msm7630_surf msm7630_fusion, $(BOARD_PLATFORM)))
+EXTRA_CFLAGS += -march=armv7-a
+CDEFINES += -DMSM_PLATFORM_7x30
+endif
+
+ifneq (, $(filter msm7627_surf, $(BOARD_PLATFORM)))
+EXTRA_CFLAGS += -march=armv6
+CDEFINES += -DMSM_PLATFORM_7x27
+endif
+
+ifeq ($(PANIC_ON_BUG),1)
+CDEFINES += -DPANIC_ON_BUG
+endif
+
+ifeq ($(RE_ENABLE_WIFI_ON_WDI_TIMEOUT),1)
+CDEFINES += -DWDI_RE_ENABLE_WIFI_ON_WDI_TIMEOUT
+endif
+
+ifeq ($(KERNEL_BUILD),1)
+CDEFINES += -DWLAN_OPEN_SOURCE
+endif
+
+ifeq ($(findstring opensource, $(WLAN_ROOT)), opensource)
+CDEFINES += -DWLAN_OPEN_SOURCE
+endif
+
+ifeq ($(CONFIG_QCA_WIFI_2_0), 1)
+CDEFINES += -DQCA_WIFI_2_0
+endif
+
+ifeq ($(CONFIG_QCA_WIFI_ISOC), 1)
+CDEFINES += -DQCA_WIFI_ISOC
+CDEFINES += -DANI_BUS_TYPE_PLATFORM=1
+endif
+
+#Enable the OS specific ADF abstraction
+ifeq ($(CONFIG_ADF_SUPPORT), 1)
+CDEFINES += -DADF_SUPPORT
+endif
+
+#Enable OL debug and wmi unified functions
+ifeq ($(CONFIG_ATH_PERF_PWR_OFFLOAD), 1)
+CDEFINES += -DATH_PERF_PWR_OFFLOAD
+endif
+
+#Disable packet log
+ifeq ($(CONFIG_REMOVE_PKT_LOG), 1)
+CDEFINES += -DREMOVE_PKT_LOG
+endif
+
+#Enable 11AC TX
+ifeq ($(CONFIG_ATH_11AC_TXCOMPACT), 1)
+CDEFINES += -DATH_11AC_TXCOMPACT
+endif
+
+#Enable OS specific IRQ abstraction
+ifeq ($(CONFIG_ATH_SUPPORT_SHARED_IRQ), 1)
+CDEFINES += -DATH_SUPPORT_SHARED_IRQ
+endif
+
+#Enable message based HIF instead of RAW access in BMI
+ifeq ($(CONFIG_HIF_MESSAGE_BASED), 1)
+CDEFINES += -DHIF_MESSAGE_BASED
+endif
+
+#Enable PCI specific APIS (dma, etc)
+ifeq ($(CONFIG_HIF_PCI), 1)
+CDEFINES += -DHIF_PCI
+endif
+
+#Enable pci read/write config functions
+ifeq ($(CONFIG_ATH_PCI), 1)
+CDEFINES += -DATH_PCI
+endif
+
+#Enable power management suspend/resume functionality to PCI
+ifeq ($(CONFIG_ATH_BUS_PM), 1)
+CDEFINES += -DATH_BUS_PM
+endif
+
+#Enable dword alignment for IP header
+ifeq ($(CONFIG_IP_HDR_ALIGNMENT), 1)
+CDEFINES += -DPERE_IP_HDR_ALIGNMENT_WAR
+endif
+
+#Enable FLOWMAC module support
+ifeq ($(CONFIG_ATH_SUPPORT_FLOWMAC_MODULE), 1)
+CDEFINES += -DATH_SUPPORT_FLOWMAC_MODULE
+endif
+
+#Enable spectral support
+ifeq ($(CONFIG_ATH_SUPPORT_SPECTRAL), 1)
+CDEFINES += -DATH_SUPPORT_SPECTRAL
+endif
+
+#Enable WDI Event support
+ifeq ($(CONFIG_WDI_EVENT_ENABLE), 1)
+CDEFINES += -DWDI_EVENT_ENABLE
+endif
+
+#Endianess selection
+ifeq ($(CONFIG_LITTLE_ENDIAN), 1)
+AH_LITTLE_ENDIAN=1234
+CDEFINES += -DAH_BYTE_ORDER=$(AH_LITTLE_ENDIAN)
+else
+AH_BIG_ENDIAN=4321
+CDEFINES += -DAH_BYTE_ORDER=$(AH_BIG_ENDIAN)
+CDEFINES += -DBIG_ENDIAN_HOST
+endif
+
+#Enable TX reclaim support
+ifeq ($(CONFIG_TX_CREDIT_RECLAIM_SUPPORT), 1)
+CDEFINES += -DTX_CREDIT_RECLAIM_SUPPORT
+endif
+
+#Enable FTM support
+ifeq ($(CONFIG_QCA_WIFI_FTM), 1)
+CDEFINES += -DQCA_WIFI_FTM
+endif
+
+#Enable Checksum Offload support
+ifeq ($(CONFIG_CHECKSUM_OFFLOAD), 1)
+CDEFINES += -DCHECKSUM_OFFLOAD
+endif
+
+#Enable GTK Offload
+ifeq ($(CONFIG_GTK_OFFLOAD), 1)
+CDEFINES += -DWLAN_FEATURE_GTK_OFFLOAD
+CDEFINES += -DIGTK_OFFLOAD
+endif
+
+# Fix build for GCC 4.7
+EXTRA_CFLAGS += -Wno-maybe-uninitialized -Wno-unused-function
+
+#KBUILD_CPPFLAGS += $(CDEFINES)
+EXTRA_CFLAGS += $(CDEFINES)
+
+# Module information used by KBuild framework
+#obj-$(CONFIG_PRIMA_WLAN) += $(MODNAME).o
+#obj-$(CONFIG_PRONTO_WLAN) += $(MODNAME).o
+#$(MODNAME)-y := $(OBJS)
+
+obj-m := $(MODNAME).o
+wlan-objs := $(OBJS)
+
+KERN_DIR ?= /lib/modules/$(shell uname -r)/build
+PWD = $(shell pwd)
+
+all:
+	$(MAKE) -C $(KERN_DIR) EXTRA_CFLAGS="$(EXTRA_CFLAGS)" M=$(PWD) modules
+
+clean:
+	$(MAKE) -C $(KERN_DIR) M=$(PWD) clean