qcacld-3.0: Add changes to support qca6490
Add changes to support qca6490 chip.
Change-Id: I861d88f6c9aba5285eff17c188bf335d50839d56
CRs-Fixed: 2522129
diff --git a/Kbuild b/Kbuild
index ce077cf..ade2c04 100644
--- a/Kbuild
+++ b/Kbuild
@@ -1656,6 +1656,10 @@
HIF_CE_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/qca6390def.o
endif
+ifeq ($(CONFIG_CNSS_QCA6490), y)
+HIF_CE_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_DIR)/src/qca6490def.o
+endif
+
HIF_CE_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service_srng.o
else
HIF_CE_OBJS += $(WLAN_COMMON_ROOT)/$(HIF_CE_DIR)/ce_service_legacy.o
@@ -1740,6 +1744,9 @@
else ifeq ($(CONFIG_CNSS_QCA6390), y)
HAL_INC += -I$(WLAN_COMMON_INC)/$(HAL_DIR)/wifi3.0/qca6390
HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/qca6390/hal_6390.o
+else ifeq ($(CONFIG_CNSS_QCA6490), y)
+HAL_INC += -I$(WLAN_COMMON_INC)/$(HAL_DIR)/wifi3.0/qca6490
+HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/qca6490/hal_6490.o
else
#error "Not 11ax"
endif
@@ -1838,6 +1845,10 @@
TARGET_INC += -I$(WLAN_FW_API)/hw/qca6390/v1
endif
+ifeq ($(CONFIG_CNSS_QCA6490), y)
+TARGET_INC += -I$(WLAN_FW_API)/hw/qca6490/v1
+endif
+
LINUX_INC := -Iinclude
INCS := $(HDD_INC) \
@@ -2622,6 +2633,8 @@
cppflags-$(CONFIG_QCA_WIFI_QCA6290) += -DQCA_WIFI_QCA6290
cppflags-$(CONFIG_QCA6390_HEADERS_DEF) += -DQCA6390_HEADERS_DEF
cppflags-$(CONFIG_QCA_WIFI_QCA6390) += -DQCA_WIFI_QCA6390
+cppflags-$(CONFIG_QCA6490_HEADERS_DEF) += -DQCA6490_HEADERS_DEF
+cppflags-$(CONFIG_QCA_WIFI_QCA6490) += -DQCA_WIFI_QCA6490
cppflags-$(CONFIG_QCA_WIFI_QCA8074) += -DQCA_WIFI_QCA8074
cppflags-$(CONFIG_SCALE_INCLUDES) += -DSCALE_INCLUDES
cppflags-$(CONFIG_QCA_WIFI_QCA8074_VP) += -DQCA_WIFI_QCA8074_VP
diff --git a/components/ipa/core/inc/wlan_ipa_priv.h b/components/ipa/core/inc/wlan_ipa_priv.h
index f43cd42..18b5cea 100644
--- a/components/ipa/core/inc/wlan_ipa_priv.h
+++ b/components/ipa/core/inc/wlan_ipa_priv.h
@@ -172,7 +172,8 @@
* @reserved1: Reserved not used
* @reserved2: Reserved not used
*/
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
struct frag_header {
uint8_t reserved[0];
};
@@ -197,7 +198,8 @@
* @reserved: Reserved not used
*/
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
struct ipa_header {
uint8_t reserved[0];
};
diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c
index 73bc5e5..a558ae5 100644
--- a/components/ipa/core/src/wlan_ipa_core.c
+++ b/components/ipa/core/src/wlan_ipa_core.c
@@ -467,7 +467,8 @@
/*
* TODO: Get WDI version through FW capabilities
*/
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
static inline void wlan_ipa_wdi_get_wdi_version(struct wlan_ipa_priv *ipa_ctx)
{
ipa_ctx->wdi_version = IPA_WDI_3;
@@ -1578,7 +1579,8 @@
return status;
}
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
/**
* wlan_ipa_uc_handle_first_con() - Handle first uC IPA connection
* @ipa_ctx: IPA context
diff --git a/configs/default_defconfig b/configs/default_defconfig
index 3457328..3772246 100644
--- a/configs/default_defconfig
+++ b/configs/default_defconfig
@@ -26,6 +26,21 @@
CONFIG_WMI_DBR_SUPPORT := y
endif
+ifeq ($(CONFIG_CNSS_QCA6490), y)
+ ifeq ($(CONFIG_CNSS_EMULATION), y)
+ CONFIG_QCA_WIFI_NAPIER_EMULATION := y
+ endif
+ CONFIG_LITHIUM := y
+ CONFIG_WLAN_FEATURE_11AX := y
+ CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y
+ ifeq ($(CONFIG_ARCH_SDM845), y)
+ CONFIG_IPA3 := n
+ endif
+ CONFIG_SCALE_INCLUDES := y
+ CONFIG_HASTINGS_BT_WAR := y
+ CONFIG_WDI3_IPA_OVER_GSI :=y
+endif
+
ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y)
CONFIG_QCA_WIFI_SDIO := y
ifndef CONFIG_SDIO_TRANSFER
@@ -374,6 +389,11 @@
CONFIG_QCA_WIFI_QCA6390 := y
endif
+ifeq ($(CONFIG_CNSS_QCA6490), y)
+ CONFIG_QCA6490_HEADERS_DEF := y
+ CONFIG_QCA_WIFI_QCA6490 := y
+endif
+
ifeq ($(CONFIG_LITHIUM), y)
#
# Enable VERBOSE debug INI mechanism
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index 74e0474..72ddbc2e 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -672,14 +672,16 @@
goto err_wma_close;
}
- cds_debug("target_type %d 8074:%d 6290:%d 6390: %d",
+ cds_debug("target_type %d 8074:%d 6290:%d 6390: %d 6490: %d",
hdd_ctx->target_type,
TARGET_TYPE_QCA8074,
TARGET_TYPE_QCA6290,
- TARGET_TYPE_QCA6390);
+ TARGET_TYPE_QCA6390,
+ TARGET_TYPE_QCA6490);
if (TARGET_TYPE_QCA6290 == hdd_ctx->target_type ||
- TARGET_TYPE_QCA6390 == hdd_ctx->target_type)
+ TARGET_TYPE_QCA6390 == hdd_ctx->target_type ||
+ TARGET_TYPE_QCA6490 == hdd_ctx->target_type)
gp_cds_context->dp_soc = cdp_soc_attach(LITHIUM_DP,
gp_cds_context->hif_context, psoc,
gp_cds_context->htc_ctx, gp_cds_context->qdf_ctx,
diff --git a/core/dp/htt/htt_monitor_rx.c b/core/dp/htt/htt_monitor_rx.c
index f98f775..e42f68d 100644
--- a/core/dp/htt/htt_monitor_rx.c
+++ b/core/dp/htt/htt_monitor_rx.c
@@ -726,7 +726,8 @@
#endif /* CONFIG_HL_SUPPORT */
#if defined(FEATURE_MONITOR_MODE_SUPPORT)
-#if !defined(QCA6290_HEADERS_DEF) && !defined(QCA6390_HEADERS_DEF)
+#if !defined(QCA6290_HEADERS_DEF) && !defined(QCA6390_HEADERS_DEF) && \
+ !defined(QCA6490_HEADERS_DEF)
static void
htt_rx_parse_ppdu_start_status(struct htt_host_rx_desc_base *rx_desc,
struct ieee80211_rx_status *rs)
diff --git a/core/dp/ol/inc/ol_htt_rx_api.h b/core/dp/ol/inc/ol_htt_rx_api.h
index 3554b34..fae6196 100644
--- a/core/dp/ol/inc/ol_htt_rx_api.h
+++ b/core/dp/ol/inc/ol_htt_rx_api.h
@@ -919,7 +919,8 @@
* @return network buffer handle to the MPDU
*/
#if defined(FEATURE_MONITOR_MODE_SUPPORT)
-#if !defined(QCA6290_HEADERS_DEF) && !defined(QCA6390_HEADERS_DEF)
+#if !defined(QCA6290_HEADERS_DEF) && !defined(QCA6390_HEADERS_DEF) && \
+ !defined(QCA6490_HEADERS_DEF)
qdf_nbuf_t
htt_rx_restitch_mpdu_from_msdus(htt_pdev_handle pdev,
qdf_nbuf_t head_msdu,
diff --git a/core/hdd/src/wlan_hdd_lro.c b/core/hdd/src/wlan_hdd_lro.c
index 4b9ed69..5289737 100644
--- a/core/hdd/src/wlan_hdd_lro.c
+++ b/core/hdd/src/wlan_hdd_lro.c
@@ -38,7 +38,8 @@
(LRO_DESC | LRO_ELIGIBILITY_CHECKED | LRO_TCP_ACK_NUM | \
LRO_TCP_DATA_CSUM | LRO_TCP_SEQ_NUM | LRO_TCP_WIN)
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
static qdf_lro_ctx_t wlan_hdd_get_lro_ctx(struct sk_buff *skb)
{
return (qdf_lro_ctx_t)QDF_NBUF_CB_RX_LRO_CTX(skb);
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index f71c21f..016551b 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -11892,7 +11892,8 @@
/* Donot disable rx offload on concurrency for lithium based targets */
if (!(hdd_ctx->target_type == TARGET_TYPE_QCA6290 ||
- hdd_ctx->target_type == TARGET_TYPE_QCA6390))
+ hdd_ctx->target_type == TARGET_TYPE_QCA6390 ||
+ hdd_ctx->target_type == TARGET_TYPE_QCA6490))
if (hdd_ctx->ol_enable)
dp_cbs.hdd_disable_rx_ol_in_concurrency =
hdd_disable_rx_ol_in_concurrency;
diff --git a/core/hdd/src/wlan_hdd_rx_monitor.h b/core/hdd/src/wlan_hdd_rx_monitor.h
index 61f8ed2..29fb05c 100644
--- a/core/hdd/src/wlan_hdd_rx_monitor.h
+++ b/core/hdd/src/wlan_hdd_rx_monitor.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -21,7 +21,8 @@
struct ol_txrx_ops;
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
void hdd_monitor_set_rx_monitor_cb(struct ol_txrx_ops *txrx,
ol_txrx_rx_mon_fp rx_monitor_cb);
diff --git a/core/hdd/src/wlan_hdd_softap_tx_rx.c b/core/hdd/src/wlan_hdd_softap_tx_rx.c
index fa41309..376710f 100644
--- a/core/hdd/src/wlan_hdd_softap_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_softap_tx_rx.c
@@ -856,7 +856,8 @@
skb->next = NULL;
/* Debug code, remove later */
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
QDF_TRACE(QDF_MODULE_ID_HDD_DATA, QDF_TRACE_LEVEL_DEBUG,
"%s: skb %pK skb->len %d\n", __func__, skb, skb->len);
#endif
diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c
index 0f5496d..6650e41 100644
--- a/core/hdd/src/wlan_hdd_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_tx_rx.c
@@ -1814,7 +1814,8 @@
bool lithium_based_target = false;
if (hdd_ctx->target_type == TARGET_TYPE_QCA6290 ||
- hdd_ctx->target_type == TARGET_TYPE_QCA6390)
+ hdd_ctx->target_type == TARGET_TYPE_QCA6390 ||
+ hdd_ctx->target_type == TARGET_TYPE_QCA6490)
lithium_based_target = true;
hdd_resolve_rx_ol_mode(hdd_ctx);
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index 0dca40b..0559316 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -4851,7 +4851,8 @@
} /* End lim_send_sa_query_response_frame */
#endif
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
#ifdef WLAN_FEATURE_11AX
#define IS_PE_SESSION_HE_MODE(_session) ((_session)->he_capable)
#else
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index 3c70c0e..ecbd622 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -7335,7 +7335,7 @@
log_state = ATH_PKTLOG_ANI | ATH_PKTLOG_RCUPDATE | ATH_PKTLOG_RCFIND |
ATH_PKTLOG_RX | ATH_PKTLOG_TX |
ATH_PKTLOG_TEXT | ATH_PKTLOG_SW_EVENT;
-#elif defined(QCA_WIFI_QCA6390)
+#elif defined(QCA_WIFI_QCA6390) || defined(QCA_WIFI_QCA6490)
log_state = ATH_PKTLOG_RCFIND | ATH_PKTLOG_RCUPDATE |
ATH_PKTLOG_TX | ATH_PKTLOG_LITE_T2H |
ATH_PKTLOG_SW_EVENT | ATH_PKTLOG_RX;
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index c7cea63..8b125b3 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -1962,7 +1962,8 @@
#ifdef FEATURE_WLAN_WAPI
#define WPI_IV_LEN 16
-#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+ defined(QCA_WIFI_QCA6490)
/**
* wma_fill_in_wapi_key_params() - update key parameters about wapi
* @key_params: wma key parameters