소스 검색

qcacmn: Update the CFR streamfs buf size for Miami

    Update the CFR streamfs buf size for Miami

Change-Id: Ie8ddc32161e9c9eafc258da8fbb0c2cd9173cbe7
CRs-Fixed: 3409861
sivaraman 2 년 전
부모
커밋
5ca9d1b8b4
2개의 변경된 파일31개의 추가작업 그리고 0개의 파일을 삭제
  1. 21 0
      target_if/cfr/inc/target_if_cfr_enh.h
  2. 10 0
      target_if/cfr/src/target_if_cfr_enh.c

+ 21 - 0
target_if/cfr/inc/target_if_cfr_enh.h

@@ -149,6 +149,27 @@
 	 QCN6432_MAX_DATA_LENGTH_BYTES)
 
 #define STREAMFS_NUM_SUBBUF_QCN6432 255
+
+/* Max 4 users in MU case for QCA5332 */
+#define QCA5332_CFR_MU_USERS 4
+
+#define QCA5332_MAX_HEADER_LENGTH_WORDS 22
+
+#define QCA5332_MAX_DATA_LENGTH_BYTES 8192
+
+/* Max size :
+ * sizeof(csi_cfr_header) + 88 bytes(cfr header) + 8192 bytes(cfr payload)
+ * where cfr_header size = rtt upload header len + freeze_tlv len +
+ *                         uplink user setup info + alignment/reserved bytes
+ *                       = 16bytes + 32bytes + (8bytes * 4users) + 8bytes
+ */
+#define STREAMFS_MAX_SUBBUF_QCA5332 \
+	(sizeof(struct csi_cfr_header) + \
+	 (QCA5332_MAX_HEADER_LENGTH_WORDS * 4) + \
+	QCA5332_MAX_DATA_LENGTH_BYTES)
+
+#define STREAMFS_NUM_SUBBUF_QCA5332 255
+
 /* enum macrx_freeze_tlv_version: Reported by uCode in enh_dma_header
  * MACRX_FREEZE_TLV_VERSION_1: Single MU UL user info reported by MAC.
  * This is used in Cypress/HastingsPrime chips. Corresponding structures are

+ 10 - 0
target_if/cfr/src/target_if_cfr_enh.c

@@ -768,6 +768,11 @@ static QDF_STATUS check_dma_length(struct look_up_table *lut,
 		    lut->payload_length <= QCN6432_MAX_DATA_LENGTH_BYTES) {
 			return QDF_STATUS_SUCCESS;
 		}
+	} else if (target_type == TARGET_TYPE_QCA5332) {
+		if (lut->header_length <= QCA5332_MAX_HEADER_LENGTH_WORDS &&
+		    lut->payload_length <= QCA5332_MAX_DATA_LENGTH_BYTES) {
+			return QDF_STATUS_SUCCESS;
+		}
 	} else {
 		if (lut->header_length <= CYP_MAX_HEADER_LENGTH_WORDS &&
 		    lut->payload_length <= CYP_MAX_DATA_LENGTH_BYTES) {
@@ -2357,6 +2362,11 @@ QDF_STATUS cfr_enh_init_pdev(struct wlan_objmgr_psoc *psoc,
 		pcfr->num_subbufs = STREAMFS_NUM_SUBBUF_QCN6432;
 		pcfr->chip_type = CFR_CAPTURE_RADIO_PEBBLE;
 		pcfr->max_mu_users = QCN6432_CFR_MU_USERS;
+	} else if (target_type == TARGET_TYPE_QCA5332) {
+		pcfr->subbuf_size = STREAMFS_MAX_SUBBUF_QCA5332;
+		pcfr->num_subbufs = STREAMFS_NUM_SUBBUF_QCA5332;
+		pcfr->chip_type = CFR_CAPTURE_RADIO_MIAMI;
+		pcfr->max_mu_users = QCA5332_CFR_MU_USERS;
 	} else {
 		pcfr->subbuf_size = STREAMFS_MAX_SUBBUF_CYP;
 		pcfr->num_subbufs = STREAMFS_NUM_SUBBUF_CYP;