瀏覽代碼

qcacmn: DP init changes for QCN9224

Changes to initialize DP for Target type QCN9224

Change-Id: If9b69b79946060dd802eb0554280813186de1f7a
Chaithanya Garrepalli 4 年之前
父節點
當前提交
6332137696
共有 3 個文件被更改,包括 41 次插入9 次删除
  1. 16 3
      dp/inc/cdp_txrx_cmn_reg.h
  2. 4 4
      dp/wifi3.0/dp_arch_ops.c
  3. 21 2
      dp/wifi3.0/dp_main.c

+ 16 - 3
dp/inc/cdp_txrx_cmn_reg.h

@@ -33,6 +33,17 @@
 #define BERYLLIUM_DP		0xaffe
 /* Use device IDs for attach in future */
 
+/* enum cdp_arch_type - enum for DP arch type
+ * CDP_ARCH_TYPE_LI - for lithium
+ * CDP_ARCH_TYPE_BE - for beryllium
+ * CDP_ARCH_TYPE_NONE - not supported
+ */
+enum cdp_arch_type {
+	CDP_ARCH_TYPE_NONE = -1,
+	CDP_ARCH_TYPE_LI,
+	CDP_ARCH_TYPE_BE,
+};
+
 #if defined(DP_TXRX_SOC_ATTACH)
 static inline ol_txrx_soc_handle
 ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops)
@@ -124,12 +135,13 @@ static inline int cdp_get_arch_type_from_devid(uint16_t devid)
 	case RUMIM2M_DEVICE_ID_NODE3: /*lithium emulation */
 	case RUMIM2M_DEVICE_ID_NODE4: /*lithium emulation */
 	case RUMIM2M_DEVICE_ID_NODE5: /*lithium emulation */
-		return LITHIUM_DP;
+		return CDP_ARCH_TYPE_LI;
 	case BERYLLIUM_DP:
 	case WCN7850_DEVICE_ID:
-		return BERYLLIUM_DP;
+	case QCN9224_DEVICE_ID:
+		return CDP_ARCH_TYPE_BE;
 	default:
-		return -1;
+		return CDP_ARCH_TYPE_NONE;
 	}
 }
 
@@ -161,6 +173,7 @@ ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid,
 	case RUMIM2M_DEVICE_ID_NODE4: /*lithium emulation */
 	case RUMIM2M_DEVICE_ID_NODE5: /*lithium emulation */
 	case WCN7850_DEVICE_ID:
+	case QCN9224_DEVICE_ID:
 		return dp_soc_attach_wifi3(psoc, hif_handle, htc_handle,
 			qdf_dev, dp_ol_if_ops, devid);
 	break;

+ 4 - 4
dp/wifi3.0/dp_arch_ops.c

@@ -42,12 +42,12 @@ qdf_size_t dp_get_soc_context_size(uint16_t device_id)
 {
 	switch (cdp_get_arch_type_from_devid(device_id)) {
 #ifdef CONFIG_LITHIUM
-	case LITHIUM_DP:
+	case CDP_ARCH_TYPE_LI:
 		return dp_get_soc_context_size_li();
 #endif
 
 #ifdef CONFIG_BERYLLIUM
-	case BERYLLIUM_DP:
+	case CDP_ARCH_TYPE_BE:
 		return dp_get_soc_context_size_be();
 	break;
 #endif
@@ -64,13 +64,13 @@ void dp_configure_arch_ops(struct dp_soc *soc)
 
 	switch (cdp_get_arch_type_from_devid(soc->device_id)) {
 #ifdef CONFIG_LITHIUM
-	case LITHIUM_DP:
+	case CDP_ARCH_TYPE_LI:
 		dp_initialize_arch_ops_li(&soc->arch_ops);
 	break;
 #endif
 
 #ifdef CONFIG_BERYLLIUM
-	case BERYLLIUM_DP:
+	case CDP_ARCH_TYPE_BE:
 		dp_initialize_arch_ops_be(&soc->arch_ops);
 	break;
 #endif

+ 21 - 2
dp/wifi3.0/dp_main.c

@@ -13129,9 +13129,9 @@ static uint32_t
 dp_get_link_desc_id_start(uint16_t arch_id)
 {
 	switch (arch_id) {
-	case LITHIUM_DP:
+	case CDP_ARCH_TYPE_LI:
 		return LINK_DESC_ID_START_21_BITS_COOKIE;
-	case BERYLLIUM_DP:
+	case CDP_ARCH_TYPE_BE:
 		return LINK_DESC_ID_START_20_BITS_COOKIE;
 	default:
 		dp_err("unkonwn arch_id 0x%x", arch_id);
@@ -14899,6 +14899,19 @@ static void dp_soc_cfg_init(struct dp_soc *soc)
 		soc->disable_mac1_intr = 1;
 		soc->disable_mac2_intr = 1;
 		soc->wbm_release_desc_rx_sg_support = 1;
+		break;
+	case TARGET_TYPE_QCN9224:
+		wlan_cfg_set_mon_delayed_replenish_entries(soc->wlan_cfg_ctx,
+							   MON_BUF_MIN_ENTRIES);
+		wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
+					       REO_DST_RING_SIZE_QCA8074);
+		soc->ast_override_support = 1;
+		soc->da_war_enabled = false;
+		wlan_cfg_set_raw_mode_war(soc->wlan_cfg_ctx, false);
+		soc->hw_nac_monitor_support = 1;
+		soc->per_tid_basize_max_tid = 8;
+		soc->wbm_release_desc_rx_sg_support = 1;
+
 		break;
 	default:
 		qdf_print("%s: Unknown tgt type %d\n", __func__, target_type);
@@ -14957,6 +14970,12 @@ static void dp_soc_cfg_attach(struct dp_soc *soc)
 					       REO_DST_RING_SIZE_QCN9000);
 		wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
 		break;
+	case TARGET_TYPE_QCN9224:
+		wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
+		wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
+					       REO_DST_RING_SIZE_QCA8074);
+		wlan_cfg_set_rxdma1_enable(soc->wlan_cfg_ctx);
+		break;
 	default:
 		qdf_print("%s: Unknown tgt type %d\n", __func__, target_type);
 		qdf_assert_always(0);