From: Cunming Liang Date: Thu, 5 Feb 2015 08:45:18 +0000 (+0800) Subject: ixgbe: fix link issue in loopback mode X-Git-Tag: spdx-start~9766 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b0920f481ae5643a257fc32f3b98462626830b03;p=dpdk.git 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 --- 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;