Przeglądaj źródła

qcacmn: Support separate ce service map for qca6290

qca6290 family chips need a separate ce service map.
packet log service moved to CE5 to replace ipa ce
service.

Change-Id: I150d493df9e7fc910d5dbe44d99693345574a921
CRs-Fixed: 1103155
Houston Hoffman 8 lat temu
rodzic
commit
88c896f365
2 zmienionych plików z 31 dodań i 7 usunięć
  1. 4 7
      hif/src/ce/ce_assignment.h
  2. 27 0
      hif/src/ce/ce_main.c

+ 4 - 7
hif/src/ce/ce_assignment.h

@@ -608,9 +608,8 @@ static struct CE_attr host_ce_config_wlan_qca6290[] = {
 	/* host->target HTT */
 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
-	/* ipa_uc->target HTC control */
-	{ /* CE5 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
-		1024, 512, 0, NULL,},
+	/* target -> host PKTLOG */
+	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
 	/* Target autonomous HIF_memcpy */
 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
 	/* ce_diag, the Diagnostic Window */
@@ -633,10 +632,8 @@ static struct CE_pipe_config target_ce_config_wlan_qca6290[] = {
 	/* host->target HTT */
 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
-	/* NB: 50% of src nentries, since tx has 2 frags */
-	/* ipa_uc->target */
-	{ /* CE5 */ 5, PIPEDIR_OUT, 1024,   64,
-		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
+	/* Target -> host PKTLOG */
+	{ /* CE5 */ 5, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
 	/* Reserved for target autonomous HIF_memcpy */
 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
 	/* CE7 used only by Host */

+ 27 - 0
hif/src/ce/ce_main.c

@@ -376,6 +376,28 @@ static struct service_to_pipe target_service_to_ce_map_wlan[] = {
 	},
 };
 
+/* PIPEDIR_OUT = HOST to Target */
+/* PIPEDIR_IN  = TARGET to HOST */
+static struct service_to_pipe target_service_to_ce_map_qca6290[] = {
+	{ WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, },
+	{ WMI_DATA_VO_SVC, PIPEDIR_IN , 2, },
+	{ WMI_DATA_BK_SVC, PIPEDIR_OUT, 3, },
+	{ WMI_DATA_BK_SVC, PIPEDIR_IN , 2, },
+	{ WMI_DATA_BE_SVC, PIPEDIR_OUT, 3, },
+	{ WMI_DATA_BE_SVC, PIPEDIR_IN , 2, },
+	{ WMI_DATA_VI_SVC, PIPEDIR_OUT, 3, },
+	{ WMI_DATA_VI_SVC, PIPEDIR_IN , 2, },
+	{ WMI_CONTROL_SVC, PIPEDIR_OUT, 3, },
+	{ WMI_CONTROL_SVC, PIPEDIR_IN , 2, },
+	{ HTC_CTRL_RSVD_SVC, PIPEDIR_OUT, 0, },
+	{ HTC_CTRL_RSVD_SVC, PIPEDIR_IN , 2, },
+	{ HTT_DATA_MSG_SVC, PIPEDIR_OUT, 4, },
+	{ HTT_DATA_MSG_SVC, PIPEDIR_IN , 1, },
+	{ PACKET_LOG_SVC, PIPEDIR_IN , 5, },
+	/* (Additions here) */
+	{ 0, 0, 0, },
+};
+
 static struct service_to_pipe target_service_to_ce_map_ar900b[] = {
 	{
 		WMI_DATA_VO_SVC,
@@ -2680,6 +2702,11 @@ int hif_map_service_to_pipe(struct hif_opaque_softc *hif_hdl, uint16_t svc_id,
 			sz_tgt_svc_map_to_use =
 				sizeof(target_service_to_ce_map_ar900b);
 			break;
+		case TARGET_TYPE_QCA6290:
+			tgt_svc_map_to_use = target_service_to_ce_map_qca6290;
+			sz_tgt_svc_map_to_use =
+				sizeof(target_service_to_ce_map_qca6290);
+			break;
 		}
 	}