From 88c896f365c0ec1a712d062d14783d7871dbca64 Mon Sep 17 00:00:00 2001 From: Houston Hoffman Date: Wed, 14 Dec 2016 09:56:35 -0800 Subject: [PATCH] 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 --- hif/src/ce/ce_assignment.h | 11 ++++------- hif/src/ce/ce_main.c | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/hif/src/ce/ce_assignment.h b/hif/src/ce/ce_assignment.h index 6725817a2831..bac7e198fbff 100644 --- a/hif/src/ce/ce_assignment.h +++ b/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 */ diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index f356f926d93f..5a960c1e9ed2 100644 --- a/hif/src/ce/ce_main.c +++ b/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; } }