diff options
author | Pan Jiafei <Jiafei.Pan@freescale.com> | 2014-09-12 11:04:40 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:39:20 (GMT) |
commit | e826c8f48b1e8dfe3c7e35a83c3ddc0697dc3550 (patch) | |
tree | c64a3c48ac42dcacb2b54122246c637fed7fb639 | |
parent | b708c3e89322be2e51cae3f8634c9e98b71ee623 (diff) | |
download | linux-fsl-qoriq-e826c8f48b1e8dfe3c7e35a83c3ddc0697dc3550.tar.xz |
capwap: set higher priority for fqs back to outbound OP
Fqs back to outbound OP must have a higher priority compared
to fqs from core to outbound OP, otherwise the buffer will
be exhausted.
Signed-off-by: Pan Jiafei <Jiafei.Pan@freescale.com>
Change-Id: Ia4de53493d06768f86c617340927e2af4d722011
Reviewed-on: http://git.am.freescale.net:8181/21442
Reviewed-by: Jianhua Xie <jianhua.xie@freescale.com>
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Tested-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Reviewed-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
3 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_domain.c b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_domain.c index 5251820..fa933dc 100644 --- a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_domain.c +++ b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_domain.c @@ -639,7 +639,7 @@ int add_in_tunnel(struct dpaa_capwap_domain *capwap_domain, context_b = capwap_domain->fqs->inbound_sec_to_op_fqs.fqid_base + flow_index; err = capwap_fq_tx_init(&fq[flow_index], channel, context_a, - context_b); + context_b, 3); if (err) goto error; @@ -1043,7 +1043,7 @@ int add_out_tunnel(struct dpaa_capwap_domain *capwap_domain, capwap_domain->fqs->outbound_sec_to_op_fqs.fqid_base + flow_index; err = capwap_fq_tx_init(&fq[flow_index], channel, context_a, - context_b); + context_b, 3); if (err) goto error_dma; diff --git a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.c b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.c index 996c6afb..8c4683a 100644 --- a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.c +++ b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.c @@ -177,7 +177,7 @@ int capwap_fq_rx_init(struct qman_fq *fq, u32 fqid, } int capwap_fq_tx_init(struct qman_fq *fq, u16 channel, - u64 context_a, u32 context_b) + u64 context_a, u32 context_b, u8 wq) { struct qm_mcc_initfq opts; int ret; @@ -197,7 +197,7 @@ int capwap_fq_tx_init(struct qman_fq *fq, u16 channel, if (context_b) opts.we_mask |= QM_INITFQ_WE_CONTEXTB; opts.fqd.dest.channel = channel; - opts.fqd.dest.wq = 3; + opts.fqd.dest.wq = wq; opts.fqd.context_b = context_b; qm_fqd_context_a_set64(&opts.fqd, context_a); @@ -409,7 +409,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) context_b = capwap_domain->fqs->inbound_core_rx_fqs.fqid_base + i; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 3); if (ret) { for (j = 0; j < i; j++) qman_destroy_fq(&q_fq[j], 0); @@ -439,7 +439,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) context_b = capwap_domain->fqs->inbound_core_rx_fqs.fqid_base + i; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 3); if (ret) { for (j = 0; j < i; j++) qman_destroy_fq(&q_fq[j], 0); @@ -478,7 +478,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) #endif context_b = 0; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 3); if (ret) { for (j = CAPWAP_FLOW_COUNT; j < i; j++) qman_destroy_fq(&q_fq[j], 0); @@ -504,7 +504,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) context_b = capwap_domain->fqs->outbound_op_tx_fqs.fqid_base + i + CAPWAP_FLOW_COUNT; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 1); if (ret) { for (j = CAPWAP_FLOW_COUNT / 2; j < i; j++) qman_destroy_fq(&q_fq[j], 0); @@ -536,7 +536,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) context_b = capwap_domain->fqs->outbound_op_tx_fqs.fqid_base + i + CAPWAP_FLOW_COUNT; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 1); if (ret) { for (j = 0; j < i; j++) qman_destroy_fq(&q_fq[j], 0); @@ -561,7 +561,7 @@ int capwap_fq_pre_init(struct dpaa_capwap_domain *capwap_domain) context_a |= (u64)i << (32 + 4); context_b = 0; ret = capwap_fq_tx_init(&q_fq[i], channel, context_a, - context_b); + context_b, 3); if (ret) { for (j = 0; j < i; j++) qman_destroy_fq(&q_fq[j], 0); diff --git a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.h b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.h index 73a3f07..67b1122 100644 --- a/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.h +++ b/drivers/net/ethernet/freescale/dpa/capwap/dpaa_capwap_fq.h @@ -37,7 +37,7 @@ int capwap_fq_rx_init(struct qman_fq *fq, u32 fqid, int capwap_fq_tx_init(struct qman_fq *fq, u16 channel, - u64 context_a, u32 context_b); + u64 context_a, u32 context_b, u8 wq); void teardown_fq(struct qman_fq *fq); |