diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2019-11-17 17:07:09 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2021-02-15 14:01:50 +0000 |
commit | de35ed9cff655f085cbe6c8024cffbcdb16401e6 (patch) | |
tree | e609f322030d5d719a1252ebc2714372a8cd448b | |
parent | 0b288559798994eaa5a8cf477ceba79b9b1e7c5b (diff) |
dpaa2-mac: hacks to allow any interface mode [*not for mainline*]
Allow any supported ethtool link modes to allow flexible SFP testing.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index e5bd70343e0e..747be56a6924 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -78,7 +78,7 @@ static int dpaa2_mac_get_if_mode(struct device_node *node, return err; } -static bool dpaa2_mac_phy_mode_mismatch(struct dpaa2_mac *mac, +static __maybe_unused bool dpaa2_mac_phy_mode_mismatch(struct dpaa2_mac *mac, phy_interface_t interface) { switch (interface) { @@ -111,13 +111,13 @@ 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); +// 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; - } +// 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); @@ -392,6 +392,16 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) memset(&mac->phylink_config, 0, sizeof(mac->phylink_config)); mac->phylink_config.dev = &net_dev->dev; mac->phylink_config.type = PHYLINK_NETDEV; + __set_bit(PHY_INTERFACE_MODE_10GBASER, + mac->phylink_config.supported_interfaces); + __set_bit(PHY_INTERFACE_MODE_2500BASEX, + mac->phylink_config.supported_interfaces); + __set_bit(PHY_INTERFACE_MODE_QSGMII, + mac->phylink_config.supported_interfaces); + __set_bit(PHY_INTERFACE_MODE_SGMII, + mac->phylink_config.supported_interfaces); + __set_bit(PHY_INTERFACE_MODE_1000BASEX, + mac->phylink_config.supported_interfaces); __set_bit(mac->if_mode, mac->phylink_config.supported_interfaces); if (mac->if_mode == PHY_INTERFACE_MODE_SGMII && mac->pcs) |