Thread (167 messages) 167 messages, 19 authors, 2016-04-06

Re: [PATCH v13 6/8] ethdev: redesign link speed config

From: Marc <hidden>
Date: 2016-03-30 07:59:50

On 29 March 2016 at 08:18, Xing, Beilei [off-list ref] wrote:
quoted
-----Original Message-----
From: Marc Sune [mailto:marcdevel@gmail.com]
Sent: Saturday, March 26, 2016 9:27 AM
To: Thomas Monjalon <redacted>; Xu, Qian Q
[off-list ref]; Xing, Beilei [off-list ref];
dev@dpdk.org;
quoted
Ananyev, Konstantin [off-list ref]; Lu, Wenzhuo
[off-list ref]; Richardson, Bruce [off-list ref];
Glynn, Michael J [off-list ref]
Cc: Marc Sune <redacted>
Subject: [PATCH v13 6/8] ethdev: redesign link speed config
quoted
a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index a98e8eb..6cc2da0 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2193,32 +2195,21 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
      if (err)
              goto error;

+     speed = 0x0;
+     if (*link_speeds & ETH_LINK_SPEED_10G)
+             speed |= IXGBE_LINK_SPEED_10GB_FULL;
+     if (*link_speeds & ETH_LINK_SPEED_1G)
+             speed |= IXGBE_LINK_SPEED_1GB_FULL;
+     if (*link_speeds & ETH_LINK_SPEED_100M)
+             speed |= IXGBE_LINK_SPEED_100_FULL;
+
      err = ixgbe_setup_link(hw, speed, link_up);
      if (err)
              goto error;
Hi Marc,
According to ixgbe HW, link speed shouldn't be 0 when setting up,
Otherwise device will start fail. So we need to set speed if link_speed
is ETH_LINK_SPEED_AUTONEG. Following code is for reference.

        speed = 0x0;
        if ((*link_speeds & 0x1) == ETH_LINK_SPEED_AUTONEG)
                speed = (hw->mac.type != ixgbe_mac_82598EB) ?
                        IXGBE_LINK_SPEED_82599_AUTONEG :
                        IXGBE_LINK_SPEED_82598_AUTONEG;
        else {
                if (*link_speeds & ETH_LINK_SPEED_10G)
                        speed |= IXGBE_LINK_SPEED_10GB_FULL;
                if (*link_speeds & ETH_LINK_SPEED_1G)
                        speed |= IXGBE_LINK_SPEED_1GB_FULL;
                if (*link_speeds & ETH_LINK_SPEED_100M)
                        speed |= IXGBE_LINK_SPEED_100_FULL;
        }
Beilei,

OK, thanks.

Can you/someone please try v13 + this modification, so that we make sure
this is the final version for ixgbe?

Regards
Marc

Beilei Xing
Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help