The DPAA2 driver is not using the DPAA2 frame descriptor
software annotation area. This patch reduces the
PTA length to zero and adjust the RX Buffer Layout
accordingly.

Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h |  2 +-
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c  | 19 ++++++++++++-------
 drivers/net/dpaa2/dpaa2_ethdev.c        | 25 -------------------------
 3 files changed, 13 insertions(+), 33 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h 
b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 41bcf03..a7308ba 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -65,7 +65,7 @@
 
 #define MAX_BPID 256
 #define DPAA2_MBUF_HW_ANNOTATION       64
-#define DPAA2_FD_PTA_SIZE              64
+#define DPAA2_FD_PTA_SIZE              0
 
 #if (DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM
 #error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM"
diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c 
b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
index 3dc60cc..547025d 100644
--- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
+++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
@@ -306,15 +306,20 @@ int dpaa2_remove_flow_dist(
         */
 
        /* ... rx buffer layout ... */
-       tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;
-       tot_size = RTE_ALIGN_CEIL(tot_size,
-                                 DPAA2_PACKET_LAYOUT_ALIGN);
+       tot_size = RTE_PKTMBUF_HEADROOM;
+       tot_size = RTE_ALIGN_CEIL(tot_size, DPAA2_PACKET_LAYOUT_ALIGN);
 
        memset(&layout, 0, sizeof(struct dpni_buffer_layout));
-       layout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM;
-
-       layout.data_head_room =
-               tot_size - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;
+       layout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
+                        DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
+                        DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
+                        DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE;
+
+       layout.pass_frame_status = 1;
+       layout.private_data_size = DPAA2_FD_PTA_SIZE;
+       layout.pass_parser_result = 1;
+       layout.data_head_room = tot_size - DPAA2_FD_PTA_SIZE -
+                               DPAA2_MBUF_HW_ANNOTATION;
        retcode = dpni_set_buffer_layout(dpni, CMD_PRI_LOW, priv->token,
                                         DPNI_QUEUE_RX, &layout);
        if (retcode) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 4576442..f4c73de 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -761,7 +761,6 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
        struct dpaa2_dev_priv *priv = eth_dev->data->dev_private;
        struct dpni_buffer_layout layout;
        int i, ret, hw_id;
-       int tot_size;
 
        PMD_INIT_FUNC_TRACE();
 
@@ -854,30 +853,6 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
                return -ret;
        }
 
-       /* ... rx buffer layout ... */
-       tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;
-       tot_size = RTE_ALIGN_CEIL(tot_size,
-                                 DPAA2_PACKET_LAYOUT_ALIGN);
-
-       memset(&layout, 0, sizeof(struct dpni_buffer_layout));
-       layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
-                               DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
-                               DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
-                               DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE;
-
-       layout.pass_frame_status = 1;
-       layout.data_head_room = tot_size
-               - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;
-       layout.private_data_size = DPAA2_FD_PTA_SIZE;
-       layout.pass_parser_result = 1;
-       PMD_INIT_LOG(DEBUG, "Tot_size = %d, head room = %d, private = %d",
-                    tot_size, layout.data_head_room, layout.private_data_size);
-       ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token,
-                                    DPNI_QUEUE_RX, &layout);
-       if (ret) {
-               PMD_INIT_LOG(ERR, "Err(%d) in setting rx buffer layout", ret);
-               return -1;
-       }
 
        /* ... tx buffer layout ... */
        memset(&layout, 0, sizeof(struct dpni_buffer_layout));
-- 
1.9.1

Reply via email to