summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristian Sovaiala <cristian.sovaiala@freescale.com>2013-10-11 09:39:18 (GMT)
committerJ. German Rivera <German.Rivera@freescale.com>2013-10-30 20:51:38 (GMT)
commit5849bd78544ecccc7978a1ce97522fe38e44d15a (patch)
treeca9c70d503dd9a2426d07f7911528e621ded6084
parent8367f3118782210881c1af073d554cd5498107cd (diff)
downloadlinux-fsl-qoriq-5849bd78544ecccc7978a1ce97522fe38e44d15a.tar.xz
dpaa_eth: Update Netpoll to the new NAPI logic
Use the new NAPI logic inside the Netpoll controller callback. Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> Change-Id: I395db60bc93083030c8d20f0038cb0d1dd8cf23a Reviewed-on: http://git.am.freescale.net:8181/5630 Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Ruxandra Ioana Radulescu <ruxandra.radulescu@freescale.com> Reviewed-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-by: Rivera Jose-B46482 <German.Rivera@freescale.com>
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
index dbb9112..11d87bf 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
@@ -552,11 +552,17 @@ static void dpaa_eth_poll_controller(struct net_device *net_dev)
struct dpa_priv_s *priv = netdev_priv(net_dev);
struct dpa_percpu_priv_s *percpu_priv =
__this_cpu_ptr(priv->percpu_priv);
- struct napi_struct napi = percpu_priv->napi;
+ struct qman_portal *p;
+ const struct qman_portal_config *pc;
+ struct dpa_napi_portal *np;
- qman_p_irqsource_remove(percpu_priv->p, QM_PIRQ_DQRI);
- qman_poll_dqrr(napi.weight);
- qman_p_irqsource_add(percpu_priv->p, QM_PIRQ_DQRI);
+ p = (struct qman_portal *)qman_get_affine_portal(smp_processor_id());
+ pc = qman_p_get_portal_config(p);
+ np = &percpu_priv->np[pc->index];
+
+ qman_p_irqsource_remove(np->p, QM_PIRQ_DQRI);
+ qman_p_poll_dqrr(np->p, np->napi.weight);
+ qman_p_irqsource_add(np->p, QM_PIRQ_DQRI);
}
#endif