Skip to content

Commit

Permalink
net: dpaa2-mac: remove interface checks in dpaa2_mac_validate()
Browse files Browse the repository at this point in the history
As phylink checks the interface mode against the supported_interfaces
bitmap, we no longer need to validate the interface mode, nor handle
PHY_INTERFACE_MODE_NA in the validation function. Remove these to
simplify the implementation.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Russell King (Oracle) authored and David S. Miller committed Nov 18, 2021
1 parent 15d0b14 commit 22de481
Showing 1 changed file with 0 additions and 35 deletions.
35 changes: 0 additions & 35 deletions drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
Original file line number Diff line number Diff line change
@@ -90,53 +90,18 @@ static int dpaa2_mac_get_if_mode(struct fwnode_handle *dpmac_node,
return err;
}

static bool dpaa2_mac_phy_mode_mismatch(struct dpaa2_mac *mac,
phy_interface_t interface)
{
switch (interface) {
/* We can switch between SGMII and 1000BASE-X at runtime with
* pcs-lynx
*/
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_1000BASEX:
if (mac->pcs &&
(mac->if_mode == PHY_INTERFACE_MODE_SGMII ||
mac->if_mode == PHY_INTERFACE_MODE_1000BASEX))
return false;
return interface != mac->if_mode;

case PHY_INTERFACE_MODE_10GBASER:
case PHY_INTERFACE_MODE_USXGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_RGMII:
case PHY_INTERFACE_MODE_RGMII_ID:
case PHY_INTERFACE_MODE_RGMII_RXID:
case PHY_INTERFACE_MODE_RGMII_TXID:
return (interface != mac->if_mode);
default:
return true;
}
}

static void dpaa2_mac_validate(struct phylink_config *config,
unsigned long *supported,
struct phylink_link_state *state)
{
struct dpaa2_mac *mac = phylink_to_dpaa2_mac(config);
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };

if (state->interface != PHY_INTERFACE_MODE_NA &&
dpaa2_mac_phy_mode_mismatch(mac, state->interface)) {
goto empty_set;
}

phylink_set_port_modes(mask);
phylink_set(mask, Autoneg);
phylink_set(mask, Pause);
phylink_set(mask, Asym_Pause);

switch (state->interface) {
case PHY_INTERFACE_MODE_NA:
case PHY_INTERFACE_MODE_10GBASER:
case PHY_INTERFACE_MODE_USXGMII:
phylink_set_10g_modes(mask);

0 comments on commit 22de481

Please sign in to comment.