dpaa2-eth: configure the cache stashing amount on a queue
authorIoana Ciornei <ioana.ciornei@nxp.com>
Sat, 23 Feb 2019 08:48:55 +0000 (08:48 +0000)
committerLi Yang <leoyang.li@nxp.com>
Tue, 26 Feb 2019 20:53:30 +0000 (14:53 -0600)
Configure the amount of 64 bytes of frame, annotation and context data
that will be cache stashed for a specific frame queue.  Since the frame
context is not used, configure that only 64 bytes of frame data and 64
bytes of annotation will be stashed.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

index c500ea77aaa05014588d7e7b5089539e545e618b..3c03fca83b708ce6ca07d7203bb7b0ca9c4a209a 100644 (file)
@@ -2303,9 +2303,14 @@ static int setup_rx_flow(struct dpaa2_eth_priv *priv,
        queue.destination.type = DPNI_DEST_DPCON;
        queue.destination.priority = 1;
        queue.user_context = (u64)(uintptr_t)fq;
+       queue.flc.stash_control = 1;
+       queue.flc.value &= 0xFFFFFFFFFFFFFFC0;
+       /* 01 01 00 - data, annotation, flow context */
+       queue.flc.value |= 0x14;
        err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
                             DPNI_QUEUE_RX, 0, fq->flowid,
-                            DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
+                            DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST |
+                            DPNI_QUEUE_OPT_FLC,
                             &queue);
        if (err) {
                dev_err(dev, "dpni_set_queue(RX) failed\n");