From: Rohit Raj <rohit....@nxp.com>

This patch add support to update the duplex value along with
link status and link speed after setting the link UP.

Signed-off-by: Rohit Raj <rohit....@nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 4dc7a82b47..9172097abf 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -1985,7 +1985,7 @@ dpaa2_dev_set_link_up(struct rte_eth_dev *dev)
        if (ret) {
                /* Unable to obtain dpni status; Not continuing */
                DPAA2_PMD_ERR("Interface Link UP failed (%d)", ret);
-               return -EINVAL;
+               return ret;
        }
 
        /* Enable link if not already enabled */
@@ -1993,13 +1993,13 @@ dpaa2_dev_set_link_up(struct rte_eth_dev *dev)
                ret = dpni_enable(dpni, CMD_PRI_LOW, priv->token);
                if (ret) {
                        DPAA2_PMD_ERR("Interface Link UP failed (%d)", ret);
-                       return -EINVAL;
+                       return ret;
                }
        }
        ret = dpni_get_link_state(dpni, CMD_PRI_LOW, priv->token, &state);
        if (ret < 0) {
                DPAA2_PMD_DEBUG("Unable to get link state (%d)", ret);
-               return -1;
+               return ret;
        }
 
        /* changing tx burst function to start enqueues */
@@ -2007,10 +2007,15 @@ dpaa2_dev_set_link_up(struct rte_eth_dev *dev)
        dev->data->dev_link.link_status = state.up;
        dev->data->dev_link.link_speed = state.rate;
 
+       if (state.options & DPNI_LINK_OPT_HALF_DUPLEX)
+               dev->data->dev_link.link_duplex = RTE_ETH_LINK_HALF_DUPLEX;
+       else
+               dev->data->dev_link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+
        if (state.up)
-               DPAA2_PMD_INFO("Port %d Link is Up", dev->data->port_id);
+               DPAA2_PMD_DEBUG("Port %d Link is Up", dev->data->port_id);
        else
-               DPAA2_PMD_INFO("Port %d Link is Down", dev->data->port_id);
+               DPAA2_PMD_DEBUG("Port %d Link is Down", dev->data->port_id);
        return ret;
 }
 
-- 
2.25.1

Reply via email to