From 458f6fe460229c0d01d461d9a7f9399c166e6537 Mon Sep 17 00:00:00 2001 From: Manjunathappa Prakash Date: Mon, 13 May 2019 18:33:01 -0700 Subject: [PATCH] qcacld-3.0: Add changes to support qca6490 Add changes to support qca6490 chip. Change-Id: I861d88f6c9aba5285eff17c188bf335d50839d56 CRs-Fixed: 2522129 --- Kbuild | 13 ++++++++++++ components/ipa/core/inc/wlan_ipa_priv.h | 6 ++++-- components/ipa/core/src/wlan_ipa_core.c | 6 ++++-- configs/default_defconfig | 20 +++++++++++++++++++ core/cds/src/cds_api.c | 8 +++++--- core/dp/htt/htt_monitor_rx.c | 3 ++- core/dp/ol/inc/ol_htt_rx_api.h | 3 ++- core/hdd/src/wlan_hdd_lro.c | 3 ++- core/hdd/src/wlan_hdd_main.c | 3 ++- core/hdd/src/wlan_hdd_rx_monitor.h | 5 +++-- core/hdd/src/wlan_hdd_softap_tx_rx.c | 3 ++- core/hdd/src/wlan_hdd_tx_rx.c | 3 ++- .../src/pe/lim/lim_send_management_frames.c | 3 ++- core/wma/src/wma_main.c | 2 +- core/wma/src/wma_mgmt.c | 3 ++- 15 files changed, 66 insertions(+), 18 deletions(-) diff --git a/Kbuild b/Kbuild index ce077cf5bafb..ade2c04ef79e 100644 --- a/Kbuild +++ b/Kbuild @@ -1656,6 +1656,10 @@ ifeq ($(CONFIG_CNSS_QCA6390), y) 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 @@ HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/qca6290/hal_6290.o 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 @@ ifeq ($(CONFIG_CNSS_QCA6390), y) 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_QCA6290_HEADERS_DEF) += -DQCA6290_HEADERS_DEF 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 f43cd42b710d..18b5ceac86d7 100644 --- a/components/ipa/core/inc/wlan_ipa_priv.h +++ b/components/ipa/core/inc/wlan_ipa_priv.h @@ -172,7 +172,8 @@ struct wlan_ipa_tx_hdr { * @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 @@ struct frag_header { * @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 73bc5e514572..a558ae5bf43f 100644 --- a/components/ipa/core/src/wlan_ipa_core.c +++ b/components/ipa/core/src/wlan_ipa_core.c @@ -467,7 +467,8 @@ drop_pkt: /* * 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 @@ end: 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 3457328751e6..37722467a76c 100644 --- a/configs/default_defconfig +++ b/configs/default_defconfig @@ -26,6 +26,21 @@ ifeq ($(CONFIG_CNSS_QCA6390), y) 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 @@ ifeq ($(CONFIG_CNSS_QCA6390), y) 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 74e0474c88b8..72ddbc2e3272 100644 --- a/core/cds/src/cds_api.c +++ b/core/cds/src/cds_api.c @@ -672,14 +672,16 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc) 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 f98f77502af1..e42f68d31321 100644 --- a/core/dp/htt/htt_monitor_rx.c +++ b/core/dp/htt/htt_monitor_rx.c @@ -726,7 +726,8 @@ next_pop: #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 3554b3467d95..fae61969af80 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 @@ int htt_rx_msdu_buff_in_order_replenish(htt_pdev_handle pdev, uint32_t num) * @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 4b9ed69f646c..5289737e55fd 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 f71c21fcc25b..016551b7b8e2 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -11892,7 +11892,8 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx) /* 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 61f8ed231d71..29fb05cf1e6e 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 fa4130994deb..376710fec272 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 @@ QDF_STATUS hdd_softap_rx_packet_cbk(void *adapter_context, qdf_nbuf_t rx_buf) 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 0f5496d8bc38..6650e412da05 100644 --- a/core/hdd/src/wlan_hdd_tx_rx.c +++ b/core/hdd/src/wlan_hdd_tx_rx.c @@ -1814,7 +1814,8 @@ int hdd_rx_ol_init(struct hdd_context *hdd_ctx) 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 0dca40b021ca..0559316839ca 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 @@ returnAfterError: } /* 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 3c70c0e7de8d..ecbd62237dac 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -7335,7 +7335,7 @@ static void wma_set_wifi_start_packet_stats(void *wma_handle, 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 c7cea63e8ffa..8b125b351489 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -1962,7 +1962,8 @@ static void wma_read_cfg_wepkey(tp_wma_handle wma_handle, #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