#------------------------------------------------------------------------------ # ISC License (ISC) # # # Copyright (c) 2005-2013 Atheros Corporation. All rights reserved. # Copyright (c) 2012-2013, The Linux Foundation # All rights reserved. # Software was previously licensed under ISC license by Qualcomm Atheros, Inc. # # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # #------------------------------------------------------------------------------ #============================================================================== # Author(s): ="Atheros" #============================================================================== ####################################################################################### # AR6K Kernel Module makefile. # # This makefile is invoked by the master makefile in the linux kernel, the linux kernel # source must be initially compiled. The top level make will invoke the main linux kernel # makefile which will subsequently pick up this makefile. # ####################################################################################### REV ?= 2 EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/include EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/wlan/include EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/os/linux/include EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/os/ EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/bmi/include EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include/AR6002 EXTRA_CFLAGS += -DLINUX -D__KERNEL__ \ -DTCMD -DSEND_EVENT_TO_APP -DUSER_KEYS \ -DNO_SYNC_FLUSH -DHTC_EP_STAT_PROFILING -DWLAN_HEADERS\ -DATH_AR6K_11N_SUPPORT \ -DSUPPORT_11N \ -DWAPI_ENABLE \ -DHS20_ENABLE #\ -DMULTIPLE_FRAMES_PER_INTERRUPT -DAR6000REV$(REV) \ -DBLOCK_TX_PATH_FLAG -DCHECKSUM_OFFLOAD \ ifeq ($(ATH_BUILD_BTFILTER),yes) EXTRA_CFLAGS += -DBTCOEX EXTRA_CFLAGS += -DCONFIG_BT endif ifeq ($(ATH_BMISS_ENHANCEMENT),yes) EXTRA_CFLAGS += -DBMISS_ENHANCEMENT endif ifeq ($(ATH_CFG80211_ENV),yes) EXTRA_CFLAGS += -DATH6K_CONFIG_CFG80211 # EXTRA_CFLAGS += -DCFG80211_WAPI_ENABLE endif ifeq ($(ATH_INIT_MODE_DRV_ENABLED), yes) ifeq ($(ATH_AR600x_WB31_XXX),yes) EXTRA_CFLAGS += -DAR600x_WB31_XXX else ifeq ($(ATH_AR600x_SD32_XXX),yes) EXTRA_CFLAGS += -DAR600x_SD32_XXX else EXTRA_CFLAGS += -DAR600x_SD31_XXX endif endif EXTRA_CFLAGS += -DINIT_MODE_DRV_ENABLED -DBMIENABLE_SET endif ifeq ($(ATH_ANDROID_ENV),yes) EXTRA_CFLAGS += -DANDROID_ENV -D__linux__ $(ATH_ANDROID_BUILD_FLAGS) EXTRA_CFLAGS += -DINIT_MODE_DRV_ENABLED -DBMIENABLE_SET -DAR600x_SD31_XXX \ -DATH6KL_CONFIG_HIF_VIRTUAL_SCATTER \ -DCONFIG_AP_VIRTUAL_ADAPTER_SUPPORT ifeq ($(ATH_AR6K_HCI_BRIDGE),yes) EXTRA_CFLAGS += -DSETUPHCI_ENABLED -DSETUPBTDEV_ENABLED \ -DATH6KL_CONFIG_GPIO_BT_RESET -DAR600x_BT_AR3001 endif endif ifeq ($(ATH_AR6K_HCI_PAL),yes) EXTRA_CFLAGS += -DSETUPHCIPAL_ENABLED ifeq ($(ATH_AR6K_DEBUG_HCI_PAL),yes) EXTRA_CFLAGS += -DHCIPAL_DEBUG endif endif ifeq ($(ATH_SOFTMAC_FILE_USED),yes) EXTRA_CFLAGS += -DSOFTMAC_FILE_USED endif ifeq ($(ATH_AR6K_OTA_TEST_MODE),yes) EXTRA_CFLAGS += -DATH6K_CONFIG_OTA_MODE endif ifeq ($(ATH_AR6K_HCI_BRIDGE),yes) EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/miscdrv/ar3kps EXTRA_CFLAGS += -I$(ATH_SRC_BASE)/../include/AR6002/hw4.0 EXTRA_CFLAGS += -DATH_AR6K_ENABLE_GMBOX \ -DHCI_TRANSPORT_SDIO ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no) EXTRA_CFLAGS += -DEXPORT_HCI_BRIDGE_INTERFACE endif endif ifeq ($(ATH_HTC_RAW_INT_ENV),yes) EXTRA_CFLAGS += -DHTC_RAW_INTERFACE endif ifeq ($(ATH_DEBUG_DRIVER),yes) EXTRA_CFLAGS += -DDEBUG -DATH_DEBUG_MODULE endif ifeq ($(ATH_USE_PREALLOC_BUFFER),yes) EXTRA_CFLAGS += -DUSE_PREALLOC_BUFFER endif ifeq ($(ATH_BUILD_P2P),yes) EXTRA_CFLAGS += -DP2P endif ifeq ($(AR6002_REV),4) EXTRA_CFLAGS += -DAR6002_REV4 endif ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw2.0)","") EXTRA_CFLAGS += -DAR6002_HEADERS_DEF endif ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw4.0)","") EXTRA_CFLAGS += -DAR6003_HEADERS_DEF endif ifneq ("$(wildcard $(ATH_SRC_BASE)/../include/AR6002/hw6.0)","") EXTRA_CFLAGS += -DMCKINLEY_HEADERS_DEF endif ifneq ($(ATH_OS_SUB_TYPE),linux_2_4) # linux 2.6 and higher kernel module build settings EXTRA_CFLAGS += -DKERNEL_2_6 obj-m += ar6000.o ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no) obj-m += bt_hci_sdio.o endif -include $(ATH_SRC_BASE)/hif/$(ATH_HIF_TYPE)/Makefile ifneq ($(ATH_HIF_MESSAGE_BASED),yes) ar6000-objs += ../../htc2/AR6000/ar6k.o \ ../../htc2/AR6000/ar6k_events.o \ ../../htc2/htc_send.o \ ../../htc2/htc_recv.o \ ../../htc2/htc_services.o \ ../../htc2/htc.o endif ifeq ($(ATH_HIF_MESSAGE_BASED),yes) ar6000-objs += ../../htc_thin/htc_send.o \ ../../htc_thin/htc_recv.o \ ../../htc_thin/htc_services.o \ ../../htc_thin/htc.o endif ar6000-objs += ../../bmi/src/bmi.o \ ar6000_drv.o \ ar6000_pm.o \ ar6000_dt.o \ ar6000_raw_if.o \ netbuf.o \ wireless_ext.o \ ioctl.o \ ../../miscdrv/common_drv.o \ ../../miscdrv/credit_dist.o \ ../../wmi/wmi.o \ ../../reorder/rcv_aggr.o \ ../../wlan/src/wlan_node.o \ ../../wlan/src/wlan_recv_beacon.o \ ../../wlan/src/wlan_utils.o \ ../../regtable/regtable.o \ ../../regtable/AR6003def.o ifeq ($(ATH_BUILD_P2P),yes) ar6000-objs += ../../p2p/p2p_main.o endif ifeq ($(ATH_HIF_TYPE),sdio) ar6000-objs += ../../hif/common/hif_bmi_reg_access.o \ ../../hif/common/hif_diag_reg_access.o endif ifeq ($(ATH_CFG80211_ENV),yes) ar6000-objs += cfg80211.o endif ifneq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no) ar6000-objs += hci_bridge.o endif ifneq ($(ATH_AR6K_BUILTIN_HCI_PAL),no) ar6000-objs += ar6k_pal.o else obj-m += ar6k_pal.o endif ifeq ($(ATH_AR6K_HCI_BRIDGE),yes) ar6000-objs += ../../htc2/AR6000/ar6k_gmbox.o \ ../../htc2/AR6000/ar6k_gmbox_hciuart.o ifneq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no) ar6000-objs += ../../miscdrv/ar3kconfig.o \ ../../miscdrv/ar3kps/ar3kpsconfig.o \ ../../miscdrv/ar3kps/ar3kpsparser.o else ar6000-objs += export_hci_transport.o endif ifeq ($(ATH_AR6K_BUILTIN_HCI_TRANSPORT),no) bt_hci_sdio-objs += hci_bridge.o \ ../../miscdrv/ar3kconfig.o \ ../../miscdrv/ar3kps/ar3kpsconfig.o \ ../../miscdrv/ar3kps/ar3kpsparser.o endif endif ifeq ($(ATH_ANDROID_ENV),yes) ar6000-objs += ar6000_android.o endif ifeq ($(ATH_AR6K_DEBUG_ALLOC),yes) EXTRA_CFLAGS += -DAR6K_ALLOC_DEBUG ar6000-objs += ar6k_mem_debug.o endif endif ifeq ($(ATH_OS_SUB_TYPE),linux_2_4) # linux 2.4 kernel module build settings EXTRA_CFLAGS += -DKERNEL_2_4 O_TARGET := ar6000.o # need export line for module export export-objs := ar6000_drv.o -include $(ATH_SRC_BASE)/hif/$(ATH_HIF_TYPE)/Makefile obj-y += $(ATH_SRC_BASE)/htc2/htc.o \ $(ATH_SRC_BASE)/htc2/htc_send.o \ $(ATH_SRC_BASE)/htc2/htc_recv.o \ $(ATH_SRC_BASE)/htc2/htc_services.o \ $(ATH_SRC_BASE)/htc2/AR6000/ar6k.o \ $(ATH_SRC_BASE)/htc2/AR6000/ar6k_events.o \ $(ATH_SRC_BASE)/bmi/src/bmi.o \ $(ATH_SRC_BASE)/wmi/wmi.o \ $(ATH_SRC_BASE)/reorder/rcv_aggr.o \ $(ATH_SRC_BASE)/wlan/src/wlan_node.o \ $(ATH_SRC_BASE)/wlan/src/wlan_recv_beacon.o \ $(ATH_SRC_BASE)/wlan/src/wlan_utils.o \ $(ATH_SRC_BASE)/os/linux/ar6000_drv.o \ $(ATH_SRC_BASE)/os/linux/ar6000_raw_if.o \ $(ATH_SRC_BASE)/os/linux/wireless_ext.o \ $(ATH_SRC_BASE)/os/linux/ioctl.o \ $(ATH_SRC_BASE)/os/linux/netbuf.o \ $(ATH_SRC_BASE)/miscdrv/common_drv.o \ $(ATH_SRC_BASE)/miscdrv/credit_dist.o ifeq ($(ATH_HIF_TYPE),SPI2) obj-y += $(ATH_SRC_BASE)/hif/common/hif_bmi_reg_access.o \ $(ATH_SRC_BASE)/hif/common/hif_diag_reg_access.o endif obj-m += htc.o \ htc_send.o \ htc_recv.o \ htc_services.o \ ar6k_events.o \ ar6k.o \ hif.o \ bmi.o \ wmi.o \ wlan_node.o \ wlan_recv_beacon.o \ wlan_utils.o \ ar6000_drv.o \ ar6000_raw_if.o \ common_drv.o \ credit_dist.o \ netbuf.o \ wireless_ext.o \ rcv_aggr.o \ ioctl.o \ ar6000.o ifeq ($(ATH_HIF_TYPE),SPI2) obj-m += hif_bmi_reg_access.o \ hif_diag_reg_access.o endif include $(ATH_LINUXPATH)/Rules.make endif