diff --git a/dp/inc/cdp_txrx_cmn_reg.h b/dp/inc/cdp_txrx_cmn_reg.h index 4881c40b7c..60f70e37d2 100644 --- a/dp/inc/cdp_txrx_cmn_reg.h +++ b/dp/inc/cdp_txrx_cmn_reg.h @@ -78,7 +78,8 @@ ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops); * Return: DP SOC handle on success, NULL on failure */ #if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ - defined(QCA_WIFI_QCA5018) || defined(QCA_WIFI_QCA9574) + defined(QCA_WIFI_QCA5018) || defined(QCA_WIFI_QCA9574) || \ + defined(QCA_WIFI_QCA5332) struct cdp_soc_t * dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, struct cdp_soc_attach_params *params); @@ -131,6 +132,7 @@ static inline int cdp_get_arch_type_from_devid(uint16_t devid) case BERYLLIUM_DP: case KIWI_DEVICE_ID: case QCN9224_DEVICE_ID: + case QCA5332_DEVICE_ID: case MANGO_DEVICE_ID: return CDP_ARCH_TYPE_BE; default: @@ -176,6 +178,7 @@ ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid, case KIWI_DEVICE_ID: case QCN9224_DEVICE_ID: case MANGO_DEVICE_ID: + case QCA5332_DEVICE_ID: return dp_soc_attach_wifi3(psoc, ¶ms); break; default: diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index f505ced549..4823e8d867 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -14719,7 +14719,8 @@ void dp_soc_set_txrx_ring_map(struct dp_soc *soc) qdf_export_symbol(dp_soc_set_txrx_ring_map); #if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ - defined(QCA_WIFI_QCA5018) || defined(QCA_WIFI_QCA9574) + defined(QCA_WIFI_QCA5018) || defined(QCA_WIFI_QCA9574) || \ + defined(QCA_WIFI_QCA5332) /** * dp_soc_attach_wifi3() - Attach txrx SOC * @ctrl_psoc: Opaque SOC handle from control plane @@ -16380,6 +16381,21 @@ static void dp_soc_cfg_init(struct dp_soc *soc) soc->host_ast_db_enable = cfg_get(soc->ctrl_psoc, CFG_DP_HOST_AST_DB_ENABLE); break; + case TARGET_TYPE_QCA5332: + soc->ast_override_support = 1; + soc->da_war_enabled = false; + wlan_cfg_set_raw_mode_war(soc->wlan_cfg_ctx, false); + soc->per_tid_basize_max_tid = 8; + soc->wbm_release_desc_rx_sg_support = 1; + soc->rxdma2sw_rings_not_supported = 1; + soc->wbm_sg_last_msdu_war = 1; + soc->ast_offload_support = AST_OFFLOAD_ENABLE_STATUS; + soc->mec_fw_offload = FW_MEC_FW_OFFLOAD_ENABLED; + soc->num_hw_dscp_tid_map = HAL_MAX_HW_DSCP_TID_V2_MAPS_5332; + wlan_cfg_set_txmon_hw_support(soc->wlan_cfg_ctx, true); + soc->host_ast_db_enable = cfg_get(soc->ctrl_psoc, + CFG_DP_HOST_AST_DB_ENABLE); + break; default: qdf_print("%s: Unknown tgt type %d\n", __func__, target_type); qdf_assert_always(0); @@ -16431,6 +16447,7 @@ static void dp_soc_cfg_attach(struct dp_soc *soc) wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx); break; case TARGET_TYPE_QCN9224: + case TARGET_TYPE_QCA5332: wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1); wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx); break; diff --git a/dp/wifi3.0/monitor/dp_mon.c b/dp/wifi3.0/monitor/dp_mon.c index 2eb0b495ea..14fba5377e 100644 --- a/dp/wifi3.0/monitor/dp_mon.c +++ b/dp/wifi3.0/monitor/dp_mon.c @@ -4942,6 +4942,7 @@ QDF_STATUS dp_mon_soc_cfg_init(struct dp_soc *soc) mon_soc->hw_nac_monitor_support = 1; break; case TARGET_TYPE_QCN9224: + case TARGET_TYPE_QCA5332: wlan_cfg_set_mon_delayed_replenish_entries(soc->wlan_cfg_ctx, MON_BUF_MIN_ENTRIES); mon_soc->hw_nac_monitor_support = 1; @@ -5604,6 +5605,7 @@ void dp_mon_ops_register(struct dp_soc *soc) dp_mon_ops_register_1_0(mon_soc); break; case TARGET_TYPE_QCN9224: + case TARGET_TYPE_QCA5332: #ifdef QCA_MONITOR_2_0_SUPPORT dp_mon_ops_register_2_0(mon_soc); #endif @@ -5676,6 +5678,7 @@ void dp_mon_cdp_ops_register(struct dp_soc *soc) #endif break; case TARGET_TYPE_QCN9224: + case TARGET_TYPE_QCA5332: #ifdef QCA_MONITOR_2_0_SUPPORT dp_mon_cdp_ops_register_2_0(ops); #ifdef ATH_SUPPORT_NAC_RSSI diff --git a/hal/wifi3.0/hal_tx.h b/hal/wifi3.0/hal_tx.h index 2d40197e7f..8f067e487f 100644 --- a/hal/wifi3.0/hal_tx.h +++ b/hal/wifi3.0/hal_tx.h @@ -117,6 +117,7 @@ do { \ #define HAL_MAX_HW_DSCP_TID_MAPS_11AX 32 #define HAL_MAX_HW_DSCP_TID_V2_MAPS 48 +#define HAL_MAX_HW_DSCP_TID_V2_MAPS_5332 24 #define HTT_META_HEADER_LEN_BYTES 64 #define HAL_TX_EXT_DESC_WITH_META_DATA \ (HTT_META_HEADER_LEN_BYTES + HAL_TX_EXTENSION_DESC_LEN_BYTES) diff --git a/hal/wifi3.0/qca5332/hal_5332_tx.h b/hal/wifi3.0/qca5332/hal_5332_tx.h index a834016e3a..389c54b991 100644 --- a/hal/wifi3.0/qca5332/hal_5332_tx.h +++ b/hal/wifi3.0/qca5332/hal_5332_tx.h @@ -51,7 +51,7 @@ static void hal_tx_set_dscp_tid_map_5332(struct hal_soc *hal_soc, uint8_t *map, struct hal_soc *soc = (struct hal_soc *)hal_soc; - if (id >= HAL_MAX_HW_DSCP_TID_V2_MAPS) + if (id >= HAL_MAX_HW_DSCP_TID_V2_MAPS_5332) return; cmn_reg_addr = HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(