From b0920f481ae5643a257fc32f3b98462626830b03 Mon Sep 17 00:00:00 2001 From: Cunming Liang Date: Thu, 5 Feb 2015 16:45:18 +0800 Subject: [PATCH] ixgbe: fix link issue in loopback mode In loopback mode, it's expected force link up even when there's no cable connect. But in codes, setup_sfp() rewrites the related register. It causes in the case 'multispeed_fiber', it can't link up without cable connect. Signed-off-by: Cunming Liang Acked-by: Patrick Lu --- lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/librte_pmd_ixgbe/ixgbe_ethdev.c b/lib/librte_pmd_ixgbe/ixgbe_ethdev.c index b341dd0c07..d6d408e184 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_ethdev.c +++ b/lib/librte_pmd_ixgbe/ixgbe_ethdev.c @@ -1501,6 +1501,11 @@ ixgbe_dev_start(struct rte_eth_dev *dev) goto error; } + /* Skip link setup if loopback mode is enabled for 82599. */ + if (hw->mac.type == ixgbe_mac_82599EB && + dev->data->dev_conf.lpbk_mode == IXGBE_LPBK_82599_TX_RX) + goto skip_link_setup; + if (ixgbe_is_sfp(hw) && hw->phy.multispeed_fiber) { err = hw->mac.ops.setup_sfp(hw); if (err) @@ -1510,11 +1515,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev) /* Turn on the laser */ ixgbe_enable_tx_laser(hw); - /* Skip link setup if loopback mode is enabled for 82599. */ - if (hw->mac.type == ixgbe_mac_82599EB && - dev->data->dev_conf.lpbk_mode == IXGBE_LPBK_82599_TX_RX) - goto skip_link_setup; - err = ixgbe_check_link(hw, &speed, &link_up, 0); if (err) goto error; -- 2.20.1