Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

bnx2x: convert EEE handling to use linkmode bitmaps

Convert EEE handling to use linkmode bitmaps. This prepares for
removing the legacy bitmaps from struct ethtool_keee.
No functional change intended.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/948562fb-c5d8-4912-8b88-bec56238732a@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Heiner Kallweit and committed by
Jakub Kicinski
1c96a63a 4c49b682

+21 -23
+21 -23
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
··· 2081 2081 "Storage only interface" 2082 2082 }; 2083 2083 2084 - static u32 bnx2x_eee_to_adv(u32 eee_adv) 2084 + static void bnx2x_eee_to_linkmode(unsigned long *mode, u32 eee_adv) 2085 2085 { 2086 - u32 modes = 0; 2087 - 2088 2086 if (eee_adv & SHMEM_EEE_100M_ADV) 2089 - modes |= ADVERTISED_100baseT_Full; 2087 + linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, mode); 2090 2088 if (eee_adv & SHMEM_EEE_1G_ADV) 2091 - modes |= ADVERTISED_1000baseT_Full; 2089 + linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, mode); 2092 2090 if (eee_adv & SHMEM_EEE_10G_ADV) 2093 - modes |= ADVERTISED_10000baseT_Full; 2094 - 2095 - return modes; 2091 + linkmode_set_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, mode); 2096 2092 } 2097 2093 2098 - static u32 bnx2x_adv_to_eee(u32 modes, u32 shift) 2094 + static u32 bnx2x_linkmode_to_eee(const unsigned long *mode, u32 shift) 2099 2095 { 2100 2096 u32 eee_adv = 0; 2101 - if (modes & ADVERTISED_100baseT_Full) 2097 + 2098 + if (linkmode_test_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, mode)) 2102 2099 eee_adv |= SHMEM_EEE_100M_ADV; 2103 - if (modes & ADVERTISED_1000baseT_Full) 2100 + if (linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, mode)) 2104 2101 eee_adv |= SHMEM_EEE_1G_ADV; 2105 - if (modes & ADVERTISED_10000baseT_Full) 2102 + if (linkmode_test_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, mode)) 2106 2103 eee_adv |= SHMEM_EEE_10G_ADV; 2107 2104 2108 2105 return eee_adv << shift; ··· 2117 2120 2118 2121 eee_cfg = bp->link_vars.eee_status; 2119 2122 2120 - edata->supported_u32 = 2121 - bnx2x_eee_to_adv((eee_cfg & SHMEM_EEE_SUPPORTED_MASK) >> 2122 - SHMEM_EEE_SUPPORTED_SHIFT); 2123 + bnx2x_eee_to_linkmode(edata->supported, 2124 + (eee_cfg & SHMEM_EEE_SUPPORTED_MASK) >> 2125 + SHMEM_EEE_SUPPORTED_SHIFT); 2123 2126 2124 - edata->advertised_u32 = 2125 - bnx2x_eee_to_adv((eee_cfg & SHMEM_EEE_ADV_STATUS_MASK) >> 2126 - SHMEM_EEE_ADV_STATUS_SHIFT); 2127 - edata->lp_advertised_u32 = 2128 - bnx2x_eee_to_adv((eee_cfg & SHMEM_EEE_LP_ADV_STATUS_MASK) >> 2129 - SHMEM_EEE_LP_ADV_STATUS_SHIFT); 2127 + bnx2x_eee_to_linkmode(edata->advertised, 2128 + (eee_cfg & SHMEM_EEE_ADV_STATUS_MASK) >> 2129 + SHMEM_EEE_ADV_STATUS_SHIFT); 2130 + 2131 + bnx2x_eee_to_linkmode(edata->lp_advertised, 2132 + (eee_cfg & SHMEM_EEE_LP_ADV_STATUS_MASK) >> 2133 + SHMEM_EEE_LP_ADV_STATUS_SHIFT); 2130 2134 2131 2135 /* SHMEM value is in 16u units --> Convert to 1u units. */ 2132 2136 edata->tx_lpi_timer = (eee_cfg & SHMEM_EEE_TIMER_MASK) << 4; ··· 2160 2162 return -EOPNOTSUPP; 2161 2163 } 2162 2164 2163 - advertised = bnx2x_adv_to_eee(edata->advertised_u32, 2164 - SHMEM_EEE_ADV_STATUS_SHIFT); 2165 + advertised = bnx2x_linkmode_to_eee(edata->advertised, 2166 + SHMEM_EEE_ADV_STATUS_SHIFT); 2165 2167 if ((advertised != (eee_cfg & SHMEM_EEE_ADV_STATUS_MASK))) { 2166 2168 DP(BNX2X_MSG_ETHTOOL, 2167 2169 "Direct manipulation of EEE advertisement is not supported\n");