> -----Original Message----- > From: Luca Boccassi [mailto:bl...@debian.org] > Sent: Tuesday, November 20, 2018 1:08 PM > To: Zhang, Qi Z <qi.z.zh...@intel.com>; dev@dpdk.org > Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Ananyev, Konstantin > <konstantin.anan...@intel.com>; 3ch...@gmail.com; sta...@dpdk.org > Subject: Re: [dpdk-stable] [PATCH v4] net/ixgbe: add LHA ID to x550 code > > On Tue, 2018-11-20 at 19:52 +0000, Zhang, Qi Z wrote: > > > -----Original Message----- > > > From: Luca Boccassi [mailto:bl...@debian.org] > > > Sent: Tuesday, November 20, 2018 3:27 AM > > > To: dev@dpdk.org > > > Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Ananyev, Konstantin > > > <konstantin.anan...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; > > > 3ch...@gmail.com; Luca Boccassi <bl...@debian.org>; sta...@dpdk.org > > > Subject: [PATCH v4] net/ixgbe: add LHA ID to x550 code > > > > > > ixgbe is able to recognize 1G SX and LX id, but it is missing the > > > LHA. > > > Add it, so that it can handle LHA sfp plugin. > > > > > > Fixes: d2e72774e58c ("ixgbe/base: support X550") > > > Cc: sta...@dpdk.org > > > > > > Signed-off-by: Luca Boccassi <bl...@debian.org> > > > > The patch is OK for me, but here is some coding style need to fix. > > > > Reviewed-by: Qi Zhang <qi.z.zh...@intel.com> > > Thanks for the review! > > I intentionally left the checkpatch complaint unfixed as it applies just the > same to > the other existing lines above and below the addition of this patch, so it > makes > more sense for it to be fixed (if desired) separately and for all affected > lines.
Applied to dpdk-next-net-intel. Thanks Qi > > > > --- > > > v4: dropped first patch, no longer necessary in 18.11 > > > > > > drivers/net/ixgbe/base/ixgbe_82599.c | 2 ++ > > > drivers/net/ixgbe/base/ixgbe_phy.c | 13 +++++++++++++ > > > drivers/net/ixgbe/base/ixgbe_phy.h | 1 + > > > drivers/net/ixgbe/base/ixgbe_type.h | 2 ++ > > > drivers/net/ixgbe/base/ixgbe_x550.c | 4 ++++ > > > 5 files changed, 22 insertions(+) > > > > > > diff --git a/drivers/net/ixgbe/base/ixgbe_82599.c > > > b/drivers/net/ixgbe/base/ixgbe_82599.c > > > index 7de753fd3..96bdde62c 100644 > > > --- a/drivers/net/ixgbe/base/ixgbe_82599.c > > > +++ b/drivers/net/ixgbe/base/ixgbe_82599.c > > > @@ -392,6 +392,8 @@ s32 ixgbe_get_link_capabilities_82599(struct > > > ixgbe_hw *hw, > > > /* Check if 1G SFP module. */ > > > if (hw->phy.sfp_type == ixgbe_sfp_type_1g_cu_core0 || > > > hw->phy.sfp_type == ixgbe_sfp_type_1g_cu_core1 || > > > + hw->phy.sfp_type == ixgbe_sfp_type_1g_lha_core0 || > > > + hw->phy.sfp_type == ixgbe_sfp_type_1g_lha_core1 || > > > hw->phy.sfp_type == ixgbe_sfp_type_1g_lx_core0 || > > > hw->phy.sfp_type == ixgbe_sfp_type_1g_lx_core1 || > > > hw->phy.sfp_type == ixgbe_sfp_type_1g_sx_core0 || diff --git > > > a/drivers/net/ixgbe/base/ixgbe_phy.c > > > b/drivers/net/ixgbe/base/ixgbe_phy.c > > > index 6cdd8fbab..dd118f917 100644 > > > --- a/drivers/net/ixgbe/base/ixgbe_phy.c > > > +++ b/drivers/net/ixgbe/base/ixgbe_phy.c > > > @@ -1402,6 +1402,13 @@ s32 ixgbe_identify_sfp_module_generic(struct > > > ixgbe_hw *hw) > > > else > > > hw->phy.sfp_type = > > > ixgbe_sfp_type_1g_ > > > lx_core1; > > > + } else if (comp_codes_1g & > > > IXGBE_SFF_1GBASELHA_CAPABLE) { > > > + if (hw->bus.lan_id == 0) > > > + hw->phy.sfp_type = > > > + ixgbe_sfp_type_1g_ > > > lha_core0; > > > + else > > > + hw->phy.sfp_type = > > > + ixgbe_sfp_type_1g_ > > > lha_core1; > > > } else { > > > hw->phy.sfp_type = > > > ixgbe_sfp_type_unknown; > > > } > > > @@ -1489,6 +1496,8 @@ s32 ixgbe_identify_sfp_module_generic(struct > > > ixgbe_hw *hw) > > > if (comp_codes_10g == 0 && > > > !(hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_cu_core1 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_cu_core0 || > > > + hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core0 || > > > + hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core1 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core0 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core1 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_sx_core0 || @@ > > > -1508,6 +1517,8 @@ s32 ixgbe_identify_sfp_module_generic(struct > > > ixgbe_hw > > > *hw) > > > if (!(enforce_sfp & > > > IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP) && > > > !(hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_cu_core0 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_cu_core1 || > > > + hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core0 || > > > + hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core1 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core0 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core1 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_sx_core0 || @@ > > > -1835,11 +1846,13 @@ s32 ixgbe_get_sfp_init_sequence_offsets(struct > > > ixgbe_hw *hw, > > > */ > > > if (sfp_type == ixgbe_sfp_type_da_act_lmt_core0 || > > > sfp_type == ixgbe_sfp_type_1g_lx_core0 || > > > + sfp_type == ixgbe_sfp_type_1g_lha_core0 || > > > sfp_type == ixgbe_sfp_type_1g_cu_core0 || > > > sfp_type == ixgbe_sfp_type_1g_sx_core0) > > > sfp_type = ixgbe_sfp_type_srlr_core0; > > > else if (sfp_type == ixgbe_sfp_type_da_act_lmt_core1 || > > > sfp_type == ixgbe_sfp_type_1g_lx_core1 || > > > + sfp_type == ixgbe_sfp_type_1g_lha_core1 || > > > sfp_type == ixgbe_sfp_type_1g_cu_core1 || > > > sfp_type == ixgbe_sfp_type_1g_sx_core1) > > > sfp_type = ixgbe_sfp_type_srlr_core1; diff --git > > > a/drivers/net/ixgbe/base/ixgbe_phy.h > > > b/drivers/net/ixgbe/base/ixgbe_phy.h > > > index 132fa542b..f1605f2cc 100644 > > > --- a/drivers/net/ixgbe/base/ixgbe_phy.h > > > +++ b/drivers/net/ixgbe/base/ixgbe_phy.h > > > @@ -41,6 +41,7 @@ > > > #define IXGBE_SFF_1GBASESX_CAPABLE 0x1 > > > #define IXGBE_SFF_1GBASELX_CAPABLE 0x2 > > > #define IXGBE_SFF_1GBASET_CAPABLE 0x8 > > > +#define IXGBE_SFF_1GBASELHA_CAPABLE 0x10 > > > #define IXGBE_SFF_10GBASESR_CAPABLE 0x10 > > > #define IXGBE_SFF_10GBASELR_CAPABLE 0x20 > > > #define IXGBE_SFF_SOFT_RS_SELECT_MASK 0x8 > > > diff --git a/drivers/net/ixgbe/base/ixgbe_type.h > > > b/drivers/net/ixgbe/base/ixgbe_type.h > > > index cee6ba2e0..077b8f01c 100644 > > > --- a/drivers/net/ixgbe/base/ixgbe_type.h > > > +++ b/drivers/net/ixgbe/base/ixgbe_type.h > > > @@ -3724,6 +3724,8 @@ enum ixgbe_sfp_type { > > > ixgbe_sfp_type_1g_sx_core1 = 12, > > > ixgbe_sfp_type_1g_lx_core0 = 13, > > > ixgbe_sfp_type_1g_lx_core1 = 14, > > > + ixgbe_sfp_type_1g_lha_core0 = 15, > > > + ixgbe_sfp_type_1g_lha_core1 = 16, > > > ixgbe_sfp_type_not_present = 0xFFFE, > > > ixgbe_sfp_type_unknown = 0xFFFF > > > }; > > > diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c > > > b/drivers/net/ixgbe/base/ixgbe_x550.c > > > index f7b98af52..a920a146e 100644 > > > --- a/drivers/net/ixgbe/base/ixgbe_x550.c > > > +++ b/drivers/net/ixgbe/base/ixgbe_x550.c > > > @@ -1534,6 +1534,8 @@ STATIC s32 > > > ixgbe_supported_sfp_modules_X550em(struct ixgbe_hw *hw, bool > > > *linear) > > > case ixgbe_sfp_type_1g_sx_core1: > > > case ixgbe_sfp_type_1g_lx_core0: > > > case ixgbe_sfp_type_1g_lx_core1: > > > + case ixgbe_sfp_type_1g_lha_core0: > > > + case ixgbe_sfp_type_1g_lha_core1: > > > *linear = false; > > > break; > > > case ixgbe_sfp_type_unknown: > > > @@ -1874,6 +1876,8 @@ s32 ixgbe_get_link_capabilities_X550em(struct > > > ixgbe_hw *hw, > > > /* Check if 1G SFP module. */ > > > if (hw->phy.sfp_type == ixgbe_sfp_type_1g_sx_core0 > > > || > > > hw->phy.sfp_type == ixgbe_sfp_type_1g_sx_core1 > > > + || hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core0 || > > > + hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lha_core1 > > > || hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core0 || > > > hw->phy.sfp_type == > > > ixgbe_sfp_type_1g_lx_core1) { > > > *speed = IXGBE_LINK_SPEED_1GB_FULL; > > > -- > > > 2.19.1 > > > > > -- > Kind regards, > Luca Boccassi