Jelajahi Sumber

qcacmn: Add support for pmac_id in QDF layer

To support splitphy and MLO operation when multiple
TX ring are present under single soc, then to differentiate
the TX lmac, pmac id in per packet is require. As pmac_id in
bank register is always constant for pinnacle case, so need
to pass per packet in TX desc.

Change-Id: Ic6d8e14e8c1948e218c52c8eeaf99fcd6c437753
CRs-Fixed: 3356413
Devender Kumar 2 tahun lalu
induk
melakukan
905bc10886
2 mengubah file dengan 23 tambahan dan 0 penghapusan
  1. 4 0
      qdf/inc/qdf_ipa_wdi3.h
  2. 19 0
      qdf/linux/src/i_qdf_ipa_wdi3.h

+ 4 - 0
qdf/inc/qdf_ipa_wdi3.h

@@ -125,6 +125,8 @@ typedef __qdf_ipa_wdi_pipe_setup_info_smmu_t qdf_ipa_wdi_pipe_setup_info_smmu_t;
 	__QDF_IPA_WDI_SETUP_INFO_SMMU_DESC_FORMAT_TEMPLATE(txrx)
 #define QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)	\
 	__QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)
+#define QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)	\
+	__QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)
 
 typedef __qdf_ipa_ep_cfg_t qdf_ipa_ep_cfg_t;
 
@@ -271,6 +273,8 @@ typedef __qdf_ipa_wdi_pipe_setup_info_t qdf_ipa_wdi_pipe_setup_info_t;
 	__QDF_IPA_WDI_SETUP_INFO_DESC_FORMAT_TEMPLATE(txrx)
 #define QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(txrx, bid)	\
 	__QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(txrx, bid)
+#define QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)	\
+	__QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)
 
 /**
  * qdf_ipa_wdi_conn_in_params_t - information provided by

+ 19 - 0
qdf/linux/src/i_qdf_ipa_wdi3.h

@@ -297,9 +297,28 @@ typedef struct ipa_wdi_pipe_setup_info_smmu __qdf_ipa_wdi_pipe_setup_info_smmu_t
 
 #define __QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)	\
 	((((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->rx_bank_id) = (bid))
+
+/*
+ * rx_pmac_id was added to struct ipa_wdi_pipe_setup_info with
+ * Change-Id Ic9ee13be05b11004982e9a38cb503b3c4d0f81f3. This change
+ * also modified macro IPA_WDI_INST_MAX from 2 to 3, so we can use
+ * this to know if the change is present or not.
+ */
+#if defined(IPA_WDI_INST_MAX) && (IPA_WDI_INST_MAX >= 3)
+#define __QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)	\
+	((((struct ipa_wdi_pipe_setup_info *)(txrx))->rx_pmac_id) = (pmac_id))
+
+#define __QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)	\
+	((((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->rx_pmac_id) = (pmac_id))
+#else
+#define __QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)
+#define __QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)
+#endif
 #else
 #define __QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(txrx, bid)
 #define __QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)
+#define __QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)
+#define __QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)
 #endif
 
 /**