Skip to content

Commit

Permalink
net: atlantic: convert EEE handling to use linkmode bitmaps
Browse files Browse the repository at this point in the history
Convert EEE handling to use linkmode bitmaps. This prepares for
removing the legacy bitmaps from struct ethtool_keee.
No functional change intended.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/c5a61d57-d2b0-427f-93b3-fcf7721165f3@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Heiner Kallweit authored and Jakub Kicinski committed Feb 9, 2024
1 parent 1c96a63 commit 32b8033
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "aq_macsec.h"
#include "aq_main.h"

#include <linux/linkmode.h>
#include <linux/ptp_clock_kernel.h>

static void aq_ethtool_get_regs(struct net_device *ndev,
Expand Down Expand Up @@ -681,20 +682,16 @@ static int aq_ethtool_get_ts_info(struct net_device *ndev,
return 0;
}

static u32 eee_mask_to_ethtool_mask(u32 speed)
static void eee_mask_to_ethtool_mask(unsigned long *mode, u32 speed)
{
u32 rate = 0;

if (speed & AQ_NIC_RATE_EEE_10G)
rate |= SUPPORTED_10000baseT_Full;
linkmode_set_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, mode);

if (speed & AQ_NIC_RATE_EEE_1G)
rate |= SUPPORTED_1000baseT_Full;
linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, mode);

if (speed & AQ_NIC_RATE_EEE_100M)
rate |= SUPPORTED_100baseT_Full;

return rate;
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, mode);
}

static int aq_ethtool_get_eee(struct net_device *ndev, struct ethtool_keee *eee)
Expand All @@ -713,14 +710,14 @@ static int aq_ethtool_get_eee(struct net_device *ndev, struct ethtool_keee *eee)
if (err < 0)
return err;

eee->supported_u32 = eee_mask_to_ethtool_mask(supported_rates);
eee_mask_to_ethtool_mask(eee->supported, supported_rates);

if (aq_nic->aq_nic_cfg.eee_speeds)
eee->advertised_u32 = eee->supported_u32;
linkmode_copy(eee->advertised, eee->supported);

eee->lp_advertised_u32 = eee_mask_to_ethtool_mask(rate);
eee_mask_to_ethtool_mask(eee->lp_advertised, rate);

eee->eee_enabled = !!eee->advertised_u32;
eee->eee_enabled = !linkmode_empty(eee->advertised);

eee->tx_lpi_enabled = eee->eee_enabled;
if ((supported_rates & rate) & AQ_NIC_RATE_EEE_MSK)
Expand Down

0 comments on commit 32b8033

Please sign in to comment.