blob: 790481678c58aadb3c04284fc21d1f7e8e0cf347 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001# 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), y)
10ifndef CONFIG_ROME_IF
11 #use pci as default interface
12 CONFIG_ROME_IF = pci
13endif
14endif
15
16ifeq ($(KERNEL_BUILD),1)
17 # These are provided in external module based builds
18 # Need to explicitly define for Kernel-based builds
19 MODNAME := wlan
20 WLAN_ROOT := drivers/staging/qcacld-3.0
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -080021 WLAN_COMMON_ROOT := drivers/staging/qca-wifi-host-cmn
22 WLAN_COMMON_INC := $(WLAN_COMMON_ROOT)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080023endif
24
25# Make WLAN as open-source driver by default
26WLAN_OPEN_SOURCE := 1
27
28ifeq ($(KERNEL_BUILD), 0)
29 # These are configurable via Kconfig for kernel-based builds
30 # Need to explicitly configure for Android-based builds
31
32 ifeq ($(CONFIG_ARCH_MDM9630), y)
33 CONFIG_MOBILE_ROUTER := y
34 endif
35
36 ifeq ($(CONFIG_ARCH_MDM9640), y)
37 CONFIG_MOBILE_ROUTER := y
38 endif
39
40 #Flag to enable Legacy Fast Roaming3(LFR3)
41 CONFIG_QCACLD_WLAN_LFR3 := y
42
43 #JB kernel has PMKSA patches, hence enabling this flag
44 CONFIG_PRIMA_WLAN_OKC := y
45
46 # JB kernel has CPU enablement patches, so enable
47 ifeq ($(CONFIG_ROME_IF),pci)
48 CONFIG_PRIMA_WLAN_11AC_HIGH_TP := y
49 endif
50 ifeq ($(CONFIG_ROME_IF),usb)
51 CONFIG_PRIMA_WLAN_11AC_HIGH_TP := n
52 endif
53 ifeq ($(CONFIG_ROME_IF),sdio)
54 CONFIG_PRIMA_WLAN_11AC_HIGH_TP := n
55 endif
56
57 ifneq ($(CONFIG_MOBILE_ROUTER), y)
58 #Flag to enable TDLS feature
59 CONFIG_QCOM_TDLS := y
60 endif
61
62 ifeq ($(CONFIG_MOBILE_ROUTER), y)
63 CONFIG_QCACLD_FEATURE_GREEN_AP := y
64 endif
65
66 #Flag to enable Fast Transition (11r) feature
67 CONFIG_QCOM_VOWIFI_11R := y
68
69 ifneq ($(CONFIG_QCA_CLD_WLAN),)
Yue Mab8f2bb52016-02-19 16:44:06 -080070 ifeq (y,$(filter y,$(CONFIG_CNSS) $(CONFIG_ICNSS)))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080071 #Flag to enable Protected Managment Frames (11w) feature
72 CONFIG_WLAN_FEATURE_11W := y
73 #Flag to enable LTE CoEx feature
74 CONFIG_QCOM_LTE_COEX := y
75 ifneq ($(CONFIG_MOBILE_ROUTER), y)
76 #Flag to enable LPSS feature
77 CONFIG_WLAN_FEATURE_LPSS := y
78 endif
79 endif
80 endif
81
82
83 #Flag to enable Protected Managment Frames (11w) feature
84 ifeq ($(CONFIG_ROME_IF),usb)
85 CONFIG_WLAN_FEATURE_11W := y
86 endif
87 ifeq ($(CONFIG_ROME_IF),sdio)
88 CONFIG_WLAN_FEATURE_11W := y
89 endif
90
91 ifneq ($(CONFIG_MOBILE_ROUTER), y)
92 #Flag to enable NAN
93 CONFIG_QCACLD_FEATURE_NAN := y
94 endif
95
96 #Flag to enable Linux QCMBR feature as default feature
97 ifeq ($(CONFIG_ROME_IF),usb)
98 CONFIG_LINUX_QCMBR :=y
99 endif
100
101 ifeq ($(CONFIG_CNSS_EOS),y)
102 CONFIG_FEATURE_BMI_2 :=y
103 endif
104
105 CONFIG_MPC_UT_FRAMEWORK := y
106
107 #Flag to enable offload packets feature
108 CONFIG_WLAN_OFFLOAD_PACKETS := y
109
110 #Flag to enable memdump feature
111 CONFIG_WLAN_FEATURE_MEMDUMP := y
112
113 #Flag to enable Fast Path feature
114 CONFIG_WLAN_FASTPATH := y
115
116 # Flag to enable NAPI
117 CONFIG_WLAN_NAPI := y
118 CONFIG_WLAN_NAPI_DEBUG := n
119
120 # Flag to enable FW based TX Flow control
Nirav Shah9d7f2e82015-09-28 11:09:09 -0700121 ifeq ($(CONFIG_CNSS_EOS),y)
122 CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
123 else
124 CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n
125 endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800126
127 # Flag to enable LRO (Large Receive Offload)
128 ifeq ($(CONFIG_CNSS_EOS), y)
129 ifeq ($(CONFIG_INET_LRO), y)
130 CONFIG_WLAN_LRO := y
131 else
132 CONFIG_WLAN_LRO := n
133 endif
134 endif
Ravi Joshi61c3c7a2015-11-09 18:41:20 -0800135
136 # Flag to enable LFR Subnet Detection
137 CONFIG_LFR_SUBNET_DETECTION := y
Chandrasekaran Manishekar068e25e2016-03-07 11:51:07 +0530138
139 # Flag to enable MCC to SCC switch feature
140 CONFIG_MCC_TO_SCC_SWITCH := y
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800141endif
142
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800143# If not set, assume, Common driver is with in the build tree
144WLAN_COMMON_ROOT ?= qca-wifi-host-cmn
145WLAN_COMMON_INC ?= $(WLAN_ROOT)/$(WLAN_COMMON_ROOT)
146
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800147ifneq ($(CONFIG_MOBILE_ROUTER), y)
148# To enable ESE upload, dependent config
149# CONFIG_QCOM_ESE must be enabled.
150CONFIG_QCOM_ESE := y
151CONFIG_QCOM_ESE_UPLOAD := y
152endif
153
154# Feature flags which are not (currently) configurable via Kconfig
155
156#Whether to build debug version
157BUILD_DEBUG_VERSION := 1
158
159#Enable this flag to build driver in diag version
160BUILD_DIAG_VERSION := 1
161
162#Do we panic on bug? default is to warn
163PANIC_ON_BUG := 1
164
165#Enable OL debug and wmi unified functions
166CONFIG_ATH_PERF_PWR_OFFLOAD := 1
167
168#Disable packet log
169CONFIG_REMOVE_PKT_LOG := 0
170
171#Enable 11AC TX
172ifeq ($(CONFIG_ROME_IF),pci)
173 CONFIG_ATH_11AC_TXCOMPACT := 1
174endif
175ifeq ($(CONFIG_ROME_IF),usb)
176 CONFIG_ATH_11AC_TXCOMPACT := 0
177endif
178
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800179#Enable OS specific IRQ abstraction
180CONFIG_ATH_SUPPORT_SHARED_IRQ := 1
181
182#Enable message based HIF instead of RAW access in BMI
183ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
184CONFIG_HIF_MESSAGE_BASED := 0
185else
186CONFIG_HIF_MESSAGE_BASED := 1
187endif
188
189#Enable PCI specific APIS (dma, etc)
190ifeq ($(CONFIG_ROME_IF),pci)
191 CONFIG_HIF_PCI := 1
192endif
193
194#Enable pci read/write config functions
195ifeq ($(CONFIG_ROME_IF),pci)
196 CONFIG_ATH_PCI := 1
197endif
198ifeq ($(CONFIG_ROME_IF),usb)
199#CONFIG_ATH_PCI := 1
200endif
201
202ifneq ($(CONFIG_MOBILE_ROUTER), y)
203#Enable IBSS support on CLD
204CONFIG_QCA_IBSS_SUPPORT := 1
205endif
206
207#Enable power management suspend/resume functionality to PCI
208CONFIG_ATH_BUS_PM := 1
209
210#Enable FLOWMAC module support
211CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := 0
212
213#Enable spectral support
214CONFIG_ATH_SUPPORT_SPECTRAL := 0
215
216#Enable HOST statistics support
217CONFIG_SUPPORT_HOST_STATISTICS := 0
218
219#Enable WDI Event support
220CONFIG_WDI_EVENT_ENABLE := 1
221
222#Endianess selection
223CONFIG_LITTLE_ENDIAN := 1
224
225#Enable TX reclaim support
226CONFIG_TX_CREDIT_RECLAIM_SUPPORT := 0
227
228#Enable FTM support
229CONFIG_QCA_WIFI_FTM := 1
230
231#Enable Checksum Offload
232CONFIG_CHECKSUM_OFFLOAD := 1
233
234#Enable GTK offload
235CONFIG_GTK_OFFLOAD := 1
236
237#Enable EXT WOW
238ifeq ($(CONFIG_ROME_IF),pci)
239 CONFIG_EXT_WOW := 1
240endif
241
242#Set this to 1 to catch erroneous Target accesses during debug.
243CONFIG_ATH_PCIE_ACCESS_DEBUG := 0
244
245#Enable IPA offload
246ifeq ($(CONFIG_IPA), y)
247CONFIG_IPA_OFFLOAD := 1
248endif
249
250#Enable Signed firmware support for split binary format
251CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := 0
252
253#Enable single firmware binary format
254CONFIG_QCA_SINGLE_BINARY_SUPPORT := 0
255
256#Enable collecting target RAM dump after kernel panic
257CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := 1
258
259#Flag to enable/disable secure firmware feature
260CONFIG_FEATURE_SECURE_FIRMWARE := 0
261
262#Flag to enable Stats Ext implementation
263CONFIG_FEATURE_STATS_EXT := 1
264
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800265ifeq ($(CONFIG_CFG80211),y)
266HAVE_CFG80211 := 1
267else
268ifeq ($(CONFIG_CFG80211),m)
269HAVE_CFG80211 := 1
270else
271HAVE_CFG80211 := 0
272endif
273endif
274
275############ UAPI ############
276UAPI_DIR := uapi
277UAPI_INC := -I$(WLAN_ROOT)/$(UAPI_DIR)/linux
278
279############ COMMON ############
280COMMON_DIR := core/common
281COMMON_INC := -I$(WLAN_ROOT)/$(COMMON_DIR)
282
283############ HDD ############
284HDD_DIR := core/hdd
285HDD_INC_DIR := $(HDD_DIR)/inc
286HDD_SRC_DIR := $(HDD_DIR)/src
287
288HDD_INC := -I$(WLAN_ROOT)/$(HDD_INC_DIR) \
289 -I$(WLAN_ROOT)/$(HDD_SRC_DIR)
290
291HDD_OBJS := $(HDD_SRC_DIR)/wlan_hdd_assoc.o \
292 $(HDD_SRC_DIR)/wlan_hdd_cfg.o \
293 $(HDD_SRC_DIR)/wlan_hdd_debugfs.o \
294 $(HDD_SRC_DIR)/wlan_hdd_driver_ops.o \
295 $(HDD_SRC_DIR)/wlan_hdd_ftm.o \
296 $(HDD_SRC_DIR)/wlan_hdd_hostapd.o \
297 $(HDD_SRC_DIR)/wlan_hdd_ioctl.o \
298 $(HDD_SRC_DIR)/wlan_hdd_main.o \
299 $(HDD_SRC_DIR)/wlan_hdd_ocb.o \
300 $(HDD_SRC_DIR)/wlan_hdd_oemdata.o \
301 $(HDD_SRC_DIR)/wlan_hdd_power.o \
Amar Singhale4f28ee2015-10-21 14:36:56 -0700302 $(HDD_SRC_DIR)/wlan_hdd_regulatory.o \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800303 $(HDD_SRC_DIR)/wlan_hdd_scan.o \
304 $(HDD_SRC_DIR)/wlan_hdd_softap_tx_rx.o \
305 $(HDD_SRC_DIR)/wlan_hdd_tx_rx.o \
306 $(HDD_SRC_DIR)/wlan_hdd_trace.o \
307 $(HDD_SRC_DIR)/wlan_hdd_wext.o \
308 $(HDD_SRC_DIR)/wlan_hdd_wmm.o \
309 $(HDD_SRC_DIR)/wlan_hdd_wowl.o
310
Amar Singhale4f28ee2015-10-21 14:36:56 -0700311
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800312ifeq ($(CONFIG_WLAN_LRO), y)
313HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_lro.o
314endif
315
316ifeq ($(CONFIG_WLAN_NAPI), y)
317HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_napi.o
318endif
319
320ifeq ($(CONFIG_IPA_OFFLOAD), 1)
321HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_ipa.o
322endif
323
324ifeq ($(HAVE_CFG80211),1)
325HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_cfg80211.o \
326 $(HDD_SRC_DIR)/wlan_hdd_ext_scan.o \
327 $(HDD_SRC_DIR)/wlan_hdd_stats.o \
328 $(HDD_SRC_DIR)/wlan_hdd_p2p.o
329endif
330
331ifeq ($(CONFIG_QCACLD_FEATURE_GREEN_AP),y)
332HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_green_ap.o
333endif
334
335ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
336HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_nan.o
337endif
338
339ifeq ($(CONFIG_QCOM_TDLS),y)
340HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_tdls.o
341endif
342
343ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y)
344HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_conc_ut.o
345endif
346
347ifeq ($(CONFIG_WLAN_FEATURE_MEMDUMP),y)
348HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_memdump.o
349endif
350
Ravi Joshi61c3c7a2015-11-09 18:41:20 -0800351ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
352HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_subnet_detect.o
353endif
354
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800355########### HOST DIAG LOG ###########
356HOST_DIAG_LOG_DIR := core/utils/host_diag_log
357
358HOST_DIAG_LOG_INC_DIR := $(HOST_DIAG_LOG_DIR)/inc
359HOST_DIAG_LOG_SRC_DIR := $(HOST_DIAG_LOG_DIR)/src
360
361HOST_DIAG_LOG_INC := -I$(WLAN_ROOT)/$(HOST_DIAG_LOG_INC_DIR) \
362 -I$(WLAN_ROOT)/$(HOST_DIAG_LOG_SRC_DIR)
363
364HOST_DIAG_LOG_OBJS += $(HOST_DIAG_LOG_SRC_DIR)/host_diag_log.o
365
366############ EPPING ############
367EPPING_DIR := core/utils/epping
368EPPING_INC_DIR := $(EPPING_DIR)/inc
369EPPING_SRC_DIR := $(EPPING_DIR)/src
370
371EPPING_INC := -I$(WLAN_ROOT)/$(EPPING_INC_DIR)
372
373EPPING_OBJS := $(EPPING_SRC_DIR)/epping_main.o \
374 $(EPPING_SRC_DIR)/epping_txrx.o \
375 $(EPPING_SRC_DIR)/epping_tx.o \
376 $(EPPING_SRC_DIR)/epping_rx.o \
377 $(EPPING_SRC_DIR)/epping_helper.o \
378
379
380############ MAC ############
381MAC_DIR := core/mac
382MAC_INC_DIR := $(MAC_DIR)/inc
383MAC_SRC_DIR := $(MAC_DIR)/src
384
385MAC_INC := -I$(WLAN_ROOT)/$(MAC_INC_DIR) \
386 -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/dph \
387 -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/include \
388 -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/include \
389 -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/lim
390
391MAC_CFG_OBJS := $(MAC_SRC_DIR)/cfg/cfg_api.o \
392 $(MAC_SRC_DIR)/cfg/cfg_debug.o \
393 $(MAC_SRC_DIR)/cfg/cfg_param_name.o \
394 $(MAC_SRC_DIR)/cfg/cfg_proc_msg.o \
395 $(MAC_SRC_DIR)/cfg/cfg_send_msg.o
396
397MAC_DPH_OBJS := $(MAC_SRC_DIR)/dph/dph_hash_table.o
398
399MAC_LIM_OBJS := $(MAC_SRC_DIR)/pe/lim/lim_aid_mgmt.o \
400 $(MAC_SRC_DIR)/pe/lim/lim_admit_control.o \
401 $(MAC_SRC_DIR)/pe/lim/lim_api.o \
402 $(MAC_SRC_DIR)/pe/lim/lim_assoc_utils.o \
403 $(MAC_SRC_DIR)/pe/lim/lim_debug.o \
404 $(MAC_SRC_DIR)/pe/lim/lim_ft.o \
405 $(MAC_SRC_DIR)/pe/lim/lim_ibss_peer_mgmt.o \
406 $(MAC_SRC_DIR)/pe/lim/lim_link_monitoring_algo.o \
407 $(MAC_SRC_DIR)/pe/lim/lim_p2p.o \
408 $(MAC_SRC_DIR)/pe/lim/lim_process_action_frame.o \
409 $(MAC_SRC_DIR)/pe/lim/lim_process_assoc_req_frame.o \
410 $(MAC_SRC_DIR)/pe/lim/lim_process_assoc_rsp_frame.o \
411 $(MAC_SRC_DIR)/pe/lim/lim_process_auth_frame.o \
412 $(MAC_SRC_DIR)/pe/lim/lim_process_beacon_frame.o \
413 $(MAC_SRC_DIR)/pe/lim/lim_process_cfg_updates.o \
414 $(MAC_SRC_DIR)/pe/lim/lim_process_deauth_frame.o \
415 $(MAC_SRC_DIR)/pe/lim/lim_process_disassoc_frame.o \
416 $(MAC_SRC_DIR)/pe/lim/lim_process_message_queue.o \
417 $(MAC_SRC_DIR)/pe/lim/lim_process_mlm_req_messages.o \
418 $(MAC_SRC_DIR)/pe/lim/lim_process_mlm_rsp_messages.o \
419 $(MAC_SRC_DIR)/pe/lim/lim_process_probe_req_frame.o \
420 $(MAC_SRC_DIR)/pe/lim/lim_process_probe_rsp_frame.o \
421 $(MAC_SRC_DIR)/pe/lim/lim_process_sme_req_messages.o \
422 $(MAC_SRC_DIR)/pe/lim/lim_prop_exts_utils.o \
423 $(MAC_SRC_DIR)/pe/lim/lim_scan_result_utils.o \
424 $(MAC_SRC_DIR)/pe/lim/lim_security_utils.o \
425 $(MAC_SRC_DIR)/pe/lim/lim_send_management_frames.o \
426 $(MAC_SRC_DIR)/pe/lim/lim_send_messages.o \
427 $(MAC_SRC_DIR)/pe/lim/lim_send_sme_rsp_messages.o \
428 $(MAC_SRC_DIR)/pe/lim/lim_ser_des_utils.o \
429 $(MAC_SRC_DIR)/pe/lim/lim_session.o \
430 $(MAC_SRC_DIR)/pe/lim/lim_session_utils.o \
431 $(MAC_SRC_DIR)/pe/lim/lim_sme_req_utils.o \
432 $(MAC_SRC_DIR)/pe/lim/lim_sta_hash_api.o \
433 $(MAC_SRC_DIR)/pe/lim/lim_timer_utils.o \
434 $(MAC_SRC_DIR)/pe/lim/lim_trace.o \
435 $(MAC_SRC_DIR)/pe/lim/lim_utils.o
436
437ifeq ($(CONFIG_QCOM_ESE),y)
438ifneq ($(CONFIG_QCOM_ESE_UPLOAD),y)
439MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/limProcessEseFrame.o
440endif
441endif
442
443ifeq ($(CONFIG_QCOM_TDLS),y)
444MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o
445endif
446
447MAC_SCH_OBJS := $(MAC_SRC_DIR)/pe/sch/sch_api.o \
448 $(MAC_SRC_DIR)/pe/sch/sch_beacon_gen.o \
449 $(MAC_SRC_DIR)/pe/sch/sch_beacon_process.o \
450 $(MAC_SRC_DIR)/pe/sch/sch_debug.o \
451 $(MAC_SRC_DIR)/pe/sch/sch_message.o
452
453MAC_RRM_OBJS := $(MAC_SRC_DIR)/pe/rrm/rrm_api.o
454
455MAC_OBJS := $(MAC_CFG_OBJS) \
456 $(MAC_DPH_OBJS) \
457 $(MAC_LIM_OBJS) \
458 $(MAC_SCH_OBJS) \
459 $(MAC_RRM_OBJS)
460
461############ SAP ############
462SAP_DIR := core/sap
463SAP_INC_DIR := $(SAP_DIR)/inc
464SAP_SRC_DIR := $(SAP_DIR)/src
465
466SAP_INC := -I$(WLAN_ROOT)/$(SAP_INC_DIR) \
467 -I$(WLAN_ROOT)/$(SAP_SRC_DIR)
468
469SAP_OBJS := $(SAP_SRC_DIR)/sap_api_link_cntl.o \
470 $(SAP_SRC_DIR)/sap_ch_select.o \
471 $(SAP_SRC_DIR)/sap_fsm.o \
472 $(SAP_SRC_DIR)/sap_module.o
473
474############ DFS ############ 350
475DFS_DIR := $(SAP_DIR)/dfs
476DFS_INC_DIR := $(DFS_DIR)/inc
477DFS_SRC_DIR := $(DFS_DIR)/src
478
479DFS_INC := -I$(WLAN_ROOT)/$(DFS_INC_DIR) \
480 -I$(WLAN_ROOT)/$(DFS_SRC_DIR)
481
482DFS_OBJS := $(DFS_SRC_DIR)/dfs_bindetects.o \
483 $(DFS_SRC_DIR)/dfs.o \
484 $(DFS_SRC_DIR)/dfs_debug.o\
485 $(DFS_SRC_DIR)/dfs_fcc_bin5.o\
486 $(DFS_SRC_DIR)/dfs_init.o\
487 $(DFS_SRC_DIR)/dfs_misc.o\
488 $(DFS_SRC_DIR)/dfs_nol.o\
489 $(DFS_SRC_DIR)/dfs_phyerr_tlv.o\
490 $(DFS_SRC_DIR)/dfs_process_phyerr.o\
491 $(DFS_SRC_DIR)/dfs_process_radarevent.o\
492 $(DFS_SRC_DIR)/dfs_staggered.o
493
494############ SME ############
495SME_DIR := core/sme
496SME_INC_DIR := $(SME_DIR)/inc
497SME_SRC_DIR := $(SME_DIR)/src
498
499SME_INC := -I$(WLAN_ROOT)/$(SME_INC_DIR) \
500 -I$(WLAN_ROOT)/$(SME_SRC_DIR)/csr
501
502SME_CSR_OBJS := $(SME_SRC_DIR)/csr/csr_api_roam.o \
503 $(SME_SRC_DIR)/csr/csr_api_scan.o \
504 $(SME_SRC_DIR)/csr/csr_cmd_process.o \
505 $(SME_SRC_DIR)/csr/csr_link_list.o \
506 $(SME_SRC_DIR)/csr/csr_neighbor_roam.o \
507 $(SME_SRC_DIR)/csr/csr_util.o
508
509ifeq ($(CONFIG_QCOM_ESE),y)
510ifneq ($(CONFIG_QCOM_ESE_UPLOAD),y)
511SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csrEse.o
512endif
513endif
514
515ifeq ($(CONFIG_QCOM_TDLS),y)
516SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csr_tdls_process.o
517endif
518
519SME_QOS_OBJS := $(SME_SRC_DIR)/qos/sme_qos.o
520
521SME_CMN_OBJS := $(SME_SRC_DIR)/common/sme_api.o \
522 $(SME_SRC_DIR)/common/sme_ft_api.o \
523 $(SME_SRC_DIR)/common/sme_power_save.o \
524 $(SME_SRC_DIR)/common/sme_trace.o
525
526SME_OEM_DATA_OBJS := $(SME_SRC_DIR)/oem_data/oem_data_api.o
527
528SME_P2P_OBJS = $(SME_SRC_DIR)/p2p/p2p_api.o
529
530SME_RRM_OBJS := $(SME_SRC_DIR)/rrm/sme_rrm.o
531
532ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
533SME_NAN_OBJS = $(SME_SRC_DIR)/nan/nan_api.o
534endif
535
536SME_OBJS := $(SME_CMN_OBJS) \
537 $(SME_CSR_OBJS) \
538 $(SME_OEM_DATA_OBJS) \
539 $(SME_P2P_OBJS) \
540 $(SME_QOS_OBJS) \
541 $(SME_RRM_OBJS) \
542 $(SME_NAN_OBJS)
543
544############ NLINK ############
545NLINK_DIR := core/utils/nlink
546NLINK_INC_DIR := $(NLINK_DIR)/inc
547NLINK_SRC_DIR := $(NLINK_DIR)/src
548
549NLINK_INC := -I$(WLAN_ROOT)/$(NLINK_INC_DIR)
550NLINK_OBJS := $(NLINK_SRC_DIR)/wlan_nlink_srv.o
551
552############ PTT ############
553PTT_DIR := core/utils/ptt
554PTT_INC_DIR := $(PTT_DIR)/inc
555PTT_SRC_DIR := $(PTT_DIR)/src
556
557PTT_INC := -I$(WLAN_ROOT)/$(PTT_INC_DIR)
558PTT_OBJS := $(PTT_SRC_DIR)/wlan_ptt_sock_svc.o
559
560############ WLAN_LOGGING ############
561WLAN_LOGGING_DIR := core/utils/logging
562WLAN_LOGGING_INC_DIR := $(WLAN_LOGGING_DIR)/inc
563WLAN_LOGGING_SRC_DIR := $(WLAN_LOGGING_DIR)/src
564
565WLAN_LOGGING_INC := -I$(WLAN_ROOT)/$(WLAN_LOGGING_INC_DIR)
566WLAN_LOGGING_OBJS := $(WLAN_LOGGING_SRC_DIR)/wlan_logging_sock_svc.o
567
568############ SYS ############
569SYS_DIR := core/mac/src/sys
570
571SYS_INC := -I$(WLAN_ROOT)/$(SYS_DIR)/common/inc \
572 -I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/platform/inc \
573 -I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/system/inc \
574 -I$(WLAN_ROOT)/$(SYS_DIR)/legacy/src/utils/inc
575
576SYS_COMMON_SRC_DIR := $(SYS_DIR)/common/src
577SYS_LEGACY_SRC_DIR := $(SYS_DIR)/legacy/src
578SYS_OBJS := $(SYS_COMMON_SRC_DIR)/wlan_qct_sys.o \
579 $(SYS_LEGACY_SRC_DIR)/platform/src/sys_wrapper.o \
580 $(SYS_LEGACY_SRC_DIR)/system/src/mac_init_api.o \
581 $(SYS_LEGACY_SRC_DIR)/system/src/sys_entry_func.o \
582 $(SYS_LEGACY_SRC_DIR)/utils/src/dot11f.o \
583 $(SYS_LEGACY_SRC_DIR)/utils/src/log_api.o \
584 $(SYS_LEGACY_SRC_DIR)/utils/src/mac_trace.o \
585 $(SYS_LEGACY_SRC_DIR)/utils/src/parser_api.o \
586 $(SYS_LEGACY_SRC_DIR)/utils/src/utils_api.o \
587 $(SYS_LEGACY_SRC_DIR)/utils/src/utils_parser.o
588
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800589############ Qca-wifi-host-cmn ############
590QDF_OS_DIR := qdf
591QDF_OS_INC_DIR := $(QDF_OS_DIR)/inc
592QDF_OS_SRC_DIR := $(QDF_OS_DIR)/linux/src
593QDF_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(QDF_OS_SRC_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800594
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800595QDF_INC := -I$(WLAN_COMMON_INC)/$(QDF_OS_INC_DIR) \
596 -I$(WLAN_COMMON_INC)/$(QDF_OS_SRC_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800597
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800598QDF_OBJS := $(QDF_OBJ_DIR)/qdf_defer.o \
599 $(QDF_OBJ_DIR)/qdf_event.o \
600 $(QDF_OBJ_DIR)/qdf_list.o \
601 $(QDF_OBJ_DIR)/qdf_lock.o \
602 $(QDF_OBJ_DIR)/qdf_mc_timer.o \
603 $(QDF_OBJ_DIR)/qdf_mem.o \
604 $(QDF_OBJ_DIR)/qdf_nbuf.o \
605 $(QDF_OBJ_DIR)/qdf_threads.o \
606 $(QDF_OBJ_DIR)/qdf_trace.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800607
608############ CDS (Connectivity driver services) ############
609CDS_DIR := core/cds
610CDS_INC_DIR := $(CDS_DIR)/inc
611CDS_SRC_DIR := $(CDS_DIR)/src
612
613CDS_INC := -I$(WLAN_ROOT)/$(CDS_INC_DIR) \
614 -I$(WLAN_ROOT)/$(CDS_SRC_DIR)
615
616CDS_OBJS := $(CDS_SRC_DIR)/cds_api.o \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800617 $(CDS_SRC_DIR)/cds_reg_service.o \
618 $(CDS_SRC_DIR)/cds_mq.o \
619 $(CDS_SRC_DIR)/cds_packet.o \
620 $(CDS_SRC_DIR)/cds_regdomain.o \
621 $(CDS_SRC_DIR)/cds_sched.o \
622 $(CDS_SRC_DIR)/cds_concurrency.o \
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800623 $(CDS_SRC_DIR)/cds_utils.o \
624 $(CDS_SRC_DIR)/cds_mc_timer.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800625
626
627########### BMI ###########
628BMI_DIR := core/bmi
629
630BMI_INC := -I$(WLAN_ROOT)/$(BMI_DIR)/inc
631
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800632BMI_OBJS := $(BMI_DIR)/src/bmi.o \
633 $(BMI_DIR)/src/ol_fw.o
634ifeq ($(CONFIG_FEATURE_BMI_2), y)
635BMI_OBJS += $(BMI_DIR)/src/bmi_2.o
636else
637BMI_OBJS += $(BMI_DIR)/src/bmi_1.o
638endif
Govind Singh0fea23a2016-03-18 12:59:27 +0530639
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800640########### WMI ###########
Govind Singh0fea23a2016-03-18 12:59:27 +0530641WMI_ROOT_DIR := wmi
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800642
Govind Singh0fea23a2016-03-18 12:59:27 +0530643WMI_SRC_DIR := $(WMI_ROOT_DIR)/src
644WMI_INC_DIR := $(WMI_ROOT_DIR)/inc
645WMI_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(WMI_SRC_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800646
Govind Singh0fea23a2016-03-18 12:59:27 +0530647WMI_INC := -I$(WLAN_COMMON_INC)/$(WMI_INC_DIR)
648
649WMI_OBJS := $(WMI_OBJ_DIR)/wmi_unified.o \
650 $(WMI_OBJ_DIR)/wmi_tlv_helper.o \
651 $(WMI_OBJ_DIR)/wmi_unified_tlv.o \
652 $(WMI_OBJ_DIR)/wmi_unified_api.o \
653 $(WMI_OBJ_DIR)/wmi_unified_non_tlv.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800654
655########### FWLOG ###########
656FWLOG_DIR := core/utils/fwlog
657
658FWLOG_INC := -I$(WLAN_ROOT)/$(FWLOG_DIR)
659
660FWLOG_OBJS := $(FWLOG_DIR)/dbglog_host.o
661
662############ TXRX ############
663TXRX_DIR := core/dp/txrx
664TXRX_INC := -I$(WLAN_ROOT)/$(TXRX_DIR)
665
666TXRX_OBJS := $(TXRX_DIR)/ol_txrx.o \
667 $(TXRX_DIR)/ol_cfg.o \
668 $(TXRX_DIR)/ol_rx.o \
669 $(TXRX_DIR)/ol_rx_fwd.o \
670 $(TXRX_DIR)/ol_txrx.o \
671 $(TXRX_DIR)/ol_rx_defrag.o \
672 $(TXRX_DIR)/ol_tx_desc.o \
673 $(TXRX_DIR)/ol_tx.o \
674 $(TXRX_DIR)/ol_rx_reorder_timeout.o \
675 $(TXRX_DIR)/ol_rx_reorder.o \
676 $(TXRX_DIR)/ol_rx_pn.o \
677 $(TXRX_DIR)/ol_tx_queue.o \
678 $(TXRX_DIR)/ol_txrx_peer_find.o \
679 $(TXRX_DIR)/ol_txrx_event.o \
680 $(TXRX_DIR)/ol_txrx_encap.o \
681 $(TXRX_DIR)/ol_tx_send.o
682
683ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
684TXRX_OBJS += $(TXRX_DIR)/ol_txrx_flow_control.o
685endif
686
687############ OL ############
688OL_DIR := core/dp/ol
689OL_INC := -I$(WLAN_ROOT)/$(OL_DIR)/inc
690
Dhanashri Atre12a08392016-02-17 13:10:34 -0800691############ CDP ############
692CDP_ROOT_DIR := dp
693CDP_INC_DIR := $(CDP_ROOT_DIR)/inc
694CDP_INC := -I$(WLAN_COMMON_INC)/$(CDP_INC_DIR)
695
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800696############ PKTLOG ############
697PKTLOG_DIR := core/utils/pktlog
698PKTLOG_INC := -I$(WLAN_ROOT)/$(PKTLOG_DIR)/include
699
700PKTLOG_OBJS := $(PKTLOG_DIR)/pktlog_ac.o \
701 $(PKTLOG_DIR)/pktlog_internal.o \
702 $(PKTLOG_DIR)/linux_ac.o
703
704############ HTT ############
705HTT_DIR := core/dp/htt
706HTT_INC := -I$(WLAN_ROOT)/$(HTT_DIR)
707
708HTT_OBJS := $(HTT_DIR)/htt_tx.o \
709 $(HTT_DIR)/htt.o \
710 $(HTT_DIR)/htt_t2h.o \
711 $(HTT_DIR)/htt_h2t.o \
712 $(HTT_DIR)/htt_fw_stats.o \
713 $(HTT_DIR)/htt_rx.o
714
715############## HTC ##########
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800716HTC_DIR := htc
717HTC_INC := -I$(WLAN_COMMON_INC)/$(HTC_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800718
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800719HTC_OBJS := $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc.o \
720 $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_send.o \
721 $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_recv.o \
722 $(WLAN_COMMON_ROOT)/$(HTC_DIR)/htc_services.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800723
724########### HIF ###########
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800725HIF_DIR := hif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800726HIF_CE_DIR := $(HIF_DIR)/src/ce
727HIF_CNSS_STUB_DIR := $(HIF_DIR)/src/icnss_stub
728
Houston Hoffman1edffd32016-01-27 16:30:34 -0800729
730HIF_DISPATCHER_DIR := $(HIF_DIR)/src/dispatcher
731
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800732HIF_PCIE_DIR := $(HIF_DIR)/src/pcie
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800733HIF_SNOC_DIR := $(HIF_DIR)/src/snoc
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800734
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800735HIF_INC := -I$(WLAN_COMMON_INC)/$(HIF_DIR)/inc \
736 -I$(WLAN_COMMON_INC)/$(HIF_DIR)/src \
737 -I$(WLAN_COMMON_INC)/$(HIF_CE_DIR) \
738 -I$(WLAN_COMMON_INC)/$(HIF_CNSS_STUB_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800739
Houston Hoffman1edffd32016-01-27 16:30:34 -0800740
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800741ifeq ($(CONFIG_HIF_PCI), 1)
Houston Hoffman1edffd32016-01-27 16:30:34 -0800742HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800743HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_PCIE_DIR)
Houston Hoffman1edffd32016-01-27 16:30:34 -0800744endif
745
746ifeq ($(CONFIG_HIF_SNOC), 1)
747HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800748HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SNOC_DIR)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800749endif
750
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800751HIF_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/ath_procfs.o \
752 $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_diag.o \
753 $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_main.o \
754 $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service.o \
755 $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_tasklet.o \
756 $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_main.o \
757 $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/mp_dev.o \
758 $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/regtable.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800759
Houston Hoffman1edffd32016-01-27 16:30:34 -0800760ifneq ($(CONFIG_ICNSS), y)
761HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_CNSS_STUB_DIR)/icnss_stub.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800762endif
763
764ifeq ($(CONFIG_WLAN_NAPI), y)
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800765HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_napi.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800766endif
767
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800768HIF_PCIE_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_PCIE_DIR)/if_pci.o
Houston Hoffman1edffd32016-01-27 16:30:34 -0800769HIF_PCIE_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_bmi.o
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800770HIF_SNOC_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SNOC_DIR)/if_snoc.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800771
Houston Hoffman1edffd32016-01-27 16:30:34 -0800772HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus.o
Houston Hoffmanb61b9b12016-03-03 20:04:16 -0800773HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/dummy.o
Houston Hoffman1edffd32016-01-27 16:30:34 -0800774
775ifeq ($(CONFIG_HIF_PCI), 1)
776HIF_OBJS += $(HIF_PCIE_OBJS)
777HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_pci.o
778endif
779
780ifeq ($(CONFIG_HIF_SNOC), 1)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800781HIF_OBJS += $(HIF_SNOC_OBJS)
Houston Hoffman1edffd32016-01-27 16:30:34 -0800782HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_snoc.o
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800783endif
784
785############ WMA ############
786WMA_DIR := core/wma
787
788WMA_INC_DIR := $(WMA_DIR)/inc
789WMA_SRC_DIR := $(WMA_DIR)/src
790
791WMA_INC := -I$(WLAN_ROOT)/$(WMA_INC_DIR) \
792 -I$(WLAN_ROOT)/$(WMA_SRC_DIR)
793
794WMA_OBJS := $(WMA_SRC_DIR)/wma_main.o \
795 $(WMA_SRC_DIR)/wma_scan_roam.o \
796 $(WMA_SRC_DIR)/wma_dev_if.o \
797 $(WMA_SRC_DIR)/wma_mgmt.o \
798 $(WMA_SRC_DIR)/wma_power.o \
799 $(WMA_SRC_DIR)/wma_data.o \
800 $(WMA_SRC_DIR)/wma_utils.o \
801 $(WMA_SRC_DIR)/wma_features.o \
802 $(WMA_SRC_DIR)/wma_dfs_interface.o \
803 $(WMA_SRC_DIR)/wma_ocb.o \
804 $(WMA_SRC_DIR)/wlan_qct_wma_legacy.o
805
806ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y)
807WMA_OBJS += $(WMA_SRC_DIR)/wma_utils_ut.o
808endif
809
810TARGET_INC := -I$(WLAN_ROOT)/target/inc
811
812LINUX_INC := -Iinclude/linux
813
814INCS := $(HDD_INC) \
815 $(EPPING_INC) \
816 $(LINUX_INC) \
817 $(MAC_INC) \
818 $(SAP_INC) \
819 $(SME_INC) \
820 $(SYS_INC) \
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800821 $(QDF_INC) \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800822 $(CDS_INC) \
823 $(DFS_INC)
824
825INCS += $(WMA_INC) \
826 $(UAPI_INC) \
827 $(COMMON_INC) \
828 $(WMI_INC) \
829 $(FWLOG_INC) \
830 $(TXRX_INC) \
831 $(OL_INC) \
Dhanashri Atre12a08392016-02-17 13:10:34 -0800832 $(CDP_INC) \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800833 $(PKTLOG_INC) \
834 $(HTT_INC) \
835 $(HTC_INC) \
836 $(DFS_INC)
837
838INCS += $(HIF_INC) \
839 $(BMI_INC)
840
841INCS += $(TARGET_INC)
842
843INCS += $(NLINK_INC) \
844 $(PTT_INC) \
845 $(WLAN_LOGGING_INC)
846
847ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
848INCS += $(PKTLOG_INC)
849endif
850
851ifeq ($(BUILD_DIAG_VERSION), 1)
852INCS += $(HOST_DIAG_LOG_INC)
853endif
854
855OBJS := $(HDD_OBJS) \
856 $(EPPING_OBJS) \
857 $(MAC_OBJS) \
858 $(SAP_OBJS) \
859 $(SME_OBJS) \
860 $(SYS_OBJS) \
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800861 $(QDF_OBJS) \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800862 $(CDS_OBJS) \
863 $(DFS_OBJS)
864
865OBJS += $(WMA_OBJS) \
866 $(TXRX_OBJS) \
867 $(WMI_OBJS) \
868 $(FWLOG_OBJS) \
869 $(HTC_OBJS) \
870 $(DFS_OBJS)
871
872OBJS += $(HIF_OBJS) \
873 $(BMI_OBJS) \
874 $(HTT_OBJS)
875
876OBJS += $(WLAN_LOGGING_OBJS)
877OBJS += $(NLINK_OBJS)
878OBJS += $(PTT_OBJS)
879
880ifeq ($(CONFIG_REMOVE_PKT_LOG), 0)
881OBJS += $(PKTLOG_OBJS)
882endif
883
884ifeq ($(BUILD_DIAG_VERSION), 1)
885OBJS += $(HOST_DIAG_LOG_OBJS)
886endif
887
888
889EXTRA_CFLAGS += $(INCS)
890
891CDEFINES := -DANI_LITTLE_BYTE_ENDIAN \
892 -DANI_LITTLE_BIT_ENDIAN \
893 -DQC_WLAN_CHIPSET_QCA_CLD \
894 -DDOT11F_LITTLE_ENDIAN_HOST \
895 -DANI_COMPILER_TYPE_GCC \
896 -DANI_OS_TYPE_ANDROID=6 \
897 -DWLAN_PERF \
898 -DPTT_SOCK_SVC_ENABLE \
899 -Wall\
900 -Werror\
901 -D__linux__ \
902 -DHAL_SELF_STA_PER_BSS=1 \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800903 -DFEATURE_WLAN_WAPI \
904 -DFEATURE_OEM_DATA_SUPPORT\
905 -DSOFTAP_CHANNEL_RANGE \
906 -DWLAN_AP_STA_CONCURRENCY \
907 -DFEATURE_WLAN_SCAN_PNO \
908 -DWLAN_FEATURE_PACKET_FILTERING \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800909 -DWLAN_FEATURE_P2P_DEBUG \
910 -DWLAN_ENABLE_AGEIE_ON_SCAN_RESULTS \
911 -DWLANTL_DEBUG\
912 -DWLAN_NS_OFFLOAD \
913 -DWLAN_SOFTAP_VSTA_FEATURE \
914 -DWLAN_FEATURE_GTK_OFFLOAD \
915 -DWLAN_WAKEUP_EVENTS \
916 -DFEATURE_WLAN_RA_FILTERING\
917 -DWLAN_KD_READY_NOTIFIER \
918 -DWLAN_NL80211_TESTMODE \
919 -DFEATURE_WLAN_LPHB \
920 -DFEATURE_WLAN_PAL_TIMER_DISABLE \
921 -DFEATURE_WLAN_PAL_MEM_DISABLE \
922 -DQCA_SUPPORT_TX_THROTTLE \
923 -DWMI_INTERFACE_EVENT_LOGGING \
924 -DATH_SUPPORT_WAPI \
925 -DWLAN_FEATURE_LINK_LAYER_STATS \
926 -DWLAN_LOGGING_SOCK_SVC_ENABLE \
927 -DFEATURE_WLAN_EXTSCAN \
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800928 -DWLAN_FEATURE_MBSSID \
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -0800929 -DCONFIG_160MHZ_SUPPORT \
930 -DCONFIG_MCL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800931
932ifeq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
933CDEFINES += -DQCA_WIFI_3_0
934CDEFINES += -DQCA_WIFI_3_0_EMU
935endif
936
937ifeq (y,$(filter y,$(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
938CDEFINES += -DQCA_WIFI_3_0_ADRASTEA
939CDEFINES += -DADRASTEA_SHADOW_REGISTERS
Sanjay Devnanicdab59e2015-11-12 14:43:58 -0800940CDEFINES += -DADRASTEA_RRI_ON_DDR
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800941endif
942
Manikandan Mohanfba8e0d2015-11-18 16:27:37 -0800943ifneq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS) $(CONFIG_CNSS_ADRASTEA)))
944CDEFINES += -DQCA_WIFI_2_0
945endif
946
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800947ifeq ($(CONFIG_WLAN_FASTPATH), y)
948CDEFINES += -DWLAN_FEATURE_FASTPATH
949endif
950
951ifeq ($(CONFIG_WLAN_NAPI), y)
952CDEFINES += -DFEATURE_NAPI
953ifeq ($(CONFIG_WLAN_NAPI_DEBUG), y)
954CDEFINES += -DFEATURE_NAPI_DEBUG
955endif
956endif
957
958ifeq ($(CONFIG_FEATURE_BMI_2), y)
959CDEFINES += -DFEATURE_BMI_2
960endif
961
962ifeq ($(CONFIG_ARCH_MSM), y)
963CDEFINES += -DMSM_PLATFORM
964endif
965
966CDEFINES += -DQCA_SUPPORT_TXRX_LOCAL_PEER_ID
967
968ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
969CDEFINES += -DQCA_LL_TX_FLOW_CONTROL_V2
970CDEFINES += -DQCA_LL_TX_FLOW_GLOBAL_MGMT_POOL
971else
972ifeq ($(CONFIG_ROME_IF),pci)
973CDEFINES += -DQCA_LL_LEGACY_TX_FLOW_CONTROL
974endif
975endif
976
977ifeq ($(CONFIG_DEBUG_LL),y)
978CDEFINES += -DQCA_PKT_PROTO_TRACE
979endif
980
981ifneq ($(CONFIG_QCA_CLD_WLAN),)
982CDEFINES += -DWCN_PRONTO
983CDEFINES += -DWCN_PRONTO_V1
984endif
985
986ifeq ($(BUILD_DEBUG_VERSION),1)
987CDEFINES += -DWLAN_DEBUG \
988 -DTRACE_RECORD \
989 -DLIM_TRACE_RECORD \
990 -DSME_TRACE_RECORD \
991 -DHDD_TRACE_RECORD \
992 -DPE_DEBUG_LOGW \
993 -DPE_DEBUG_LOGE \
994 -DDEBUG
995endif
996
997ifeq ($(CONFIG_SLUB_DEBUG_ON),y)
998CDEFINES += -DTIMER_MANAGER
999CDEFINES += -DMEMORY_DEBUG
1000endif
1001
1002ifeq ($(HAVE_CFG80211),1)
1003CDEFINES += -DWLAN_FEATURE_P2P
1004CDEFINES += -DWLAN_FEATURE_WFD
1005ifeq ($(CONFIG_QCOM_VOWIFI_11R),y)
1006CDEFINES += -DKERNEL_SUPPORT_11R_CFG80211
1007CDEFINES += -DUSE_80211_WMMTSPEC_FOR_RIC
1008endif
1009endif
1010
1011ifeq ($(CONFIG_QCOM_ESE),y)
1012CDEFINES += -DFEATURE_WLAN_ESE
1013CDEFINES += -DQCA_COMPUTE_TX_DELAY
1014CDEFINES += -DQCA_COMPUTE_TX_DELAY_PER_TID
1015ifeq ($(CONFIG_QCOM_ESE_UPLOAD),y)
1016CDEFINES += -DFEATURE_WLAN_ESE_UPLOAD
1017endif
1018endif
1019
1020#normally, TDLS negative behavior is not needed
1021ifeq ($(CONFIG_QCOM_TDLS),y)
1022CDEFINES += -DFEATURE_WLAN_TDLS
1023endif
1024
1025ifeq ($(CONFIG_QCACLD_WLAN_LFR3),y)
1026CDEFINES += -DWLAN_FEATURE_ROAM_OFFLOAD
1027endif
1028
1029ifeq ($(CONFIG_PRIMA_WLAN_OKC),y)
1030CDEFINES += -DFEATURE_WLAN_OKC
1031endif
1032
1033ifeq ($(CONFIG_PRIMA_WLAN_11AC_HIGH_TP),y)
1034CDEFINES += -DWLAN_FEATURE_11AC_HIGH_TP
1035endif
1036
1037ifeq ($(BUILD_DIAG_VERSION),1)
1038CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT
1039CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_CSR
1040CDEFINES += -DFEATURE_WLAN_DIAG_SUPPORT_LIM
1041ifeq ($(CONFIG_HIF_PCI), 1)
1042CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1043endif
1044endif
1045
1046ifeq ($(CONFIG_HIF_USB), 1)
1047CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1048CDEFINES += -DQCA_SUPPORT_OL_RX_REORDER_TIMEOUT
1049CDEFINES += -DCONFIG_ATH_PCIE_MAX_PERF=0 -DCONFIG_ATH_PCIE_AWAKE_WHILE_DRIVER_LOAD=0 -DCONFIG_DISABLE_CDC_MAX_PERF_WAR=0
1050CDEFINES += -DQCA_TX_HTT2_SUPPORT
1051endif
1052
1053# enable the MAC Address auto-generation feature
1054CDEFINES += -DWLAN_AUTOGEN_MACADDR_FEATURE
1055
1056ifeq ($(CONFIG_WLAN_FEATURE_11W),y)
1057CDEFINES += -DWLAN_FEATURE_11W
1058endif
1059
1060ifeq ($(CONFIG_QCOM_LTE_COEX),y)
1061CDEFINES += -DFEATURE_WLAN_CH_AVOID
1062endif
1063
1064ifeq ($(CONFIG_WLAN_FEATURE_LPSS),y)
1065CDEFINES += -DWLAN_FEATURE_LPSS
1066endif
1067
1068ifeq ($(PANIC_ON_BUG),1)
1069CDEFINES += -DPANIC_ON_BUG
1070endif
1071
1072ifeq ($(WLAN_OPEN_SOURCE), 1)
1073CDEFINES += -DWLAN_OPEN_SOURCE
1074endif
1075
1076ifeq ($(CONFIG_FEATURE_STATS_EXT), 1)
1077CDEFINES += -DWLAN_FEATURE_STATS_EXT
1078endif
1079
1080ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y)
1081CDEFINES += -DWLAN_FEATURE_NAN
1082endif
1083
1084ifeq ($(CONFIG_QCA_IBSS_SUPPORT), 1)
1085CDEFINES += -DQCA_IBSS_SUPPORT
1086endif
1087
1088#Enable OL debug and wmi unified functions
1089ifeq ($(CONFIG_ATH_PERF_PWR_OFFLOAD), 1)
1090CDEFINES += -DATH_PERF_PWR_OFFLOAD
1091endif
1092
1093#Disable packet log
1094ifeq ($(CONFIG_REMOVE_PKT_LOG), 1)
1095CDEFINES += -DREMOVE_PKT_LOG
1096endif
1097
1098#Enable 11AC TX
1099ifeq ($(CONFIG_ATH_11AC_TXCOMPACT), 1)
1100CDEFINES += -DATH_11AC_TXCOMPACT
1101endif
1102
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001103#Enable OS specific IRQ abstraction
1104ifeq ($(CONFIG_ATH_SUPPORT_SHARED_IRQ), 1)
1105CDEFINES += -DATH_SUPPORT_SHARED_IRQ
1106endif
1107
1108#Enable message based HIF instead of RAW access in BMI
1109ifeq ($(CONFIG_HIF_MESSAGE_BASED), 1)
1110CDEFINES += -DHIF_MESSAGE_BASED
1111endif
1112
1113#Enable PCI specific APIS (dma, etc)
1114ifeq ($(CONFIG_HIF_PCI), 1)
1115CDEFINES += -DHIF_PCI
1116endif
1117
Houston Hoffman1edffd32016-01-27 16:30:34 -08001118ifeq ($(CONFIG_HIF_SNOC), 1)
1119CDEFINES += -DHIF_SNOC
1120endif
1121
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001122#Enable USB specific APIS
1123ifeq ($(CONFIG_HIF_USB), 1)
1124CDEFINES += -DHIF_USB
1125CDEFINES += -DCONFIG_HL_SUPPORT
1126endif
1127
1128#Enable FW logs through ini
1129CDEFINES += -DCONFIG_FW_LOGS_BASED_ON_INI
1130
1131#Enable pci read/write config functions
1132ifeq ($(CONFIG_ATH_PCI), 1)
1133CDEFINES += -DATH_PCI
1134endif
1135
1136#Enable power management suspend/resume functionality
1137ifeq ($(CONFIG_ATH_BUS_PM), 1)
1138CDEFINES += -DATH_BUS_PM
1139endif
1140
1141#Enable FLOWMAC module support
1142ifeq ($(CONFIG_ATH_SUPPORT_FLOWMAC_MODULE), 1)
1143CDEFINES += -DATH_SUPPORT_FLOWMAC_MODULE
1144endif
1145
1146#Enable spectral support
1147ifeq ($(CONFIG_ATH_SUPPORT_SPECTRAL), 1)
1148CDEFINES += -DATH_SUPPORT_SPECTRAL
1149endif
1150
1151#Enable WDI Event support
1152ifeq ($(CONFIG_WDI_EVENT_ENABLE), 1)
1153CDEFINES += -DWDI_EVENT_ENABLE
1154endif
1155
1156#Endianess selection
1157ifeq ($(CONFIG_LITTLE_ENDIAN), 1)
1158AH_LITTLE_ENDIAN=1234
1159CDEFINES += -DAH_BYTE_ORDER=$(AH_LITTLE_ENDIAN)
1160else
1161AH_BIG_ENDIAN=4321
1162CDEFINES += -DAH_BYTE_ORDER=$(AH_BIG_ENDIAN)
1163CDEFINES += -DBIG_ENDIAN_HOST
1164endif
1165
1166#Enable TX reclaim support
1167ifeq ($(CONFIG_TX_CREDIT_RECLAIM_SUPPORT), 1)
1168CDEFINES += -DTX_CREDIT_RECLAIM_SUPPORT
1169endif
1170
1171#Enable FTM support
1172ifeq ($(CONFIG_QCA_WIFI_FTM), 1)
1173CDEFINES += -DQCA_WIFI_FTM
1174endif
1175
1176#Enable Checksum Offload support
1177ifeq ($(CONFIG_CHECKSUM_OFFLOAD), 1)
1178CDEFINES += -DCHECKSUM_OFFLOAD
1179endif
1180
1181#Enable Checksum Offload support
1182ifeq ($(CONFIG_IPA_OFFLOAD), 1)
1183CDEFINES += -DIPA_OFFLOAD
1184endif
1185
1186ifneq ($(CONFIG_ARCH_MDM9630), y)
1187ifeq ($(CONFIG_ARCH_MDM9640), y)
1188CDEFINES += -DQCA_CONFIG_SMP
1189endif
1190endif
1191
1192#Enable GTK Offload
1193ifeq ($(CONFIG_GTK_OFFLOAD), 1)
1194CDEFINES += -DWLAN_FEATURE_GTK_OFFLOAD
1195CDEFINES += -DIGTK_OFFLOAD
1196endif
1197
1198#Enable GTK Offload
1199ifeq ($(CONFIG_EXT_WOW), 1)
1200CDEFINES += -DWLAN_FEATURE_EXTWOW_SUPPORT
1201endif
1202
1203#Mark it as SMP Kernel
1204ifeq ($(CONFIG_SMP),y)
1205CDEFINES += -DQCA_CONFIG_SMP
1206endif
1207
1208ifeq ($(CONFIG_WLAN_FEATURE_RX_WAKELOCK), y)
1209CDEFINES += -DWLAN_FEATURE_HOLD_RX_WAKELOCK
1210endif
1211
Sandeep Puligilla2111d3c2016-02-03 01:46:15 -08001212#Enable Channel Matrix restriction for all Rome only targets
1213ifneq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001214CDEFINES += -DWLAN_ENABLE_CHNL_MATRIX_RESTRICTION
Sandeep Puligilla2111d3c2016-02-03 01:46:15 -08001215endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001216
1217#features specific to mobile router use case
1218ifeq ($(CONFIG_MOBILE_ROUTER), y)
1219
1220#enable MCC TO SCC switch
1221CDEFINES += -DFEATURE_WLAN_MCC_TO_SCC_SWITCH
1222
1223#enable wlan auto shutdown feature
1224CDEFINES += -DFEATURE_WLAN_AUTO_SHUTDOWN
1225
1226#enable for MBSSID
1227CDEFINES += -DWLAN_FEATURE_MBSSID
1228
1229#enable AP-AP ACS Optimization
1230CDEFINES += -DFEATURE_WLAN_AP_AP_ACS_OPTIMIZE
1231
1232#Enable 4address scheme
1233CDEFINES += -DFEATURE_WLAN_STA_4ADDR_SCHEME
1234
1235#Disable STA-AP Mode DFS support
1236CDEFINES += -DFEATURE_WLAN_STA_AP_MODE_DFS_DISABLE
1237
1238#Enable OBSS feature
1239CDEFINES += -DQCA_HT_2040_COEX
1240
1241#Disable HT40 in 2.4GHZ STA mode
1242CDEFINES += -DQCA_HT_20_24G_STA_ONLY
1243
1244else #CONFIG_MOBILE_ROUTER
1245
1246#Open P2P device interface only for non-Mobile router use cases
1247CDEFINES += -DWLAN_OPEN_P2P_INTERFACE
1248
1249#Enable 2.4 GHz social channels in 5 GHz only mode for p2p usage
1250CDEFINES += -DWLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY
1251
1252endif #CONFIG_MOBILE_ROUTER
1253
1254#Green AP feature
1255ifeq ($(CONFIG_QCACLD_FEATURE_GREEN_AP),y)
1256CDEFINES += -DFEATURE_GREEN_AP
1257endif
1258
1259#Enable RX Full re-order OL feature only "LL and NON-MDM9630 platform"
1260ifneq ($(CONFIG_ARCH_MDM9630), y)
1261ifeq ($(CONFIG_HIF_PCI), 1)
1262CDEFINES += -DWLAN_FEATURE_RX_FULL_REORDER_OL
1263endif
1264endif
1265
1266#Enable Signed firmware support for split binary format
1267ifeq ($(CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT), 1)
1268CDEFINES += -DQCA_SIGNED_SPLIT_BINARY_SUPPORT
1269endif
1270
1271#Enable single firmware binary format
1272ifeq ($(CONFIG_QCA_SINGLE_BINARY_SUPPORT), 1)
1273CDEFINES += -DQCA_SINGLE_BINARY_SUPPORT
1274endif
1275
1276#Enable collecting target RAM dump after kernel panic
1277ifeq ($(CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC), 1)
1278CDEFINES += -DTARGET_RAMDUMP_AFTER_KERNEL_PANIC
1279endif
1280
1281#Enable/disable secure firmware feature
1282ifeq ($(CONFIG_FEATURE_SECURE_FIRMWARE), 1)
1283CDEFINES += -DFEATURE_SECURE_FIRMWARE
1284endif
1285
1286ifeq ($(CONFIG_ATH_PCIE_ACCESS_DEBUG), 1)
1287CDEFINES += -DCONFIG_ATH_PCIE_ACCESS_DEBUG
1288endif
1289
1290# Some kernel include files are being moved. Check to see if
1291# the old version of the files are present
1292
1293ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/mach-msm/include/mach/msm_smd.h),)
1294CDEFINES += -DEXISTS_MSM_SMD
1295endif
1296
1297ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/mach-msm/include/mach/msm_smsm.h),)
1298CDEFINES += -DEXISTS_MSM_SMSM
1299endif
1300
1301# Enable feature support fo Linux version QCMBR
1302ifeq ($(CONFIG_LINUX_QCMBR),y)
1303CDEFINES += -DLINUX_QCMBR
1304endif
1305
Rajeev Kumare0fd9dd2015-11-16 13:33:07 -08001306
1307# Enable full rx re-order offload for adrastea
1308ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1309CDEFINES += -DWLAN_FEATURE_RX_FULL_REORDER_OL
1310endif
1311
Rajeev Kumar321a19a2015-12-08 12:54:46 -08001312# Enable athdiag procfs debug support for adrastea
1313ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1314CDEFINES += -DCONFIG_ATH_PROCFS_DIAG_SUPPORT
1315endif
1316
Rajeev Kumar9c4809e2016-01-13 18:32:40 -08001317# Enable 11AC TX compact feature for adrastea
1318ifeq (y, $(filter y, $(CONFIG_CNSS_ADRASTEA) $(CONFIG_ICNSS)))
1319CDEFINES += -DATH_11AC_TXCOMPACT
1320endif
1321
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001322# NOTE: CONFIG_64BIT_PADDR requires CONFIG_HELIUMPLUS
1323ifeq (y,$(filter y,$(CONFIG_CNSS_EOS) $(CONFIG_ICNSS)))
1324CONFIG_HELIUMPLUS := y
1325CONFIG_64BIT_PADDR := y
1326CONFIG_FEATURE_TSO := y
1327CONFIG_FEATURE_TSO_DEBUG := y
1328ifeq ($(CONFIG_HELIUMPLUS),y)
1329CDEFINES += -DHELIUMPLUS_PADDR64
1330CDEFINES += -DHELIUMPLUS
Dhanashri Atre48c2ae62015-12-15 18:07:10 -08001331CDEFINES += -DAR900B
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001332ifeq ($(CONFIG_64BIT_PADDR),y)
1333CDEFINES += -DHTT_PADDR64
1334endif
1335endif
1336endif
1337
1338ifeq ($(CONFIG_FEATURE_TSO),y)
1339CDEFINES += -DFEATURE_TSO
1340endif
1341ifeq ($(CONFIG_FEATURE_TSO_DEBUG),y)
1342CDEFINES += -DFEATURE_TSO_DEBUG
1343endif
1344
1345ifeq ($(CONFIG_WLAN_LRO), y)
1346CDEFINES += -DFEATURE_LRO
1347endif
1348
1349ifeq ($(CONFIG_MOBILE_ROUTER), y)
1350CDEFINES += -DFEATURE_AP_MCC_CH_AVOIDANCE
1351endif
1352
1353ifeq ($(CONFIG_MPC_UT_FRAMEWORK), y)
1354CDEFINES += -DMPC_UT_FRAMEWORK
1355endif
1356
1357ifeq ($(CONFIG_WLAN_OFFLOAD_PACKETS),y)
1358CDEFINES += -DWLAN_FEATURE_OFFLOAD_PACKETS
1359endif
1360
1361ifeq ($(CONFIG_WLAN_FEATURE_MEMDUMP),y)
1362CDEFINES += -DWLAN_FEATURE_MEMDUMP
1363endif
1364
Ravi Joshi61c3c7a2015-11-09 18:41:20 -08001365ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
1366CDEFINES += -DFEATURE_LFR_SUBNET_DETECTION
1367endif
1368
Chandrasekaran Manishekar068e25e2016-03-07 11:51:07 +05301369ifeq ($(CONFIG_MCC_TO_SCC_SWITCH), y)
1370CDEFINES += -DFEATURE_WLAN_MCC_TO_SCC_SWITCH
1371endif
1372
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001373KBUILD_CPPFLAGS += $(CDEFINES)
1374
1375# Currently, for versions of gcc which support it, the kernel Makefile
1376# is disabling the maybe-uninitialized warning. Re-enable it for the
1377# WLAN driver. Note that we must use EXTRA_CFLAGS here so that it
1378# will override the kernel settings.
1379ifeq ($(call cc-option-yn, -Wmaybe-uninitialized),y)
1380EXTRA_CFLAGS += -Wmaybe-uninitialized
1381endif
1382
1383# Module information used by KBuild framework
1384obj-$(CONFIG_QCA_CLD_WLAN) += $(MODNAME).o
1385$(MODNAME)-y := $(OBJS)
Prashanth Bhatta7e58dd32016-02-16 15:46:46 -08001386