浏览代码

qcacmn: Add support for Third WKK radio in IPA context

Currently we only support DBDC with IPA, to support
TBTC we need to provide pipe setup for third WKK
radio to IPA, so that IPA can register the pipes
in wlan2 smmu context bank for third WKK radio.

Change-Id: I941c0ddec4f23406aa5acabbfb80a7499d830d75
CRs-Fixed: 3456002
Devender Kumar 2 年之前
父节点
当前提交
b0e26ae525
共有 2 个文件被更改,包括 13 次插入0 次删除
  1. 12 0
      dp/wifi3.0/dp_ipa.c
  2. 1 0
      dp/wifi3.0/dp_ipa.h

+ 12 - 0
dp/wifi3.0/dp_ipa.c

@@ -2448,6 +2448,9 @@ dp_ipa_wdi_tx_smmu_params(struct dp_soc *soc,
 		else if (hdl == DP_IPA_HDL_SECOND)
 		else if (hdl == DP_IPA_HDL_SECOND)
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(tx_smmu) =
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(tx_smmu) =
 				IPA_CLIENT_WLAN4_CONS;
 				IPA_CLIENT_WLAN4_CONS;
+		else if (hdl == DP_IPA_HDL_THIRD)
+			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(tx_smmu) =
+				IPA_CLIENT_WLAN1_CONS;
 	} else {
 	} else {
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(tx_smmu) =
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(tx_smmu) =
 			IPA_CLIENT_WLAN1_CONS;
 			IPA_CLIENT_WLAN1_CONS;
@@ -2499,6 +2502,9 @@ dp_ipa_wdi_rx_smmu_params(struct dp_soc *soc,
 		else if (hdl == DP_IPA_HDL_SECOND)
 		else if (hdl == DP_IPA_HDL_SECOND)
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 				IPA_CLIENT_WLAN3_PROD;
 				IPA_CLIENT_WLAN3_PROD;
+		else if (hdl == DP_IPA_HDL_THIRD)
+			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
+				IPA_CLIENT_WLAN1_PROD;
 	} else {
 	} else {
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 					IPA_CLIENT_WLAN1_PROD;
 					IPA_CLIENT_WLAN1_PROD;
@@ -2559,6 +2565,9 @@ dp_ipa_wdi_rx_alt_pipe_smmu_params(struct dp_soc *soc,
 		else if (hdl == DP_IPA_HDL_SECOND)
 		else if (hdl == DP_IPA_HDL_SECOND)
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 			QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 				IPA_CLIENT_WLAN3_PROD1;
 				IPA_CLIENT_WLAN3_PROD1;
+		else if (hdl == DP_IPA_HDL_THIRD)
+			QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
+				IPA_CLIENT_WLAN1_PROD1;
 	} else {
 	} else {
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 		QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(rx_smmu) =
 					IPA_CLIENT_WLAN1_PROD;
 					IPA_CLIENT_WLAN1_PROD;
@@ -2617,6 +2626,9 @@ static void dp_ipa_wdi_rx_alt_pipe_params(struct dp_soc *soc,
 		else if (hdl == DP_IPA_HDL_SECOND)
 		else if (hdl == DP_IPA_HDL_SECOND)
 			QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
 			QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
 				IPA_CLIENT_WLAN3_PROD1;
 				IPA_CLIENT_WLAN3_PROD1;
+		else if (hdl == DP_IPA_HDL_THIRD)
+			QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
+				IPA_CLIENT_WLAN1_PROD1;
 	} else {
 	} else {
 		QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
 		QDF_IPA_WDI_SETUP_INFO_CLIENT(rx) =
 					IPA_CLIENT_WLAN1_PROD;
 					IPA_CLIENT_WLAN1_PROD;

+ 1 - 0
dp/wifi3.0/dp_ipa.h

@@ -97,6 +97,7 @@ struct dp_ipa_uc_rx_hdr {
 #define DP_IPA_HDL_INVALID	0xFF
 #define DP_IPA_HDL_INVALID	0xFF
 #define DP_IPA_HDL_FIRST	0
 #define DP_IPA_HDL_FIRST	0
 #define DP_IPA_HDL_SECOND	1
 #define DP_IPA_HDL_SECOND	1
+#define DP_IPA_HDL_THIRD	2
 /**
 /**
  * wlan_ipa_get_hdl() - Get ipa handle from IPA component
  * wlan_ipa_get_hdl() - Get ipa handle from IPA component
  * @psoc: control psoc object
  * @psoc: control psoc object