qcacld-3.0: Add hif-sdio support (Part 8: - HIF SDIO)

Add kbuild changes for HIGH latency and HIF
SDIO changes

Change-Id: I4d886090773a9b19d27a9f68115774b87299d84d
CRs-Fixed: 969334
diff --git a/Kbuild b/Kbuild
index 694715a..763b4be 100644
--- a/Kbuild
+++ b/Kbuild
@@ -6,6 +6,14 @@
 	KERNEL_BUILD := 0
 endif
 
+ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y)
+	CONFIG_QCA_WIFI_SDIO := 1
+endif
+
+ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
+	CONFIG_ROME_IF = sdio
+endif
+
 ifdef CONFIG_ICNSS
 	CONFIG_ROME_IF = snoc
 endif
@@ -141,6 +149,7 @@
 	#enable TSF get feature
 	CONFIG_WLAN_SYNC_TSF := y
 
+ifneq ($(CONFIG_ROME_IF),sdio)
 	#Flag to enable memdump feature
 	CONFIG_WLAN_FEATURE_MEMDUMP := n
 
@@ -166,6 +175,7 @@
 			CONFIG_WLAN_LRO := n
 		endif
 	endif
+endif
 
 ifeq ($(CONFIG_ROME_IF), snoc)
 	CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
@@ -741,7 +751,9 @@
                 $(TXRX_DIR)/ol_txrx_peer_find.o \
                 $(TXRX_DIR)/ol_txrx_event.o \
                 $(TXRX_DIR)/ol_txrx_encap.o \
-                $(TXRX_DIR)/ol_tx_send.o
+                $(TXRX_DIR)/ol_tx_send.o \
+                $(TXRX_DIR)/ol_tx_sched.o \
+                $(TXRX_DIR)/ol_tx_classify.o
 
 ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
 TXRX_OBJS +=     $(TXRX_DIR)/ol_txrx_flow_control.o
@@ -794,6 +806,11 @@
 
 HIF_PCIE_DIR := $(HIF_DIR)/src/pcie
 HIF_SNOC_DIR := $(HIF_DIR)/src/snoc
+HIF_SDIO_DIR := $(HIF_DIR)/src/sdio
+
+HIF_SDIO_NATIVE_DIR := $(HIF_SDIO_DIR)/native_sdio
+HIF_SDIO_NATIVE_INC_DIR := $(HIF_SDIO_NATIVE_DIR)/include
+HIF_SDIO_NATIVE_SRC_DIR := $(HIF_SDIO_NATIVE_DIR)/src
 
 HIF_INC := -I$(WLAN_COMMON_INC)/$(HIF_DIR)/inc \
 	   -I$(WLAN_COMMON_INC)/$(HIF_DIR)/src \
@@ -811,15 +828,33 @@
 HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SNOC_DIR)
 endif
 
-HIF_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/ath_procfs.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_bmi.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_diag.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_main.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_tasklet.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_main.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/mp_dev.o \
-		$(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/regtable.o
+ifeq ($(CONFIG_HIF_SDIO), 1)
+HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_DISPATCHER_DIR)
+HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SDIO_DIR)
+HIF_INC += -I$(WLAN_COMMON_INC)/$(HIF_SDIO_NATIVE_INC_DIR)
+endif
+
+HIF_COMMON_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/ath_procfs.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/hif_main.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/mp_dev.o
+
+HIF_CE_OBJS :=  $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_bmi.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_diag.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_main.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_tasklet.o \
+                $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/regtable.o
+
+HIF_SDIO_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_send.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_bmi_reg_access.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_diag_reg_access.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_dev.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/hif_sdio_recv.o \
+                 $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/regtable_sdio.o
+
+HIF_SDIO_NATIVE_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SDIO_NATIVE_SRC_DIR)/hif.o \
+                        $(WLAN_COMMON_ROOT)/$(HIF_SDIO_NATIVE_SRC_DIR)/hif_scatter.o
 
 ifneq ($(CONFIG_ICNSS), y)
 HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_CNSS_STUB_DIR)/icnss_stub.o
@@ -831,20 +866,32 @@
 
 HIF_PCIE_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_PCIE_DIR)/if_pci.o
 HIF_SNOC_OBJS := $(WLAN_COMMON_ROOT)/$(HIF_SNOC_DIR)/if_snoc.o
+HIF_SDIO_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_SDIO_DIR)/if_sdio.o
 
 HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus.o
 HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/dummy.o
 
 ifeq ($(CONFIG_HIF_PCI), 1)
 HIF_OBJS += $(HIF_PCIE_OBJS)
+HIF_OBJS += $(HIF_COMMON_OBJS)
+HIF_OBJS += $(HIF_CE_OBJS)
 HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_pci.o
 endif
 
 ifeq ($(CONFIG_HIF_SNOC), 1)
 HIF_OBJS += $(HIF_SNOC_OBJS)
+HIF_OBJS += $(HIF_COMMON_OBJS)
+HIF_OBJS += $(HIF_CE_OBJS)
 HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_snoc.o
 endif
 
+ifeq ($(CONFIG_HIF_SDIO), 1)
+HIF_OBJS += $(HIF_SDIO_OBJS)
+HIF_OBJS += $(HIF_SDIO_NATIVE_OBJS)
+HIF_OBJS += $(HIF_COMMON_OBJS)
+HIF_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DISPATCHER_DIR)/multibus_sdio.o
+endif
+
 ############ WMA ############
 WMA_DIR :=	core/wma
 
@@ -891,6 +938,9 @@
 ifeq ($(CONFIG_ICNSS),y)
 PLD_OBJS +=	$(PLD_SRC_DIR)/pld_snoc.o
 endif
+ifeq ($(CONFIG_CNSS_SDIO),y)
+PLD_OBJS +=	$(PLD_SRC_DIR)/pld_sdio.o
+endif
 
 TARGET_INC :=	-I$(WLAN_ROOT)/target/inc
 
@@ -1217,6 +1267,24 @@
 CDEFINES += -DHIF_SNOC
 endif
 
+#Enable High Latency related Flags
+ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
+CDEFINES += -DCONFIG_HL_SUPPORT \
+            -DCONFIG_AR6320_SUPPORT \
+            -DSDIO_3_0 \
+            -DHIF_SDIO \
+            -DCONFIG_DISABLE_CDC_MAX_PERF_WAR=0 \
+            -DCONFIG_ATH_PROCFS_DIAG_SUPPORT \
+            -DFEATURE_HL_GROUP_CREDIT_FLOW_CONTROL \
+            -DHIF_MBOX_SLEEP_WAR \
+            -DDEBUG_HL_LOGGING \
+            -DQCA_BAD_PEER_TX_FLOW_CL \
+            -DCONFIG_TX_DESC_HI_PRIO_RESERVE \
+            -DCONFIG_PER_VDEV_TX_DESC_POOL \
+            -DCONFIG_SDIO \
+            -DFEATURE_WLAN_FORCE_SAP_SCC
+endif
+
 #Enable USB specific APIS
 ifeq ($(CONFIG_HIF_USB), 1)
 CDEFINES += -DHIF_USB