xref: /wlan-dirver/qcacld-3.0/Kbuild (revision c9c48ca4083fb01ec092e64d20a4c9151f3eb28c)
1# We can build either as part of a standalone Kernel build or as
2# an external module.  Determine which mechanism is being used
3ifeq ($(MODNAME),)
4	KERNEL_BUILD := 1
5else
6	KERNEL_BUILD := 0
7endif
8
9ifeq ($(CONFIG_CNSS_QCA6290), y)
10	CONFIG_LITHIUM := y
11endif
12
13ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y)
14	CONFIG_QCA_WIFI_SDIO := 1
15endif
16
17ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
18	CONFIG_ROME_IF = sdio
19endif
20
21ifdef CONFIG_ICNSS
22	CONFIG_ROME_IF = snoc
23endif
24
25ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2)))
26ifndef CONFIG_ROME_IF
27	#use pci as default interface
28	CONFIG_ROME_IF = pci
29endif
30endif
31
32ifeq ($(KERNEL_BUILD),1)
33	# These are provided in external module based builds
34	# Need to explicitly define for Kernel-based builds
35	MODNAME := wlan
36	WLAN_ROOT := drivers/staging/qcacld-3.0
37	WLAN_COMMON_ROOT := ../qca-wifi-host-cmn
38	WLAN_COMMON_INC := $(WLAN_ROOT)/$(WLAN_COMMON_ROOT)
39endif
40
41# Make WLAN as open-source driver by default
42WLAN_OPEN_SOURCE := 1
43
44ifeq ($(KERNEL_BUILD), 0)
45	# These are configurable via Kconfig for kernel-based builds
46	# Need to explicitly configure for Android-based builds
47
48	ifeq ($(CONFIG_ARCH_MDM9630), y)
49	CONFIG_MOBILE_ROUTER := y
50	endif
51
52	ifeq ($(CONFIG_ARCH_MDM9640), y)
53	CONFIG_MOBILE_ROUTER := y
54	endif
55
56	# As per target team, build is done as follows:
57	# Defconfig : build with default flags
58	# Slub      : defconfig  + CONFIG_SLUB_DEBUG=y +
59	#	      CONFIG_SLUB_DEBUG_ON=y + CONFIG_PAGE_POISONING=y
60	# Perf      : Using appropriate msmXXXX-perf_defconfig
61	#
62	# Shipment builds (user variants) should not have any debug feature
63	# enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds
64	# are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since
65	# there is no other way to identify defconfig builds, QCOMs internal
66	# representation of perf builds (identified using the string 'perf'),
67	# is used to identify if the build is a slub or defconfig one. This
68	# way no critical debug feature will be enabled for perf and shipment
69	# builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT
70	# config.
71	ifneq ($(TARGET_BUILD_VARIANT),user)
72		ifeq ($(CONFIG_LITHIUM),y)
73			CONFIG_FEATURE_PKTLOG := n
74		else
75			CONFIG_FEATURE_PKTLOG := y
76		endif
77		ifeq ($(CONFIG_SLUB_DEBUG_ON),y)
78			CONFIG_FEATURE_DP_TRACE := y
79		else
80			ifeq ($(findstring perf,$(KERNEL_DEFCONFIG)),)
81				CONFIG_FEATURE_DP_TRACE := y
82			endif
83		endif
84	endif
85
86	#Flag to enable Legacy Fast Roaming2(LFR2)
87	CONFIG_QCACLD_WLAN_LFR2 := y
88	#Flag to enable Legacy Fast Roaming3(LFR3)
89	CONFIG_QCACLD_WLAN_LFR3 := y
90
91	# JB kernel has CPU enablement patches, so enable
92	ifeq ($(CONFIG_ROME_IF),pci)
93		CONFIG_PRIMA_WLAN_11AC_HIGH_TP := y
94	endif
95	ifeq ($(CONFIG_ROME_IF),usb)
96		CONFIG_PRIMA_WLAN_11AC_HIGH_TP := n
97	endif
98	ifeq ($(CONFIG_ROME_IF),sdio)
99		CONFIG_PRIMA_WLAN_11AC_HIGH_TP := n
100	endif
101
102	ifneq ($(CONFIG_MOBILE_ROUTER), y)
103	#Flag to enable TDLS feature
104	CONFIG_QCOM_TDLS := y
105	endif
106
107	ifeq ($(CONFIG_MOBILE_ROUTER), y)
108	CONFIG_QCACLD_FEATURE_GREEN_AP := y
109	endif
110	ifeq ($(CONFIG_ARCH_MSM8998), y)
111	CONFIG_QCACLD_FEATURE_GREEN_AP := y
112	endif
113
114	#Flag to enable Fast Transition (11r) feature
115	CONFIG_QCOM_VOWIFI_11R := y
116
117	ifneq ($(CONFIG_QCA_CLD_WLAN),)
118		ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2) $(CONFIG_ICNSS)))
119		#Flag to enable Protected Managment Frames (11w) feature
120		CONFIG_WLAN_FEATURE_11W := y
121		#Flag to enable LTE CoEx feature
122		CONFIG_QCOM_LTE_COEX := y
123			ifneq ($(CONFIG_MOBILE_ROUTER), y)
124			#Flag to enable LPSS feature
125			CONFIG_WLAN_FEATURE_LPSS := y
126			endif
127		endif
128	endif
129
130	#Flag to enable Protected Managment Frames (11w) feature
131	ifeq ($(CONFIG_ROME_IF),usb)
132		CONFIG_WLAN_FEATURE_11W := y
133	endif
134	ifeq ($(CONFIG_ROME_IF),sdio)
135		CONFIG_WLAN_FEATURE_11W := y
136	endif
137
138	#Flag to enable the tx desc sanity check
139	ifeq ($(CONFIG_ROME_IF),usb)
140		CONFIG_QCA_TXDESC_SANITY_CHECKS := y
141	endif
142
143	ifneq ($(CONFIG_MOBILE_ROUTER), y)
144		#Flag to enable NAN
145		CONFIG_QCACLD_FEATURE_NAN := y
146	endif
147
148	ifneq ($(CONFIG_MOBILE_ROUTER), y)
149		#Flag to enable NAN Data path
150		CONFIG_WLAN_FEATURE_NAN_DATAPATH := y
151	endif
152
153	#Flag to enable Linux QCMBR feature as default feature
154	ifeq ($(CONFIG_ROME_IF),usb)
155		CONFIG_LINUX_QCMBR :=y
156	endif
157
158	CONFIG_MPC_UT_FRAMEWORK := y
159
160	#Flag to enable offload packets feature
161	CONFIG_WLAN_OFFLOAD_PACKETS := y
162
163	#enable TSF get feature
164	CONFIG_WLAN_SYNC_TSF := y
165	#Enable DSRC feature
166
167	ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
168	CONFIG_WLAN_FEATURE_DSRC := y
169	endif
170
171ifneq ($(CONFIG_ROME_IF),sdio)
172	#Flag to enable memdump feature
173	CONFIG_WLAN_FEATURE_MEMDUMP := n
174
175	#Flag to enable DISA
176	CONFIG_WLAN_FEATURE_DISA := y
177
178	#Flag to enable Fast Path feature
179	CONFIG_WLAN_FASTPATH := y
180
181	# Flag to enable NAPI
182ifeq (y,$(CONFIG_LITHIUM))
183	CONFIG_WLAN_NAPI := n
184	CONFIG_WLAN_NAPI_DEBUG := n
185else
186	CONFIG_WLAN_NAPI := y
187	CONFIG_WLAN_NAPI_DEBUG := n
188endif
189	# Flag to enable FW based TX Flow control
190	ifeq ($(CONFIG_CNSS_EOS),y)
191		CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
192	else
193		CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n
194	endif
195
196	# Flag to enable LRO (Large Receive Offload)
197	ifeq ($(CONFIG_INET_LRO), y)
198		CONFIG_WLAN_LRO := y
199	else
200		CONFIG_WLAN_LRO := n
201	endif
202endif
203
204ifeq ($(CONFIG_ROME_IF), snoc)
205	CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
206endif
207
208	# Flag to enable LFR Subnet Detection
209	CONFIG_LFR_SUBNET_DETECTION := y
210
211	# Flag to enable MCC to SCC switch feature
212	CONFIG_MCC_TO_SCC_SWITCH := y
213endif
214
215# If not set, assume, Common driver is with in the build tree
216WLAN_COMMON_ROOT ?= qca-wifi-host-cmn
217WLAN_COMMON_INC ?= $(WLAN_ROOT)/$(WLAN_COMMON_ROOT)
218
219ifneq ($(CONFIG_MOBILE_ROUTER), y)
220CONFIG_QCOM_ESE := y
221endif
222
223# Feature flags which are not (currently) configurable via Kconfig
224
225#Whether to build debug version
226BUILD_DEBUG_VERSION := 1
227
228#Enable this flag to build driver in diag version
229BUILD_DIAG_VERSION := 1
230
231#Do we panic on bug?  default is to warn
232PANIC_ON_BUG := 1
233
234#Enable OL debug and wmi unified functions
235CONFIG_ATH_PERF_PWR_OFFLOAD := 1
236
237#Disable packet log
238CONFIG_REMOVE_PKT_LOG := 0
239
240#Enable 11AC TX
241ifeq ($(CONFIG_ROME_IF),pci)
242	CONFIG_ATH_11AC_TXCOMPACT := 1
243endif
244ifeq ($(CONFIG_ROME_IF),usb)
245	CONFIG_ATH_11AC_TXCOMPACT := 0
246endif
247
248#Enable OS specific IRQ abstraction
249CONFIG_ATH_SUPPORT_SHARED_IRQ := 1
250
251#Enable message based HIF instead of RAW access in BMI
252ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
253CONFIG_HIF_MESSAGE_BASED := 0
254else
255CONFIG_HIF_MESSAGE_BASED := 1
256endif
257
258#Enable PCI specific APIS (dma, etc)
259ifeq ($(CONFIG_ROME_IF),pci)
260	CONFIG_HIF_PCI := 1
261endif
262
263#Enable USB specific APIS
264ifeq ($(CONFIG_ROME_IF),usb)
265	CONFIG_HIF_USB := 1
266	CONFIG_PLD_USB_CNSS := y
267endif
268
269#Enable pci read/write config functions
270ifeq ($(CONFIG_ROME_IF),pci)
271	CONFIG_ATH_PCI := 1
272endif
273
274ifeq ($(CONFIG_ROME_IF),snoc)
275	CONFIG_HIF_SNOC:= 1
276endif
277
278ifneq ($(CONFIG_MOBILE_ROUTER), y)
279#Enable IBSS support on CLD
280CONFIG_QCA_IBSS_SUPPORT := 1
281endif
282
283#Enable power management suspend/resume functionality to PCI
284CONFIG_ATH_BUS_PM := 1
285
286#Enable FLOWMAC module support
287CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := 0
288
289#Enable spectral support
290CONFIG_ATH_SUPPORT_SPECTRAL := 0
291
292#Enable HOST statistics support
293CONFIG_SUPPORT_HOST_STATISTICS := 0
294
295#Enable WDI Event support
296CONFIG_WDI_EVENT_ENABLE := 1
297
298#Endianess selection
299CONFIG_LITTLE_ENDIAN := 1
300
301#Enable TX reclaim support
302CONFIG_TX_CREDIT_RECLAIM_SUPPORT := 0
303
304#Enable FTM support
305CONFIG_QCA_WIFI_FTM := 1
306
307#Enable Checksum Offload
308CONFIG_CHECKSUM_OFFLOAD := 1
309
310#Enable GTK offload
311CONFIG_GTK_OFFLOAD := 1
312
313#Enable EXT WOW
314ifeq ($(CONFIG_ROME_IF),pci)
315	CONFIG_EXT_WOW := 1
316endif
317
318# Flag to enable bus auto suspend
319ifeq ($(CONFIG_ROME_IF),pci)
320ifeq ($(CONFIG_BUS_AUTO_SUSPEND), y)
321CDEFINES += -DFEATURE_RUNTIME_PM
322endif
323endif
324
325#Set this to 1 to catch erroneous Target accesses during debug.
326CONFIG_ATH_PCIE_ACCESS_DEBUG := 0
327
328#Enable IPA offload
329ifeq ($(CONFIG_IPA), y)
330CONFIG_IPA_OFFLOAD := 1
331endif
332
333#Enable Signed firmware support for split binary format
334CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := 0
335
336#Enable single firmware binary format
337CONFIG_QCA_SINGLE_BINARY_SUPPORT := 0
338
339#Enable collecting target RAM dump after kernel panic
340CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := 1
341
342#Flag to enable/disable secure firmware feature
343CONFIG_FEATURE_SECURE_FIRMWARE := 0
344
345#Flag to enable Stats Ext implementation
346CONFIG_FEATURE_STATS_EXT := 1
347
348ifeq ($(CONFIG_CFG80211),y)
349HAVE_CFG80211 := 1
350else
351ifeq ($(CONFIG_CFG80211),m)
352HAVE_CFG80211 := 1
353else
354HAVE_CFG80211 := 0
355endif
356endif
357
358############ UAPI ############
359UAPI_DIR :=	uapi
360UAPI_INC :=	-I$(WLAN_ROOT)/$(UAPI_DIR)/linux
361
362############ COMMON ############
363COMMON_DIR :=	core/common
364COMMON_INC :=	-I$(WLAN_ROOT)/$(COMMON_DIR)
365
366############ HDD ############
367HDD_DIR :=	core/hdd
368HDD_INC_DIR :=	$(HDD_DIR)/inc
369HDD_SRC_DIR :=	$(HDD_DIR)/src
370
371HDD_INC := 	-I$(WLAN_ROOT)/$(HDD_INC_DIR) \
372		-I$(WLAN_ROOT)/$(HDD_SRC_DIR)
373
374HDD_OBJS := 	$(HDD_SRC_DIR)/wlan_hdd_assoc.o \
375		$(HDD_SRC_DIR)/wlan_hdd_cfg.o \
376		$(HDD_SRC_DIR)/wlan_hdd_debugfs.o \
377		$(HDD_SRC_DIR)/wlan_hdd_driver_ops.o \
378		$(HDD_SRC_DIR)/wlan_hdd_ftm.o \
379		$(HDD_SRC_DIR)/wlan_hdd_hostapd.o \
380		$(HDD_SRC_DIR)/wlan_hdd_ioctl.o \
381		$(HDD_SRC_DIR)/wlan_hdd_main.o \
382		$(HDD_SRC_DIR)/wlan_hdd_oemdata.o \
383		$(HDD_SRC_DIR)/wlan_hdd_power.o \
384		$(HDD_SRC_DIR)/wlan_hdd_regulatory.o \
385		$(HDD_SRC_DIR)/wlan_hdd_scan.o \
386		$(HDD_SRC_DIR)/wlan_hdd_softap_tx_rx.o \
387		$(HDD_SRC_DIR)/wlan_hdd_tx_rx.o \
388		$(HDD_SRC_DIR)/wlan_hdd_trace.o \
389		$(HDD_SRC_DIR)/wlan_hdd_wext.o \
390		$(HDD_SRC_DIR)/wlan_hdd_wmm.o \
391		$(HDD_SRC_DIR)/wlan_hdd_wowl.o
392
393ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
394HDD_OBJS+=	$(HDD_SRC_DIR)/wlan_hdd_ocb.o
395endif
396
397ifeq ($(CONFIG_WLAN_FEATURE_LPSS),y)
398HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_lpass.o
399endif
400
401ifeq ($(CONFIG_WLAN_LRO), y)
402HDD_OBJS +=     $(HDD_SRC_DIR)/wlan_hdd_lro.o
403endif
404
405ifeq ($(CONFIG_WLAN_NAPI), y)
406HDD_OBJS +=     $(HDD_SRC_DIR)/wlan_hdd_napi.o
407endif
408
409ifeq ($(CONFIG_IPA_OFFLOAD), 1)
410HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_ipa.o
411endif
412
413ifeq ($(HAVE_CFG80211),1)
414HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_cfg80211.o \
415		$(HDD_SRC_DIR)/wlan_hdd_ext_scan.o \
416		$(HDD_SRC_DIR)/wlan_hdd_stats.o \
417		$(HDD_SRC_DIR)/wlan_hdd_p2p.o
418endif
419
420ifeq ($(CONFIG_QCACLD_FEATURE_GREEN_AP),y)
421HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_green_ap.o
422endif
423
424ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
425HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_nan.o
426endif
427
428ifeq ($(CONFIG_QCOM_TDLS),y)
429HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_tdls.o
430endif
431
432ifeq ($(CONFIG_WLAN_SYNC_TSF),y)
433HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_tsf.o
434endif
435
436ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y)
437HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_conc_ut.o
438endif
439
440ifeq ($(CONFIG_WLAN_FEATURE_MEMDUMP),y)
441HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_memdump.o
442endif
443
444ifeq ($(CONFIG_WLAN_FEATURE_DISA),y)
445HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_disa.o
446endif
447
448ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
449HDD_OBJS +=	$(HDD_SRC_DIR)/wlan_hdd_subnet_detect.o
450endif
451
452ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
453HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_nan_datapath.o
454endif
455
456########### HOST DIAG LOG ###########
457HOST_DIAG_LOG_DIR :=	core/utils/host_diag_log
458
459HOST_DIAG_LOG_INC_DIR :=	$(HOST_DIAG_LOG_DIR)/inc
460HOST_DIAG_LOG_SRC_DIR :=	$(HOST_DIAG_LOG_DIR)/src
461
462HOST_DIAG_LOG_INC :=	-I$(WLAN_ROOT)/$(HOST_DIAG_LOG_INC_DIR) \
463			-I$(WLAN_ROOT)/$(HOST_DIAG_LOG_SRC_DIR)
464
465HOST_DIAG_LOG_OBJS +=	$(HOST_DIAG_LOG_SRC_DIR)/host_diag_log.o
466
467############ EPPING ############
468EPPING_DIR :=	core/utils/epping
469EPPING_INC_DIR :=	$(EPPING_DIR)/inc
470EPPING_SRC_DIR :=	$(EPPING_DIR)/src
471
472EPPING_INC := 	-I$(WLAN_ROOT)/$(EPPING_INC_DIR)
473
474EPPING_OBJS := $(EPPING_SRC_DIR)/epping_main.o \
475		$(EPPING_SRC_DIR)/epping_txrx.o \
476		$(EPPING_SRC_DIR)/epping_tx.o \
477		$(EPPING_SRC_DIR)/epping_rx.o \
478		$(EPPING_SRC_DIR)/epping_helper.o \
479
480
481############ MAC ############
482MAC_DIR :=	core/mac
483MAC_INC_DIR :=	$(MAC_DIR)/inc
484MAC_SRC_DIR :=	$(MAC_DIR)/src
485
486MAC_INC := 	-I$(WLAN_ROOT)/$(MAC_INC_DIR) \
487		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/dph \
488		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/include \
489		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/include \
490		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/lim \
491		-I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/nan
492
493MAC_CFG_OBJS := $(MAC_SRC_DIR)/cfg/cfg_api.o \
494		$(MAC_SRC_DIR)/cfg/cfg_debug.o \
495		$(MAC_SRC_DIR)/cfg/cfg_param_name.o \
496		$(MAC_SRC_DIR)/cfg/cfg_proc_msg.o \
497		$(MAC_SRC_DIR)/cfg/cfg_send_msg.o
498
499MAC_DPH_OBJS :=	$(MAC_SRC_DIR)/dph/dph_hash_table.o
500
501MAC_LIM_OBJS := $(MAC_SRC_DIR)/pe/lim/lim_aid_mgmt.o \
502		$(MAC_SRC_DIR)/pe/lim/lim_admit_control.o \
503		$(MAC_SRC_DIR)/pe/lim/lim_api.o \
504		$(MAC_SRC_DIR)/pe/lim/lim_assoc_utils.o \
505		$(MAC_SRC_DIR)/pe/lim/lim_debug.o \
506		$(MAC_SRC_DIR)/pe/lim/lim_ft.o \
507		$(MAC_SRC_DIR)/pe/lim/lim_ibss_peer_mgmt.o \
508		$(MAC_SRC_DIR)/pe/lim/lim_link_monitoring_algo.o \
509		$(MAC_SRC_DIR)/pe/lim/lim_p2p.o \
510		$(MAC_SRC_DIR)/pe/lim/lim_process_action_frame.o \
511		$(MAC_SRC_DIR)/pe/lim/lim_process_assoc_req_frame.o \
512		$(MAC_SRC_DIR)/pe/lim/lim_process_assoc_rsp_frame.o \
513		$(MAC_SRC_DIR)/pe/lim/lim_process_auth_frame.o \
514		$(MAC_SRC_DIR)/pe/lim/lim_process_beacon_frame.o \
515		$(MAC_SRC_DIR)/pe/lim/lim_process_cfg_updates.o \
516		$(MAC_SRC_DIR)/pe/lim/lim_process_deauth_frame.o \
517		$(MAC_SRC_DIR)/pe/lim/lim_process_disassoc_frame.o \
518		$(MAC_SRC_DIR)/pe/lim/lim_process_message_queue.o \
519		$(MAC_SRC_DIR)/pe/lim/lim_process_mlm_req_messages.o \
520		$(MAC_SRC_DIR)/pe/lim/lim_process_mlm_rsp_messages.o \
521		$(MAC_SRC_DIR)/pe/lim/lim_process_probe_req_frame.o \
522		$(MAC_SRC_DIR)/pe/lim/lim_process_probe_rsp_frame.o \
523		$(MAC_SRC_DIR)/pe/lim/lim_process_sme_req_messages.o \
524		$(MAC_SRC_DIR)/pe/lim/lim_prop_exts_utils.o \
525		$(MAC_SRC_DIR)/pe/lim/lim_scan_result_utils.o \
526		$(MAC_SRC_DIR)/pe/lim/lim_security_utils.o \
527		$(MAC_SRC_DIR)/pe/lim/lim_send_management_frames.o \
528		$(MAC_SRC_DIR)/pe/lim/lim_send_messages.o \
529		$(MAC_SRC_DIR)/pe/lim/lim_send_sme_rsp_messages.o \
530		$(MAC_SRC_DIR)/pe/lim/lim_ser_des_utils.o \
531		$(MAC_SRC_DIR)/pe/lim/lim_session.o \
532		$(MAC_SRC_DIR)/pe/lim/lim_session_utils.o \
533		$(MAC_SRC_DIR)/pe/lim/lim_sme_req_utils.o \
534		$(MAC_SRC_DIR)/pe/lim/lim_sta_hash_api.o \
535		$(MAC_SRC_DIR)/pe/lim/lim_timer_utils.o \
536		$(MAC_SRC_DIR)/pe/lim/lim_trace.o \
537		$(MAC_SRC_DIR)/pe/lim/lim_utils.o
538
539ifeq ($(CONFIG_QCOM_TDLS),y)
540MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o
541endif
542
543ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
544MAC_NDP_OBJS += $(MAC_SRC_DIR)/pe/nan/nan_datapath.o
545endif
546
547ifeq ($(CONFIG_QCACLD_WLAN_LFR2),y)
548	MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_mlm_host_roam.o \
549		$(MAC_SRC_DIR)/pe/lim/lim_send_frames_host_roam.o \
550		$(MAC_SRC_DIR)/pe/lim/lim_roam_timer_utils.o \
551		$(MAC_SRC_DIR)/pe/lim/lim_ft_preauth.o \
552		$(MAC_SRC_DIR)/pe/lim/lim_reassoc_utils.o
553endif
554
555MAC_SCH_OBJS := $(MAC_SRC_DIR)/pe/sch/sch_api.o \
556		$(MAC_SRC_DIR)/pe/sch/sch_beacon_gen.o \
557		$(MAC_SRC_DIR)/pe/sch/sch_beacon_process.o \
558		$(MAC_SRC_DIR)/pe/sch/sch_debug.o \
559		$(MAC_SRC_DIR)/pe/sch/sch_message.o
560
561MAC_RRM_OBJS :=	$(MAC_SRC_DIR)/pe/rrm/rrm_api.o
562
563MAC_OBJS := 	$(MAC_CFG_OBJS) \
564		$(MAC_DPH_OBJS) \
565		$(MAC_LIM_OBJS) \
566		$(MAC_SCH_OBJS) \
567		$(MAC_RRM_OBJS) \
568		$(MAC_NDP_OBJS)
569
570############ SAP ############
571SAP_DIR :=	core/sap
572SAP_INC_DIR :=	$(SAP_DIR)/inc
573SAP_SRC_DIR :=	$(SAP_DIR)/src
574
575SAP_INC := 	-I$(WLAN_ROOT)/$(SAP_INC_DIR) \
576		-I$(WLAN_ROOT)/$(SAP_SRC_DIR)
577
578SAP_OBJS :=	$(SAP_SRC_DIR)/sap_api_link_cntl.o \
579		$(SAP_SRC_DIR)/sap_ch_select.o \
580		$(SAP_SRC_DIR)/sap_fsm.o \
581		$(SAP_SRC_DIR)/sap_module.o
582
583############ DFS ############ 350
584DFS_DIR :=	$(SAP_DIR)/dfs
585DFS_INC_DIR :=	$(DFS_DIR)/inc
586DFS_SRC_DIR :=	$(DFS_DIR)/src
587
588DFS_INC :=	-I$(WLAN_ROOT)/$(DFS_INC_DIR) \
589		-I$(WLAN_ROOT)/$(DFS_SRC_DIR)
590
591DFS_OBJS :=	$(DFS_SRC_DIR)/dfs_bindetects.o \
592		$(DFS_SRC_DIR)/dfs.o \
593		$(DFS_SRC_DIR)/dfs_debug.o\
594		$(DFS_SRC_DIR)/dfs_fcc_bin5.o\
595		$(DFS_SRC_DIR)/dfs_init.o\
596		$(DFS_SRC_DIR)/dfs_misc.o\
597		$(DFS_SRC_DIR)/dfs_nol.o\
598		$(DFS_SRC_DIR)/dfs_phyerr_tlv.o\
599		$(DFS_SRC_DIR)/dfs_process_phyerr.o\
600		$(DFS_SRC_DIR)/dfs_process_radarevent.o\
601		$(DFS_SRC_DIR)/dfs_staggered.o
602
603############ SME ############
604SME_DIR :=	core/sme
605SME_INC_DIR :=	$(SME_DIR)/inc
606SME_SRC_DIR :=	$(SME_DIR)/src
607
608SME_INC := 	-I$(WLAN_ROOT)/$(SME_INC_DIR) \
609		-I$(WLAN_ROOT)/$(SME_SRC_DIR)/csr
610
611SME_CSR_OBJS := $(SME_SRC_DIR)/csr/csr_api_roam.o \
612		$(SME_SRC_DIR)/csr/csr_api_scan.o \
613		$(SME_SRC_DIR)/csr/csr_cmd_process.o \
614		$(SME_SRC_DIR)/csr/csr_link_list.o \
615		$(SME_SRC_DIR)/csr/csr_neighbor_roam.o \
616		$(SME_SRC_DIR)/csr/csr_util.o \
617
618
619ifeq ($(CONFIG_QCACLD_WLAN_LFR2),y)
620SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csr_roam_preauth.o \
621		$(SME_SRC_DIR)/csr/csr_host_scan_roam.o
622endif
623
624
625ifeq ($(CONFIG_QCOM_TDLS),y)
626SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csr_tdls_process.o
627endif
628
629SME_QOS_OBJS := $(SME_SRC_DIR)/qos/sme_qos.o
630
631SME_CMN_OBJS := $(SME_SRC_DIR)/common/sme_api.o \
632		$(SME_SRC_DIR)/common/sme_ft_api.o \
633		$(SME_SRC_DIR)/common/sme_power_save.o \
634		$(SME_SRC_DIR)/common/sme_trace.o
635
636SME_P2P_OBJS = $(SME_SRC_DIR)/p2p/p2p_api.o
637
638SME_RRM_OBJS := $(SME_SRC_DIR)/rrm/sme_rrm.o
639
640ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
641SME_NAN_OBJS = $(SME_SRC_DIR)/nan/nan_api.o
642endif
643
644ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
645SME_NDP_OBJS += $(SME_SRC_DIR)/nan/nan_datapath_api.o
646endif
647
648SME_OBJS :=	$(SME_CMN_OBJS) \
649		$(SME_CSR_OBJS) \
650		$(SME_P2P_OBJS) \
651		$(SME_QOS_OBJS) \
652		$(SME_RRM_OBJS) \
653		$(SME_NAN_OBJS) \
654		$(SME_NDP_OBJS)
655
656############ NLINK ############
657NLINK_DIR     :=	core/utils/nlink
658NLINK_INC_DIR :=	$(NLINK_DIR)/inc
659NLINK_SRC_DIR :=	$(NLINK_DIR)/src
660
661NLINK_INC     := 	-I$(WLAN_ROOT)/$(NLINK_INC_DIR)
662NLINK_OBJS    :=	$(NLINK_SRC_DIR)/wlan_nlink_srv.o
663
664############ PTT ############
665PTT_DIR     :=	core/utils/ptt
666PTT_INC_DIR :=	$(PTT_DIR)/inc
667PTT_SRC_DIR :=	$(PTT_DIR)/src
668
669PTT_INC     := 	-I$(WLAN_ROOT)/$(PTT_INC_DIR)
670PTT_OBJS    :=	$(PTT_SRC_DIR)/wlan_ptt_sock_svc.o
671
672############ WLAN_LOGGING ############
673WLAN_LOGGING_DIR     :=	core/utils/logging
674WLAN_LOGGING_INC_DIR :=	$(WLAN_LOGGING_DIR)/inc
675WLAN_LOGGING_SRC_DIR :=	$(WLAN_LOGGING_DIR)/src
676
677WLAN_LOGGING_INC     := -I$(WLAN_ROOT)/$(WLAN_LOGGING_INC_DIR)
678WLAN_LOGGING_OBJS    := $(WLAN_LOGGING_SRC_DIR)/wlan_logging_sock_svc.o
679
680############ SYS ############
681SYS_DIR :=	core/mac/src/sys
682
683SYS_INC := 	-I$(WLAN_ROOT)/$(SYS_DIR)/common/inc \
684		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/platform/inc \
685		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/system/inc \
686		-I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/utils/inc
687
688SYS_COMMON_SRC_DIR := $(SYS_DIR)/common/src
689SYS_LEGACY_SRC_DIR := $(SYS_DIR)/legacy/src
690SYS_OBJS :=	$(SYS_COMMON_SRC_DIR)/wlan_qct_sys.o \
691		$(SYS_LEGACY_SRC_DIR)/platform/src/sys_wrapper.o \
692		$(SYS_LEGACY_SRC_DIR)/system/src/mac_init_api.o \
693		$(SYS_LEGACY_SRC_DIR)/system/src/sys_entry_func.o \
694		$(SYS_LEGACY_SRC_DIR)/utils/src/dot11f.o \
695		$(SYS_LEGACY_SRC_DIR)/utils/src/log_api.o \
696		$(SYS_LEGACY_SRC_DIR)/utils/src/mac_trace.o \
697		$(SYS_LEGACY_SRC_DIR)/utils/src/parser_api.o \
698		$(SYS_LEGACY_SRC_DIR)/utils/src/utils_api.o \
699		$(SYS_LEGACY_SRC_DIR)/utils/src/utils_parser.o
700
701############ Qca-wifi-host-cmn ############
702QDF_OS_DIR :=	qdf
703QDF_OS_INC_DIR := $(QDF_OS_DIR)/inc
704QDF_OS_SRC_DIR := $(QDF_OS_DIR)/linux/src
705QDF_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(QDF_OS_SRC_DIR)
706
707QDF_INC :=	-I$(WLAN_COMMON_INC)/$(QDF_OS_INC_DIR) \
708		-I$(WLAN_COMMON_INC)/$(QDF_OS_SRC_DIR)
709
710QDF_OBJS := 	$(QDF_OBJ_DIR)/qdf_defer.o \
711		$(QDF_OBJ_DIR)/qdf_event.o \
712		$(QDF_OBJ_DIR)/qdf_list.o \
713		$(QDF_OBJ_DIR)/qdf_lock.o \
714		$(QDF_OBJ_DIR)/qdf_mc_timer.o \
715		$(QDF_OBJ_DIR)/qdf_mem.o \
716		$(QDF_OBJ_DIR)/qdf_nbuf.o \
717		$(QDF_OBJ_DIR)/qdf_threads.o \
718		$(QDF_OBJ_DIR)/qdf_trace.o
719
720############ CDS (Connectivity driver services) ############
721CDS_DIR :=	core/cds
722CDS_INC_DIR :=	$(CDS_DIR)/inc
723CDS_SRC_DIR :=	$(CDS_DIR)/src
724
725CDS_INC := 	-I$(WLAN_ROOT)/$(CDS_INC_DIR) \
726		-I$(WLAN_ROOT)/$(CDS_SRC_DIR)
727
728CDS_OBJS :=	$(CDS_SRC_DIR)/cds_api.o \
729		$(CDS_SRC_DIR)/cds_reg_service.o \
730		$(CDS_SRC_DIR)/cds_mq.o \
731		$(CDS_SRC_DIR)/cds_packet.o \
732		$(CDS_SRC_DIR)/cds_regdomain.o \
733		$(CDS_SRC_DIR)/cds_sched.o \
734		$(CDS_SRC_DIR)/cds_concurrency.o \
735		$(CDS_SRC_DIR)/cds_utils.o \
736		$(CDS_SRC_DIR)/cds_mc_timer.o
737
738
739########### BMI ###########
740BMI_DIR := core/bmi
741
742BMI_INC := -I$(WLAN_ROOT)/$(BMI_DIR)/inc
743
744BMI_OBJS := $(BMI_DIR)/src/bmi.o \
745            $(BMI_DIR)/src/ol_fw.o \
746            $(BMI_DIR)/src/ol_fw_common.o
747BMI_OBJS += $(BMI_DIR)/src/bmi_1.o
748
749########### WMI ###########
750WMI_ROOT_DIR := wmi
751
752WMI_SRC_DIR := $(WMI_ROOT_DIR)/src
753WMI_INC_DIR := $(WMI_ROOT_DIR)/inc
754WMI_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(WMI_SRC_DIR)
755
756WMI_INC := -I$(WLAN_COMMON_INC)/$(WMI_INC_DIR)
757
758WMI_OBJS := $(WMI_OBJ_DIR)/wmi_unified.o \
759	    $(WMI_OBJ_DIR)/wmi_tlv_helper.o \
760	    $(WMI_OBJ_DIR)/wmi_unified_tlv.o \
761	    $(WMI_OBJ_DIR)/wmi_unified_api.o \
762	    $(WMI_OBJ_DIR)/wmi_unified_non_tlv.o
763
764########### FWLOG ###########
765FWLOG_DIR := core/utils/fwlog
766
767FWLOG_INC := -I$(WLAN_ROOT)/$(FWLOG_DIR)
768
769FWLOG_OBJS := $(FWLOG_DIR)/dbglog_host.o
770
771############ TXRX ############
772TXRX_DIR :=     core/dp/txrx
773TXRX_INC :=     -I$(WLAN_ROOT)/$(TXRX_DIR)
774
775TXRX_OBJS := $(TXRX_DIR)/ol_txrx.o \
776                $(TXRX_DIR)/ol_cfg.o \
777                $(TXRX_DIR)/ol_rx.o \
778                $(TXRX_DIR)/ol_rx_fwd.o \
779                $(TXRX_DIR)/ol_txrx.o \
780                $(TXRX_DIR)/ol_rx_defrag.o \
781                $(TXRX_DIR)/ol_tx_desc.o \
782                $(TXRX_DIR)/ol_tx.o \
783                $(TXRX_DIR)/ol_rx_reorder_timeout.o \
784                $(TXRX_DIR)/ol_rx_reorder.o \
785                $(TXRX_DIR)/ol_rx_pn.o \
786                $(TXRX_DIR)/ol_tx_queue.o \
787                $(TXRX_DIR)/ol_txrx_peer_find.o \
788                $(TXRX_DIR)/ol_txrx_event.o \
789                $(TXRX_DIR)/ol_txrx_encap.o \
790                $(TXRX_DIR)/ol_tx_send.o \
791                $(TXRX_DIR)/ol_tx_sched.o \
792                $(TXRX_DIR)/ol_tx_classify.o
793
794ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
795TXRX_OBJS +=     $(TXRX_DIR)/ol_txrx_flow_control.o
796endif
797
798############ DP 3.0 ############
799DP_INC := -I$(WLAN_COMMON_ROOT)/dp/inc \
800	-I$(WLAN_COMMON_ROOT)/dp/wifi3.0
801
802DP_SRC := $(WLAN_COMMON_ROOT)/dp/wifi3.0
803DP_OBJS := $(DP_SRC)/dp_main.o \
804		$(DP_SRC)/dp_tx.o \
805		$(DP_SRC)/dp_tx_desc.o \
806		$(DP_SRC)/dp_rx.o \
807		$(DP_SRC)/dp_rx_err.o \
808		$(DP_SRC)/dp_htt.o \
809		$(DP_SRC)/dp_peer.o \
810		$(DP_SRC)/dp_rx_desc.o
811
812############ CFG ############
813WCFG_DIR := $(WLAN_COMMON_ROOT)/wlan_cfg
814WCFG_INC := -I$(WCFG_DIR)
815WCFG_OBJS := $(WCFG_DIR)/wlan_cfg.o
816
817############ OL ############
818OL_DIR :=     core/dp/ol
819OL_INC :=     -I$(WLAN_ROOT)/$(OL_DIR)/inc
820
821############ CDP ############
822CDP_ROOT_DIR := dp
823CDP_INC_DIR := $(CDP_ROOT_DIR)/inc
824CDP_INC := -I$(WLAN_COMMON_INC)/$(CDP_INC_DIR)
825
826############ PKTLOG ############
827PKTLOG_DIR :=      core/utils/pktlog
828PKTLOG_INC :=      -I$(WLAN_ROOT)/$(PKTLOG_DIR)/include
829
830PKTLOG_OBJS :=	$(PKTLOG_DIR)/pktlog_ac.o \
831		$(PKTLOG_DIR)/pktlog_internal.o \
832		$(PKTLOG_DIR)/linux_ac.o
833
834############ HTT ############
835HTT_DIR :=      core/dp/htt
836HTT_INC :=      -I$(WLAN_ROOT)/$(HTT_DIR)
837
838HTT_OBJS := $(HTT_DIR)/htt_tx.o \
839            $(HTT_DIR)/htt.o \
840            $(HTT_DIR)/htt_t2h.o \
841            $(HTT_DIR)/htt_h2t.o \
842            $(HTT_DIR)/htt_fw_stats.o \
843            $(HTT_DIR)/htt_rx.o
844
845
846############## INIT-DEINIT ###########
847INIT_DEINIT_DIR := init_deinit/dispatcher
848INIT_DEINIT_INC_DIR := $(INIT_DEINIT_DIR)/inc
849INIT_DEINIT_SRC_DIR := $(INIT_DEINIT_DIR)/src
850INIT_DEINIT_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(INIT_DEINIT_SRC_DIR)
851INIT_DEINIT_INC := -I$(WLAN_COMMON_INC)/$(INIT_DEINIT_INC_DIR)
852INIT_DEINIT_OBJS := $(INIT_DEINIT_OBJ_DIR)/dispatcher_init_deinit.o
853
854
855############## HTC ##########
856HTC_DIR := htc
857HTC_INC := -I$(WLAN_COMMON_INC)/$(HTC_DIR)
858
859HTC_OBJS := $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc.o \
860            $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_send.o \
861            $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_recv.o \
862            $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_services.o
863
864########### HIF ###########
865HIF_DIR := hif
866HIF_CE_DIR := $(HIF_DIR)/src/ce
867
868HIF_DISPATCHER_DIR := $(HIF_DIR)/src/dispatcher
869
870HIF_PCIE_DIR := $(HIF_DIR)/src/pcie
871HIF_SNOC_DIR := $(HIF_DIR)/src/snoc
872HIF_USB_DIR := $(HIF_DIR)/src/usb
873HIF_SDIO_DIR := $(HIF_DIR)/src/sdio
874
875HIF_SDIO_NATIVE_DIR := $(HIF_SDIO_DIR)/native_sdio
876HIF_SDIO_NATIVE_INC_DIR := $(HIF_SDIO_NATIVE_DIR)/include
877HIF_SDIO_NATIVE_SRC_DIR := $(HIF_SDIO_NATIVE_DIR)/src
878
879HIF_INC := -I$(WLAN_COMMON_INC)/$(HIF_DIR)/inc \
880	   -I$(WLAN_COMMON_INC)/$(HIF_DIR)/src \
881	   -I$(WLAN_COMMON_INC)/$(HIF_CE_DIR)
882
883ifeq ($(CONFIG_HIF_PCI), 1)
884HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
885HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_PCIE_DIR)
886endif
887
888ifeq ($(CONFIG_HIF_SNOC), 1)
889HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
890HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SNOC_DIR)
891endif
892
893ifeq ($(CONFIG_HIF_USB), 1)
894HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
895HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_USB_DIR)
896endif
897
898ifeq ($(CONFIG_HIF_SDIO), 1)
899HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
900HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SDIO_DIR)
901HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SDIO_NATIVE_INC_DIR)
902endif
903
904HIF_COMMON_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/ath_procfs.o \
905                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_main.o \
906                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/mp_dev.o
907
908HIF_CE_OBJS :=  $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_bmi.o \
909                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_diag.o \
910                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_main.o \
911                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service.o \
912                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_tasklet.o \
913                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/regtable.o \
914                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service_srng.o \
915
916ifeq ($(CONFIG_LITHIUM),y)
917HIF_CE_OBJS +=  $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/qca6290def.o
918endif
919
920HIF_USB_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_USB_DIR)/usbdrv.o \
921                $(WLAN_COMMON_ROOT)/$(HIF_USB_DIR)/hif_usb.o \
922                $(WLAN_COMMON_ROOT)/$(HIF_USB_DIR)/if_usb.o \
923                $(WLAN_COMMON_ROOT)/$(HIF_USB_DIR)/regtable_usb.o
924
925HIF_SDIO_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_send.o \
926                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_bmi_reg_access.o \
927                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_diag_reg_access.o \
928                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_dev.o \
929                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio.o \
930                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_recv.o \
931                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/regtable_sdio.o
932
933HIF_SDIO_NATIVE_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SDIO_NATIVE_SRC_DIR)/hif.o \
934                        $(WLAN_COMMON_ROOT)/$(HIF_SDIO_NATIVE_SRC_DIR)/hif_scatter.o
935
936ifeq ($(CONFIG_WLAN_NAPI), y)
937HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_napi.o
938endif
939
940HIF_PCIE_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_PCIE_DIR)/if_pci.o
941HIF_SNOC_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SNOC_DIR)/if_snoc.o
942HIF_SDIO_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/if_sdio.o
943
944HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus.o
945HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/dummy.o
946
947ifeq ($(CONFIG_HIF_PCI), 1)
948HIF_OBJS += $(HIF_PCIE_OBJS)
949HIF_OBJS += $(HIF_COMMON_OBJS)
950HIF_OBJS += $(HIF_CE_OBJS)
951HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_pci.o
952endif
953
954ifeq ($(CONFIG_HIF_SNOC), 1)
955HIF_OBJS += $(HIF_SNOC_OBJS)
956HIF_OBJS += $(HIF_COMMON_OBJS)
957HIF_OBJS += $(HIF_CE_OBJS)
958HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_snoc.o
959endif
960
961ifeq ($(CONFIG_HIF_SDIO), 1)
962HIF_OBJS += $(HIF_SDIO_OBJS)
963HIF_OBJS += $(HIF_SDIO_NATIVE_OBJS)
964HIF_OBJS += $(HIF_COMMON_OBJS)
965HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_sdio.o
966endif
967
968ifeq ($(CONFIG_HIF_USB), 1)
969HIF_OBJS += $(HIF_USB_OBJS)
970HIF_OBJS += $(HIF_COMMON_OBJS)
971HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_usb.o
972endif
973
974############ HAL ############
975HAL_DIR :=	hal
976HAL_INC :=	-I$(WLAN_COMMON_INC)/$(HAL_DIR)/inc \
977		-I$(WLAN_COMMON_INC)/$(HAL_DIR)/wifi3.0
978
979HAL_OBJS :=	$(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/hal_srng.o \
980		$(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/hal_rx.o \
981		$(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/hal_wbm.o
982
983############ WMA ############
984WMA_DIR :=	core/wma
985
986WMA_INC_DIR :=  $(WMA_DIR)/inc
987WMA_SRC_DIR :=  $(WMA_DIR)/src
988
989WMA_INC :=	-I$(WLAN_ROOT)/$(WMA_INC_DIR) \
990		-I$(WLAN_ROOT)/$(WMA_SRC_DIR)
991
992ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
993WMA_NDP_OBJS += $(WMA_SRC_DIR)/wma_nan_datapath.o
994endif
995
996WMA_OBJS :=	$(WMA_SRC_DIR)/wma_main.o \
997		$(WMA_SRC_DIR)/wma_scan_roam.o \
998		$(WMA_SRC_DIR)/wma_dev_if.o \
999		$(WMA_SRC_DIR)/wma_mgmt.o \
1000		$(WMA_SRC_DIR)/wma_power.o \
1001		$(WMA_SRC_DIR)/wma_data.o \
1002		$(WMA_SRC_DIR)/wma_utils.o \
1003		$(WMA_SRC_DIR)/wma_features.o \
1004		$(WMA_SRC_DIR)/wma_dfs_interface.o \
1005		$(WMA_SRC_DIR)/wlan_qct_wma_legacy.o\
1006		$(WMA_NDP_OBJS)
1007
1008ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
1009WMA_OBJS+=	$(WMA_DIR)/wma_ocb.o
1010endif
1011ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y)
1012WMA_OBJS +=	$(WMA_SRC_DIR)/wma_utils_ut.o
1013endif
1014
1015############## PLD ##########
1016PLD_DIR := core/pld
1017PLD_INC_DIR := $(PLD_DIR)/inc
1018PLD_SRC_DIR := $(PLD_DIR)/src
1019
1020PLD_INC :=	-I$(WLAN_ROOT)/$(PLD_INC_DIR) \
1021		-I$(WLAN_ROOT)/$(PLD_SRC_DIR)
1022
1023PLD_OBJS :=	$(PLD_SRC_DIR)/pld_common.o
1024
1025ifeq ($(CONFIG_PCI), y)
1026PLD_OBJS +=	$(PLD_SRC_DIR)/pld_pcie.o
1027endif
1028ifeq ($(CONFIG_ICNSS),y)
1029PLD_OBJS +=	$(PLD_SRC_DIR)/pld_snoc.o
1030endif
1031ifeq ($(CONFIG_CNSS_SDIO),y)
1032PLD_OBJS +=	$(PLD_SRC_DIR)/pld_sdio.o
1033endif
1034ifeq ($(CONFIG_PLD_USB_CNSS), y)
1035PLD_OBJS +=	$(PLD_SRC_DIR)/pld_usb.o
1036endif
1037
1038TARGET_INC :=	-I$(WLAN_ROOT)/../fw-api/hw/qca6290/v1 \
1039		-I$(WLAN_ROOT)/../fw-api/fw
1040
1041LINUX_INC :=	-Iinclude/linux
1042
1043INCS :=		$(HDD_INC) \
1044		$(EPPING_INC) \
1045		$(LINUX_INC) \
1046		$(MAC_INC) \
1047		$(SAP_INC) \
1048		$(SME_INC) \
1049		$(SYS_INC) \
1050		$(QDF_INC) \
1051		$(CDS_INC) \
1052		$(DFS_INC)
1053
1054INCS +=		$(WMA_INC) \
1055		$(UAPI_INC) \
1056		$(COMMON_INC) \
1057		$(WMI_INC) \
1058		$(FWLOG_INC) \
1059		$(TXRX_INC) \
1060		$(OL_INC) \
1061		$(CDP_INC) \
1062		$(PKTLOG_INC) \
1063		$(HTT_INC) \
1064		$(INIT_DEINIT_INC) \
1065		$(HTC_INC) \
1066		$(DFS_INC) \
1067		$(WCFG_INC) \
1068		$(DP_INC)
1069
1070INCS +=		$(HIF_INC) \
1071		$(BMI_INC) \
1072		$(HAL_INC)
1073
1074INCS +=		$(TARGET_INC)
1075
1076INCS +=		$(NLINK_INC) \
1077		$(PTT_INC) \
1078		$(WLAN_LOGGING_INC)
1079
1080INCS +=		$(PLD_INC)
1081
1082ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
1083INCS +=		$(PKTLOG_INC)
1084endif
1085
1086ifeq ($(BUILD_DIAG_VERSION), 1)
1087INCS +=		$(HOST_DIAG_LOG_INC)
1088endif
1089
1090OBJS :=		$(HDD_OBJS) \
1091		$(EPPING_OBJS) \
1092		$(MAC_OBJS) \
1093		$(SAP_OBJS) \
1094		$(SME_OBJS) \
1095		$(SYS_OBJS) \
1096		$(QDF_OBJS) \
1097		$(CDS_OBJS) \
1098		$(DFS_OBJS)
1099
1100OBJS +=		$(WMA_OBJS) \
1101		$(TXRX_OBJS) \
1102		$(WMI_OBJS) \
1103		$(FWLOG_OBJS) \
1104		$(HTC_OBJS) \
1105		$(INIT_DEINIT_OBJS) \
1106		$(DFS_OBJS)
1107
1108OBJS +=		$(HIF_OBJS) \
1109		$(BMI_OBJS) \
1110		$(HTT_OBJS) \
1111		$(HAL_OBJS)
1112
1113OBJS +=		$(WLAN_LOGGING_OBJS)
1114OBJS +=		$(NLINK_OBJS)
1115OBJS +=		$(PTT_OBJS)
1116
1117OBJS +=		$(PLD_OBJS)
1118
1119ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
1120OBJS +=		$(PKTLOG_OBJS)
1121endif
1122
1123ifeq ($(BUILD_DIAG_VERSION), 1)
1124OBJS +=		$(HOST_DIAG_LOG_OBJS)
1125endif
1126
1127OBJS +=		$(DP_OBJS) \
1128		$(WCFG_OBJS)
1129
1130EXTRA_CFLAGS += $(INCS)
1131
1132CDEFINES :=	-DANI_LITTLE_BYTE_ENDIAN \
1133		-DANI_LITTLE_BIT_ENDIAN \
1134		-DDOT11F_LITTLE_ENDIAN_HOST \
1135		-DANI_COMPILER_TYPE_GCC \
1136		-DANI_OS_TYPE_ANDROID=6 \
1137		-DPTT_SOCK_SVC_ENABLE \
1138		-Wall\
1139		-Werror\
1140		-D__linux__ \
1141		-DHAL_SELF_STA_PER_BSS=1 \
1142		-DFEATURE_WLAN_WAPI \
1143		-DFEATURE_OEM_DATA_SUPPORT\
1144		-DSOFTAP_CHANNEL_RANGE \
1145		-DWLAN_AP_STA_CONCURRENCY \
1146		-DFEATURE_WLAN_SCAN_PNO \
1147		-DWLAN_FEATURE_PACKET_FILTERING \
1148		-DWLAN_FEATURE_P2P_DEBUG \
1149		-DWLAN_ENABLE_AGEIE_ON_SCAN_RESULTS \
1150		-DWLANTL_DEBUG\
1151		-DWLAN_NS_OFFLOAD \
1152		-DWLAN_SOFTAP_VSTA_FEATURE \
1153		-DWLAN_FEATURE_GTK_OFFLOAD \
1154		-DWLAN_WAKEUP_EVENTS \
1155		-DFEATURE_WLAN_RA_FILTERING\
1156		-DWLAN_NL80211_TESTMODE \
1157		-DFEATURE_WLAN_LPHB \
1158		-DQCA_SUPPORT_TX_THROTTLE \
1159		-DWMI_INTERFACE_EVENT_LOGGING \
1160		-DATH_SUPPORT_WAPI \
1161		-DWLAN_FEATURE_LINK_LAYER_STATS \
1162		-DFEATURE_WLAN_EXTSCAN \
1163		-DWLAN_FEATURE_MBSSID \
1164		-DCONFIG_160MHZ_SUPPORT \
1165		-DCONFIG_MCL
1166
1167ifneq ($(CONFIG_HIF_USB), 1)
1168CDEFINES += -DWLAN_LOGGING_SOCK_SVC_ENABLE
1169endif
1170
1171ifeq ($(CONFIG_CNSS), y)
1172ifeq ($(CONFIG_CNSS_SDIO), y)
1173CDEFINES += -DCONFIG_PLD_SDIO_CNSS
1174else
1175CDEFINES += -DCONFIG_PLD_PCIE_CNSS
1176endif
1177endif
1178
1179ifeq ($(CONFIG_CNSS2), y)
1180CDEFINES += -DCONFIG_PLD_PCIE_CNSS
1181CDEFINES += -DCONFIG_PLD_PCIE_INIT
1182endif
1183
1184ifeq ($(CONFIG_ICNSS), y)
1185CDEFINES += -DCONFIG_PLD_SNOC_ICNSS
1186endif
1187
1188ifeq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
1189CDEFINES += -DQCA_WIFI_3_0
1190CDEFINES += -DQCA_WIFI_3_0_EMU
1191endif
1192
1193ifeq (y,$(filter y,$(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1194CDEFINES += -DQCA_WIFI_3_0_ADRASTEA
1195CDEFINES += -DADRASTEA_SHADOW_REGISTERS
1196CDEFINES += -DADRASTEA_RRI_ON_DDR
1197endif
1198
1199ifeq ($(CONFIG_WLAN_FASTPATH), y)
1200CDEFINES +=	-DWLAN_FEATURE_FASTPATH
1201endif
1202
1203ifeq ($(CONFIG_FEATURE_PKTLOG), y)
1204CDEFINES +=     -DFEATURE_PKTLOG
1205endif
1206
1207ifeq ($(CONFIG_FEATURE_DP_TRACE), y)
1208CDEFINES +=	-DFEATURE_DP_TRACE
1209endif
1210
1211ifeq ($(CONFIG_WLAN_NAPI), y)
1212CDEFINES += -DFEATURE_NAPI
1213ifeq ($(CONFIG_WLAN_NAPI_DEBUG), y)
1214CDEFINES += -DFEATURE_NAPI_DEBUG
1215endif
1216endif
1217
1218ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
1219CDEFINES += -DMSM_PLATFORM
1220endif
1221
1222CDEFINES +=	-DQCA_SUPPORT_TXRX_LOCAL_PEER_ID
1223
1224ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
1225CDEFINES +=	-DQCA_LL_TX_FLOW_CONTROL_V2
1226CDEFINES +=	-DQCA_LL_TX_FLOW_GLOBAL_MGMT_POOL
1227else
1228ifeq ($(CONFIG_ROME_IF),pci)
1229ifneq ($(CONFIG_LITHIUM),y)
1230CDEFINES +=	-DQCA_LL_LEGACY_TX_FLOW_CONTROL
1231endif
1232endif
1233endif
1234
1235ifneq ($(CONFIG_QCA_CLD_WLAN),)
1236CDEFINES += -DWCN_PRONTO
1237CDEFINES += -DWCN_PRONTO_V1
1238endif
1239
1240ifeq ($(BUILD_DEBUG_VERSION),1)
1241CDEFINES +=	-DWLAN_DEBUG \
1242		-DTRACE_RECORD \
1243		-DLIM_TRACE_RECORD \
1244		-DSME_TRACE_RECORD \
1245		-DHDD_TRACE_RECORD \
1246		-DPE_DEBUG_LOGW \
1247		-DPE_DEBUG_LOGE
1248endif
1249
1250ifeq ($(CONFIG_SLUB_DEBUG_ON),y)
1251CDEFINES += -DTIMER_MANAGER
1252CDEFINES += -DMEMORY_DEBUG
1253CDEFINES += -DWLAN_SUSPEND_RESUME_TEST
1254endif
1255
1256ifeq ($(HAVE_CFG80211),1)
1257CDEFINES += -DWLAN_FEATURE_P2P
1258CDEFINES += -DWLAN_FEATURE_WFD
1259ifeq ($(CONFIG_QCOM_VOWIFI_11R),y)
1260CDEFINES += -DKERNEL_SUPPORT_11R_CFG80211
1261CDEFINES += -DUSE_80211_WMMTSPEC_FOR_RIC
1262endif
1263endif
1264
1265ifeq ($(CONFIG_QCOM_ESE),y)
1266CDEFINES += -DFEATURE_WLAN_ESE
1267CDEFINES += -DQCA_COMPUTE_TX_DELAY
1268CDEFINES += -DQCA_COMPUTE_TX_DELAY_PER_TID
1269endif
1270
1271#normally, TDLS negative behavior is not needed
1272ifeq ($(CONFIG_QCOM_TDLS),y)
1273CDEFINES += -DFEATURE_WLAN_TDLS
1274endif
1275
1276ifeq ($(CONFIG_QCACLD_WLAN_LFR3),y)
1277CDEFINES += -DWLAN_FEATURE_ROAM_OFFLOAD
1278endif
1279
1280ifeq ($(CONFIG_QCACLD_WLAN_LFR2),y)
1281CDEFINES += -DWLAN_FEATURE_HOST_ROAM
1282endif
1283
1284ifeq ($(BUILD_DIAG_VERSION),1)
1285CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT
1286CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_CSR
1287CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_LIM
1288ifeq ($(CONFIG_HIF_PCI), 1)
1289CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1290endif
1291endif
1292
1293ifeq ($(CONFIG_HIF_USB), 1)
1294CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1295CDEFINES += -DQCA_SUPPORT_OL_RX_REORDER_TIMEOUT
1296CDEFINES += -DCONFIG_ATH_PCIE_MAX_PERF=0 -DCONFIG_ATH_PCIE_AWAKE_WHILE_DRIVER_LOAD=0 -DCONFIG_DISABLE_CDC_MAX_PERF_WAR=0
1297endif
1298
1299ifeq ($(CONFIG_WLAN_FEATURE_11W),y)
1300CDEFINES += -DWLAN_FEATURE_11W
1301endif
1302
1303ifeq ($(CONFIG_QCA_TXDESC_SANITY_CHECKS), 1)
1304CDEFINES += -DQCA_SUPPORT_TXDESC_SANITY_CHECKS
1305endif
1306
1307ifeq ($(CONFIG_QCOM_LTE_COEX),y)
1308CDEFINES += -DFEATURE_WLAN_CH_AVOID
1309endif
1310
1311ifeq ($(CONFIG_WLAN_FEATURE_LPSS),y)
1312CDEFINES += -DWLAN_FEATURE_LPSS
1313endif
1314
1315ifneq ($(TARGET_BUILD_VARIANT),user)
1316CDEFINES += -DDESC_DUP_DETECT_DEBUG
1317CDEFINES += -DDEBUG_RX_RING_BUFFER
1318endif
1319
1320ifeq ($(PANIC_ON_BUG),1)
1321CDEFINES += -DPANIC_ON_BUG
1322endif
1323
1324ifeq ($(WLAN_OPEN_SOURCE), 1)
1325CDEFINES += -DWLAN_OPEN_SOURCE
1326endif
1327
1328ifeq ($(CONFIG_FEATURE_STATS_EXT), 1)
1329CDEFINES += -DWLAN_FEATURE_STATS_EXT
1330endif
1331
1332ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
1333CDEFINES += -DWLAN_FEATURE_NAN
1334endif
1335
1336ifeq ($(CONFIG_QCA_IBSS_SUPPORT), 1)
1337CDEFINES += -DQCA_IBSS_SUPPORT
1338endif
1339
1340#Enable OL debug and wmi unified functions
1341ifeq ($(CONFIG_ATH_PERF_PWR_OFFLOAD), 1)
1342CDEFINES += -DATH_PERF_PWR_OFFLOAD
1343endif
1344
1345#Disable packet log
1346ifeq ($(CONFIG_REMOVE_PKT_LOG), 1)
1347CDEFINES += -DREMOVE_PKT_LOG
1348endif
1349
1350#Enable 11AC TX
1351ifeq ($(CONFIG_ATH_11AC_TXCOMPACT), 1)
1352CDEFINES += -DATH_11AC_TXCOMPACT
1353endif
1354
1355#Enable OS specific IRQ abstraction
1356ifeq ($(CONFIG_ATH_SUPPORT_SHARED_IRQ), 1)
1357CDEFINES += -DATH_SUPPORT_SHARED_IRQ
1358endif
1359
1360#Enable message based HIF instead of RAW access in BMI
1361ifeq ($(CONFIG_HIF_MESSAGE_BASED), 1)
1362CDEFINES += -DHIF_MESSAGE_BASED
1363endif
1364
1365#Enable PCI specific APIS (dma, etc)
1366ifeq ($(CONFIG_HIF_PCI), 1)
1367CDEFINES += -DHIF_PCI
1368endif
1369
1370ifeq ($(CONFIG_HIF_SNOC), 1)
1371CDEFINES += -DHIF_SNOC
1372endif
1373
1374#Enable High Latency related Flags
1375ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
1376CDEFINES += -DCONFIG_HL_SUPPORT \
1377            -DCONFIG_AR6320_SUPPORT \
1378            -DSDIO_3_0 \
1379            -DHIF_SDIO \
1380            -DCONFIG_DISABLE_CDC_MAX_PERF_WAR=0 \
1381            -DCONFIG_ATH_PROCFS_DIAG_SUPPORT \
1382            -DFEATURE_HL_GROUP_CREDIT_FLOW_CONTROL \
1383            -DHIF_MBOX_SLEEP_WAR \
1384            -DDEBUG_HL_LOGGING \
1385            -DQCA_BAD_PEER_TX_FLOW_CL \
1386            -DCONFIG_TX_DESC_HI_PRIO_RESERVE \
1387            -DCONFIG_PER_VDEV_TX_DESC_POOL \
1388            -DCONFIG_SDIO \
1389            -DFEATURE_WLAN_FORCE_SAP_SCC
1390endif
1391
1392ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
1393CDEFINES += -DWLAN_FEATURE_DSRC
1394endif
1395
1396#Enable USB specific APIS
1397ifeq ($(CONFIG_HIF_USB), 1)
1398CDEFINES += -DHIF_USB \
1399            -DCONFIG_PLD_USB_CNSS \
1400            -DCONFIG_HL_SUPPORT
1401endif
1402
1403#Enable FW logs through ini
1404CDEFINES += -DCONFIG_FW_LOGS_BASED_ON_INI
1405
1406#Enable pci read/write config functions
1407ifeq ($(CONFIG_ATH_PCI), 1)
1408CDEFINES += -DATH_PCI
1409endif
1410
1411#Enable power management suspend/resume functionality
1412ifeq ($(CONFIG_ATH_BUS_PM), 1)
1413CDEFINES += -DATH_BUS_PM
1414endif
1415
1416#Enable FLOWMAC module support
1417ifeq ($(CONFIG_ATH_SUPPORT_FLOWMAC_MODULE), 1)
1418CDEFINES += -DATH_SUPPORT_FLOWMAC_MODULE
1419endif
1420
1421#Enable spectral support
1422ifeq ($(CONFIG_ATH_SUPPORT_SPECTRAL), 1)
1423CDEFINES += -DATH_SUPPORT_SPECTRAL
1424endif
1425
1426#Enable WDI Event support
1427ifeq ($(CONFIG_WDI_EVENT_ENABLE), 1)
1428CDEFINES += -DWDI_EVENT_ENABLE
1429endif
1430
1431#Endianess selection
1432ifeq ($(CONFIG_LITTLE_ENDIAN), 1)
1433AH_LITTLE_ENDIAN=1234
1434CDEFINES += -DAH_BYTE_ORDER=$(AH_LITTLE_ENDIAN)
1435else
1436AH_BIG_ENDIAN=4321
1437CDEFINES += -DAH_BYTE_ORDER=$(AH_BIG_ENDIAN)
1438CDEFINES += -DBIG_ENDIAN_HOST
1439endif
1440
1441#Enable TX reclaim support
1442ifeq ($(CONFIG_TX_CREDIT_RECLAIM_SUPPORT), 1)
1443CDEFINES += -DTX_CREDIT_RECLAIM_SUPPORT
1444endif
1445
1446#Enable FTM support
1447ifeq ($(CONFIG_QCA_WIFI_FTM), 1)
1448CDEFINES += -DQCA_WIFI_FTM
1449endif
1450
1451#Enable Checksum Offload support
1452ifeq ($(CONFIG_CHECKSUM_OFFLOAD), 1)
1453CDEFINES += -DCHECKSUM_OFFLOAD
1454endif
1455
1456#Enable Checksum Offload support
1457ifeq ($(CONFIG_IPA_OFFLOAD), 1)
1458CDEFINES += -DIPA_OFFLOAD
1459endif
1460
1461ifneq ($(CONFIG_ARCH_MDM9630), y)
1462ifeq ($(CONFIG_ARCH_MDM9640), y)
1463CDEFINES += -DQCA_CONFIG_SMP
1464endif
1465endif
1466
1467#Enable GTK Offload
1468ifeq ($(CONFIG_GTK_OFFLOAD), 1)
1469CDEFINES += -DWLAN_FEATURE_GTK_OFFLOAD
1470CDEFINES += -DIGTK_OFFLOAD
1471endif
1472
1473#Enable GTK Offload
1474ifeq ($(CONFIG_EXT_WOW), 1)
1475CDEFINES += -DWLAN_FEATURE_EXTWOW_SUPPORT
1476endif
1477
1478#Mark it as SMP Kernel
1479ifeq ($(CONFIG_SMP),y)
1480CDEFINES += -DQCA_CONFIG_SMP
1481endif
1482
1483#Enable Channel Matrix restriction for all Rome only targets
1484ifneq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
1485CDEFINES += -DWLAN_ENABLE_CHNL_MATRIX_RESTRICTION
1486endif
1487
1488#Enable OBSS feature
1489CDEFINES += -DQCA_HT_2040_COEX
1490
1491#features specific to mobile router use case
1492ifeq ($(CONFIG_MOBILE_ROUTER), y)
1493
1494#enable MCC TO SCC switch
1495CDEFINES += -DFEATURE_WLAN_MCC_TO_SCC_SWITCH
1496
1497#enable wlan auto shutdown feature
1498CDEFINES += -DFEATURE_WLAN_AUTO_SHUTDOWN
1499
1500#enable for MBSSID
1501CDEFINES += -DWLAN_FEATURE_MBSSID
1502
1503#enable AP-AP ACS Optimization
1504CDEFINES += -DFEATURE_WLAN_AP_AP_ACS_OPTIMIZE
1505
1506#Enable 4address scheme
1507CDEFINES += -DFEATURE_WLAN_STA_4ADDR_SCHEME
1508
1509#Disable STA-AP Mode DFS support
1510CDEFINES += -DFEATURE_WLAN_STA_AP_MODE_DFS_DISABLE
1511
1512else #CONFIG_MOBILE_ROUTER
1513
1514#Open P2P device interface only for non-Mobile router use cases
1515CDEFINES += -DWLAN_OPEN_P2P_INTERFACE
1516
1517#Enable 2.4 GHz social channels in 5 GHz only mode for p2p usage
1518CDEFINES += -DWLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY
1519
1520endif #CONFIG_MOBILE_ROUTER
1521
1522#Green AP feature
1523ifeq ($(CONFIG_QCACLD_FEATURE_GREEN_AP),y)
1524CDEFINES += -DFEATURE_GREEN_AP
1525endif
1526
1527#Enable RX Full re-order OL feature only "LL and NON-MDM9630 platform"
1528ifneq ($(CONFIG_ARCH_MDM9630), y)
1529ifeq ($(CONFIG_HIF_PCI), 1)
1530CDEFINES += -DWLAN_FEATURE_RX_FULL_REORDER_OL
1531endif
1532endif
1533
1534#Enable Signed firmware support for split binary format
1535ifeq ($(CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT), 1)
1536CDEFINES += -DQCA_SIGNED_SPLIT_BINARY_SUPPORT
1537endif
1538
1539#Enable single firmware binary format
1540ifeq ($(CONFIG_QCA_SINGLE_BINARY_SUPPORT), 1)
1541CDEFINES += -DQCA_SINGLE_BINARY_SUPPORT
1542endif
1543
1544#Enable collecting target RAM dump after kernel panic
1545ifeq ($(CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC), 1)
1546CDEFINES += -DTARGET_RAMDUMP_AFTER_KERNEL_PANIC
1547endif
1548
1549#Enable/disable secure firmware feature
1550ifeq ($(CONFIG_FEATURE_SECURE_FIRMWARE), 1)
1551CDEFINES += -DFEATURE_SECURE_FIRMWARE
1552endif
1553
1554ifeq ($(CONFIG_ATH_PCIE_ACCESS_DEBUG), 1)
1555CDEFINES += -DCONFIG_ATH_PCIE_ACCESS_DEBUG
1556endif
1557
1558# Enable feature support fo Linux version QCMBR
1559ifeq ($(CONFIG_LINUX_QCMBR),y)
1560CDEFINES += -DLINUX_QCMBR
1561endif
1562
1563# Enable featue sync tsf between multi devices
1564ifeq ($(CONFIG_WLAN_SYNC_TSF), y)
1565CDEFINES += -DWLAN_FEATURE_TSF
1566endif
1567
1568# Enable full rx re-order offload for adrastea
1569ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1570CDEFINES += -DWLAN_FEATURE_RX_FULL_REORDER_OL
1571endif
1572
1573# Enable athdiag procfs debug support for adrastea
1574ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1575CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1576endif
1577
1578# Enable 11AC TX compact feature for adrastea
1579ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1580CDEFINES += -DATH_11AC_TXCOMPACT
1581endif
1582
1583# NOTE: CONFIG_64BIT_PADDR requires CONFIG_HELIUMPLUS
1584ifeq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
1585CONFIG_HELIUMPLUS := y
1586CONFIG_64BIT_PADDR := y
1587CONFIG_FEATURE_TSO := y
1588CONFIG_FEATURE_TSO_DEBUG := y
1589ifeq ($(CONFIG_HELIUMPLUS),y)
1590CDEFINES += -DHELIUMPLUS_PADDR64
1591CDEFINES += -DHELIUMPLUS
1592CDEFINES += -DAR900B
1593ifeq ($(CONFIG_64BIT_PADDR),y)
1594CDEFINES += -DHTT_PADDR64
1595endif
1596endif
1597endif
1598
1599ifeq ($(CONFIG_FEATURE_TSO),y)
1600CDEFINES += -DFEATURE_TSO
1601endif
1602ifeq ($(CONFIG_FEATURE_TSO_DEBUG),y)
1603CDEFINES += -DFEATURE_TSO_DEBUG
1604endif
1605
1606ifeq ($(CONFIG_WLAN_LRO), y)
1607CDEFINES += -DFEATURE_LRO
1608endif
1609
1610ifeq ($(CONFIG_MOBILE_ROUTER), y)
1611CDEFINES += -DFEATURE_AP_MCC_CH_AVOIDANCE
1612endif
1613
1614ifeq ($(CONFIG_MPC_UT_FRAMEWORK), y)
1615CDEFINES += -DMPC_UT_FRAMEWORK
1616endif
1617
1618ifeq ($(CONFIG_WLAN_OFFLOAD_PACKETS),y)
1619CDEFINES += -DWLAN_FEATURE_OFFLOAD_PACKETS
1620endif
1621
1622ifeq ($(CONFIG_WLAN_FEATURE_MEMDUMP),y)
1623CDEFINES += -DWLAN_FEATURE_MEMDUMP
1624endif
1625
1626ifeq ($(CONFIG_WLAN_FEATURE_DISA),y)
1627CDEFINES += -DWLAN_FEATURE_DISA
1628endif
1629
1630ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
1631CDEFINES += -DFEATURE_LFR_SUBNET_DETECTION
1632endif
1633
1634ifeq ($(CONFIG_MCC_TO_SCC_SWITCH), y)
1635CDEFINES += -DFEATURE_WLAN_MCC_TO_SCC_SWITCH
1636endif
1637
1638ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y)
1639CDEFINES += -DWLAN_FEATURE_NAN_DATAPATH
1640endif
1641
1642ifeq ($(CONFIG_LITHIUM),y)
1643CDEFINES += -DQCA6290_HEADERS_DEF
1644CDEFINES += -DQCA_WIFI_QCA8074
1645CDEFINES += -DQCA_WIFI_NAPIER_EMULATION
1646CDEFINES += -DQCA_WIFI_QCA8074_VP
1647CDEFINES += -DDP_INTR_POLL_BASED
1648CDEFINES += -DTX_PER_VDEV_DESC_POOL
1649endif
1650
1651# Dummy flag for WIN/MCL converged data path compilation
1652CDEFINES += -DDP_PRINT_ENABLE=0
1653CDEFINES += -DATH_SUPPORT_WRAP=0
1654#CDEFINES += -DQCA_HOST2FW_RXBUF_RING=0
1655#endof dummy flags
1656
1657KBUILD_CPPFLAGS += $(CDEFINES)
1658
1659# Currently, for versions of gcc which support it, the kernel Makefile
1660# is disabling the maybe-uninitialized warning.  Re-enable it for the
1661# WLAN driver.  Note that we must use EXTRA_CFLAGS here so that it
1662# will override the kernel settings.
1663ifeq ($(call cc-option-yn, -Wmaybe-uninitialized),y)
1664EXTRA_CFLAGS += -Wmaybe-uninitialized
1665ifneq (y,$(CONFIG_ARCH_MSM))
1666EXTRA_CFLAGS += -Wframe-larger-than=4096
1667endif
1668endif
1669
1670ifeq ($(call cc-option-yn, -Wheader-guard),y)
1671EXTRA_CFLAGS += -Wheader-guard
1672endif
1673# If the module name is not "wlan", then the define MULTI_IF_NAME to be the
1674# same a the module name. The host driver will then append MULTI_IF_NAME to
1675# any string that must be unique for all instances of the driver on the system.
1676# This allows multiple instances of the driver with different module names.
1677# If the module name is wlan, leave MULTI_IF_NAME undefined and the code will
1678# treat the driver as the primary driver.
1679ifneq ($(MODNAME), wlan)
1680CDEFINES += -DMULTI_IF_NAME=\"$(MODNAME)\"
1681endif
1682
1683# WLAN_HDD_ADAPTER_MAGIC must be unique for all instances of the driver on the
1684# system. If it is not defined, then the host driver will use the first 4
1685# characters (including NULL) of MULTI_IF_NAME to construct
1686# WLAN_HDD_ADAPTER_MAGIC.
1687ifdef WLAN_HDD_ADAPTER_MAGIC
1688CDEFINES += -DWLAN_HDD_ADAPTER_MAGIC=$(WLAN_HDD_ADAPTER_MAGIC)
1689endif
1690
1691# Module information used by KBuild framework
1692obj-$(CONFIG_QCA_CLD_WLAN) += $(MODNAME).o
1693$(MODNAME)-y := $(OBJS)
1694
1695