diff --git a/hif/src/ce/ce_assignment.h b/hif/src/ce/ce_assignment.h index a32a7cce3c38..7dfbe3caa5e9 100644 --- a/hif/src/ce/ce_assignment.h +++ b/hif/src/ce/ce_assignment.h @@ -600,21 +600,20 @@ static struct CE_pipe_config target_ce_config_wlan_qca8074[] = { (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,}, + { /* CE5 */ 5, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, /* Reserved for target autonomous HIF_memcpy */ - { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, + { /* CE6 */ 6, PIPEDIR_INOUT, 32, 65535, 64, 0,}, /* CE7 used only by Host */ - { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, - (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, + { /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, + 8192, 0,}, /* CE8 used only by IPA */ - { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE8 */ 8, PIPEDIR_INOUT, 32, 65535, 112, 0,}, /* CE9 target->host HTT */ - { /* CE9 */ 9, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE9 */ 9, PIPEDIR_OUT, 32, 2048, 8192, 0,}, /* CE10 target->host HTT */ - { /* CE10 */ 10, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE10 */ 10, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, /* Target -> host PKTLOG */ - { /* CE11 */ 11, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE11 */ 11, PIPEDIR_IN, 32, 2048, 48, 0,}, }; static struct CE_attr host_ce_config_wlan_qca8074_pci[] = { diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index c03c2d112575..e713f0deaa9e 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -404,6 +404,29 @@ 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_qca8074[] = { + { 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, }, + { WMI_CONTROL_SVC_WMAC1, PIPEDIR_OUT, 7}, + { WMI_CONTROL_SVC_WMAC1, PIPEDIR_IN, 2}, + { HTC_CTRL_RSVD_SVC, PIPEDIR_OUT, 0, }, + { HTC_CTRL_RSVD_SVC, PIPEDIR_IN, 1, }, + { HTC_RAW_STREAMS_SVC, PIPEDIR_OUT, 0}, + { HTC_RAW_STREAMS_SVC, PIPEDIR_IN, 1 }, + { HTT_DATA_MSG_SVC, PIPEDIR_OUT, 4, }, + { HTT_DATA_MSG_SVC, PIPEDIR_IN, 1, }, + /* (Additions here) */ + { 0, 0, 0, }, +}; + 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, }, @@ -579,6 +602,11 @@ static void hif_select_service_to_pipe_map(struct hif_softc *scn, *sz_tgt_svc_map_to_use = sizeof(target_service_to_ce_map_qca6290); break; + case TARGET_TYPE_QCA8074: + *tgt_svc_map_to_use = target_service_to_ce_map_qca8074; + *sz_tgt_svc_map_to_use = + sizeof(target_service_to_ce_map_qca8074); + break; } } }