On Wed, Jan 20, 2021 at 3:21 AM Danielle Ratson <daniel...@nvidia.com> wrote:
> -#define __DEFINE_LINK_MODE_PARAMS(_speed, _type, _duplex) \ > +#define __DEFINE_LINK_MODE_PARAMS(_speed, _type, _lanes, _duplex) \ > [ETHTOOL_LINK_MODE(_speed, _type, _duplex)] = { \ > .speed = SPEED_ ## _speed, \ > + .lanes = _lanes, \ > .duplex = __DUPLEX_ ## _duplex \ > } What about: #define __DECLARE_LINK_MODE_LANES(_type, _lanes) \ static const u32 __LINK_MODE_LANES_ ## _type = _lanes; #define __DECLARE_LINK_MODE_LANES_ALL(_type) \ __DECLARE_LINK_MODE_LANES(_type, 1) \ __DECLARE_LINK_MODE_LANES(_type ## 2, 2) \ __DECLARE_LINK_MODE_LANES(_type ## 4, 4) \ __DECLARE_LINK_MODE_LANES(_type ## 8, 8) __DECLARE_LINK_MODE_LANES_ALL(CR) __DECLARE_LINK_MODE_LANES_ALL(DR) __DECLARE_LINK_MODE_LANES_ALL(ER) __DECLARE_LINK_MODE_LANES_ALL(KR) __DECLARE_LINK_MODE_LANES(KX, 1) __DECLARE_LINK_MODE_LANES(KX4, 4) __DECLARE_LINK_MODE_LANES_ALL(LR) __DECLARE_LINK_MODE_LANES(LR_ER_FR, 1) __DECLARE_LINK_MODE_LANES(LR2_ER2_FR2, 2) __DECLARE_LINK_MODE_LANES(LR4_ER4_FR4, 4) __DECLARE_LINK_MODE_LANES(LR8_ER8_FR8, 8) __DECLARE_LINK_MODE_LANES(LRM, 1) __DECLARE_LINK_MODE_LANES(MLD2, 2); __DECLARE_LINK_MODE_LANES_ALL(SR); __DECLARE_LINK_MODE_LANES(T, 1) __DECLARE_LINK_MODE_LANES(X, 1) #define __DEFINE_LINK_MODE_PARAMS(_speed, _type, _duplex) [ETHTOOL_LINK_MODE(_speed, _type, _duplex)] = { \ .speed = SPEED_ ## _speed, \ .lanes = __LINK_MODE_LANES ## _type, \ instead of specifying lanes for each link mode defined below? Regards, Edwin Peer > static const struct link_mode_info link_mode_params[] = { > - __DEFINE_LINK_MODE_PARAMS(10, T, Half), > - __DEFINE_LINK_MODE_PARAMS(10, T, Full), > - __DEFINE_LINK_MODE_PARAMS(100, T, Half), > - __DEFINE_LINK_MODE_PARAMS(100, T, Full), > - __DEFINE_LINK_MODE_PARAMS(1000, T, Half), > - __DEFINE_LINK_MODE_PARAMS(1000, T, Full), > + __DEFINE_LINK_MODE_PARAMS(10, T, 1, Half), > + __DEFINE_LINK_MODE_PARAMS(10, T, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100, T, 1, Half), > + __DEFINE_LINK_MODE_PARAMS(100, T, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(1000, T, 1, Half), > + __DEFINE_LINK_MODE_PARAMS(1000, T, 1, Full), > __DEFINE_SPECIAL_MODE_PARAMS(Autoneg), > __DEFINE_SPECIAL_MODE_PARAMS(TP), > __DEFINE_SPECIAL_MODE_PARAMS(AUI), > __DEFINE_SPECIAL_MODE_PARAMS(MII), > __DEFINE_SPECIAL_MODE_PARAMS(FIBRE), > __DEFINE_SPECIAL_MODE_PARAMS(BNC), > - __DEFINE_LINK_MODE_PARAMS(10000, T, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, T, 1, Full), > __DEFINE_SPECIAL_MODE_PARAMS(Pause), > __DEFINE_SPECIAL_MODE_PARAMS(Asym_Pause), > - __DEFINE_LINK_MODE_PARAMS(2500, X, Full), > + __DEFINE_LINK_MODE_PARAMS(2500, X, 1, Full), > __DEFINE_SPECIAL_MODE_PARAMS(Backplane), > - __DEFINE_LINK_MODE_PARAMS(1000, KX, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, KX4, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, KR, Full), > + __DEFINE_LINK_MODE_PARAMS(1000, KX, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, KX4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, KR, 1, Full), > [ETHTOOL_LINK_MODE_10000baseR_FEC_BIT] = { > .speed = SPEED_10000, > .duplex = DUPLEX_FULL, > }, > - __DEFINE_LINK_MODE_PARAMS(20000, MLD2, Full), > - __DEFINE_LINK_MODE_PARAMS(20000, KR2, Full), > - __DEFINE_LINK_MODE_PARAMS(40000, KR4, Full), > - __DEFINE_LINK_MODE_PARAMS(40000, CR4, Full), > - __DEFINE_LINK_MODE_PARAMS(40000, SR4, Full), > - __DEFINE_LINK_MODE_PARAMS(40000, LR4, Full), > - __DEFINE_LINK_MODE_PARAMS(56000, KR4, Full), > - __DEFINE_LINK_MODE_PARAMS(56000, CR4, Full), > - __DEFINE_LINK_MODE_PARAMS(56000, SR4, Full), > - __DEFINE_LINK_MODE_PARAMS(56000, LR4, Full), > - __DEFINE_LINK_MODE_PARAMS(25000, CR, Full), > - __DEFINE_LINK_MODE_PARAMS(25000, KR, Full), > - __DEFINE_LINK_MODE_PARAMS(25000, SR, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, CR2, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, KR2, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, KR4, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, SR4, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, CR4, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, LR4_ER4, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, SR2, Full), > - __DEFINE_LINK_MODE_PARAMS(1000, X, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, CR, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, SR, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, LR, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, LRM, Full), > - __DEFINE_LINK_MODE_PARAMS(10000, ER, Full), > - __DEFINE_LINK_MODE_PARAMS(2500, T, Full), > - __DEFINE_LINK_MODE_PARAMS(5000, T, Full), > + __DEFINE_LINK_MODE_PARAMS(20000, MLD2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(20000, KR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(40000, KR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(40000, CR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(40000, SR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(40000, LR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(56000, KR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(56000, CR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(56000, SR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(56000, LR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(25000, CR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(25000, KR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(25000, SR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, CR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, KR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, KR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, SR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, CR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, LR4_ER4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, SR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(1000, X, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, CR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, SR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, LR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, LRM, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(10000, ER, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(2500, T, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(5000, T, 1, Full), > __DEFINE_SPECIAL_MODE_PARAMS(FEC_NONE), > __DEFINE_SPECIAL_MODE_PARAMS(FEC_RS), > __DEFINE_SPECIAL_MODE_PARAMS(FEC_BASER), > - __DEFINE_LINK_MODE_PARAMS(50000, KR, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, SR, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, CR, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, LR_ER_FR, Full), > - __DEFINE_LINK_MODE_PARAMS(50000, DR, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, KR2, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, SR2, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, CR2, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, LR2_ER2_FR2, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, DR2, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, KR4, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, SR4, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, LR4_ER4_FR4, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, DR4, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, CR4, Full), > - __DEFINE_LINK_MODE_PARAMS(100, T1, Full), > - __DEFINE_LINK_MODE_PARAMS(1000, T1, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, KR8, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, SR8, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, LR8_ER8_FR8, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, DR8, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, CR8, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, KR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, SR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, CR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, LR_ER_FR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(50000, DR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, KR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, SR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, CR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, LR2_ER2_FR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, DR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, KR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, SR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, LR4_ER4_FR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, DR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, CR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(100, T1, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(1000, T1, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, KR8, 8, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, SR8, 8, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, LR8_ER8_FR8, 8, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, DR8, 8, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, CR8, 8, Full), > __DEFINE_SPECIAL_MODE_PARAMS(FEC_LLRS), > - __DEFINE_LINK_MODE_PARAMS(100000, KR, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, SR, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, LR_ER_FR, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, DR, Full), > - __DEFINE_LINK_MODE_PARAMS(100000, CR, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, KR2, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, SR2, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, LR2_ER2_FR2, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, DR2, Full), > - __DEFINE_LINK_MODE_PARAMS(200000, CR2, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, KR4, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, SR4, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, LR4_ER4_FR4, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, DR4, Full), > - __DEFINE_LINK_MODE_PARAMS(400000, CR4, Full), > - __DEFINE_LINK_MODE_PARAMS(100, FX, Half), > - __DEFINE_LINK_MODE_PARAMS(100, FX, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, KR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, SR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, LR_ER_FR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, DR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(100000, CR, 1, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, KR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, SR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, LR2_ER2_FR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, DR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(200000, CR2, 2, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, KR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, SR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, LR4_ER4_FR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, DR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(400000, CR4, 4, Full), > + __DEFINE_LINK_MODE_PARAMS(100, FX, 1, Half), > + __DEFINE_LINK_MODE_PARAMS(100, FX, 1, Full), > };
smime.p7s
Description: S/MIME Cryptographic Signature