[v3] net/ixgbe: enable 10Mb/s link setup for x553
Checks
Commit Message
This patch enable 10Mb/s link for ixgbe x553.
This new device has own device id of 0x15E4 and 0x15E5, so
ixgbe PMD driver need to special check when setup link for
these two types of device.
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
v2:
delete test code and change permit link speed
V3:
update git log info
---
drivers/net/ixgbe/ixgbe_ethdev.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Monday, April 1, 2019 2:25 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Stillwell Jr, Paul M <paul.m.stillwell.jr@intel.com>;
> Zhao1, Wei <wei.zhao1@intel.com>
> Subject: [PATCH v3] net/ixgbe: enable 10Mb/s link setup for x553
>
> This patch enable 10Mb/s link for ixgbe x553.
> This new device has own device id of 0x15E4 and 0x15E5, so ixgbe PMD driver
> need to special check when setup link for these two types of device.
>
> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -2701,6 +2701,10 @@ static int eth_ixgbevf_pci_remove(struct rte_pci_device *pci_dev)
allowed_speeds = ETH_LINK_SPEED_100M | ETH_LINK_SPEED_1G |
ETH_LINK_SPEED_2_5G | ETH_LINK_SPEED_5G |
ETH_LINK_SPEED_10G;
+ if (hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T ||
+ hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T_L)
+ allowed_speeds = ETH_LINK_SPEED_10M |
+ ETH_LINK_SPEED_100M | ETH_LINK_SPEED_1G;
break;
default:
allowed_speeds = ETH_LINK_SPEED_100M | ETH_LINK_SPEED_1G |
@@ -2742,6 +2746,8 @@ static int eth_ixgbevf_pci_remove(struct rte_pci_device *pci_dev)
speed |= IXGBE_LINK_SPEED_1GB_FULL;
if (*link_speeds & ETH_LINK_SPEED_100M)
speed |= IXGBE_LINK_SPEED_100_FULL;
+ if (*link_speeds & ETH_LINK_SPEED_10M)
+ speed |= IXGBE_LINK_SPEED_10_FULL;
}
err = ixgbe_setup_link(hw, speed, link_up);
@@ -4061,8 +4067,12 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev,
switch (link_speed) {
default:
case IXGBE_LINK_SPEED_UNKNOWN:
+ if (hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T ||
+ hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T_L)
+ link.link_speed = ETH_SPEED_NUM_10M;
+ else
+ link.link_speed = ETH_SPEED_NUM_100M;
link.link_duplex = ETH_LINK_FULL_DUPLEX;
- link.link_speed = ETH_SPEED_NUM_100M;
break;
case IXGBE_LINK_SPEED_100_FULL: