From 6f77410723a432f48941694b27b7dc906a7a7e03 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Tue, 24 Jun 2014 15:41:29 +0100 Subject: [PATCH] ixgbe: rework fix of media type for bypass device This was previously solved in commit 60a70d4e042350ca (fix link status interrupt of bypass device), but this alternative fix reverts the previous one and solves the same issue without modifying the base driver (also named "shared code"). Signed-off-by: Pablo de Lara Acked-by: Konstantin Ananyev Acked-by: Bruce Richardson --- lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c | 3 -- lib/librte_pmd_ixgbe/ixgbe_82599_bypass.c | 34 ++++++++++++++--------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c index 93c4e35351..ed97ad906e 100644 --- a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c +++ b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c @@ -537,9 +537,6 @@ enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw) case IXGBE_DEV_ID_82599_SFP_SF2: case IXGBE_DEV_ID_82599_SFP_SF_QP: case IXGBE_DEV_ID_82599EN_SFP: -#ifdef RTE_NIC_BYPASS - case IXGBE_DEV_ID_82599_BYPASS: -#endif media_type = ixgbe_media_type_fiber; break; case IXGBE_DEV_ID_82599_CX4: diff --git a/lib/librte_pmd_ixgbe/ixgbe_82599_bypass.c b/lib/librte_pmd_ixgbe/ixgbe_82599_bypass.c index 27a5f70b40..0f0000c400 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_82599_bypass.c +++ b/lib/librte_pmd_ixgbe/ixgbe_82599_bypass.c @@ -256,19 +256,6 @@ out: return status; } -/* - * Wrapper around ND functions to support BYPASS nic. - */ -s32 -ixgbe_bypass_init_shared_code(struct ixgbe_hw *hw) -{ - if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) { - hw->mac.type = ixgbe_mac_82599EB; - } - - return (ixgbe_init_shared_code(hw)); -} - static enum ixgbe_media_type ixgbe_bypass_get_media_type(struct ixgbe_hw *hw) { @@ -284,6 +271,27 @@ ixgbe_bypass_get_media_type(struct ixgbe_hw *hw) return (media_type); } +/* + * Wrapper around shared code (base driver) to support BYPASS nic. + */ +s32 +ixgbe_bypass_init_shared_code(struct ixgbe_hw *hw) +{ + s32 ret_val; + + if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) { + hw->mac.type = ixgbe_mac_82599EB; + } + + ret_val = ixgbe_init_shared_code(hw); + if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) { + hw->mac.ops.get_media_type = &ixgbe_bypass_get_media_type; + ixgbe_init_mac_link_ops_82599(hw); + } + + return ret_val; +} + s32 ixgbe_bypass_init_hw(struct ixgbe_hw *hw) { -- 2.20.1