net/dpaa2: support Rx buffer size
[dpdk.git] / drivers / net / dpaa2 / dpaa2_ethdev.c
index 412f970..0e7ebf4 100644 (file)
@@ -922,9 +922,9 @@ dpaa2_dev_tx_queue_setup(struct rte_eth_dev *dev,
                cong_notif_cfg.units = DPNI_CONGESTION_UNIT_FRAMES;
                cong_notif_cfg.threshold_entry = nb_tx_desc;
                /* Notify that the queue is not congested when the data in
-                * the queue is below this thershold.
+                * the queue is below this thershold.(90% of value)
                 */
-               cong_notif_cfg.threshold_exit = nb_tx_desc - 24;
+               cong_notif_cfg.threshold_exit = (nb_tx_desc * 9) / 10;
                cong_notif_cfg.message_ctx = 0;
                cong_notif_cfg.message_iova =
                                (size_t)DPAA2_VADDR_TO_IOVA(dpaa2_q->cscn);
@@ -2368,12 +2368,18 @@ dpaa2_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
        struct rte_eth_rxq_info *qinfo)
 {
        struct dpaa2_queue *rxq;
+       struct dpaa2_dev_priv *priv = dev->data->dev_private;
+       struct fsl_mc_io *dpni = (struct fsl_mc_io *)dev->process_private;
+       uint16_t max_frame_length;
 
        rxq = (struct dpaa2_queue *)dev->data->rx_queues[queue_id];
 
        qinfo->mp = rxq->mb_pool;
        qinfo->scattered_rx = dev->data->scattered_rx;
        qinfo->nb_desc = rxq->nb_desc;
+       if (dpni_get_max_frame_length(dpni, CMD_PRI_LOW, priv->token,
+                               &max_frame_length) == 0)
+               qinfo->rx_buf_size = max_frame_length;
 
        qinfo->conf.rx_free_thresh = 1;
        qinfo->conf.rx_drop_en = 1;