net: gianfar: simplify init_phy()
Use phy_set_max_speed() to simplify init_phy(). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/b863dcf7-31e8-45a1-a284-7075da958ff0@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
44f79b23a4
commit
6a0ca73e51
@@ -1647,20 +1647,11 @@ static void gfar_configure_serdes(struct net_device *dev)
|
||||
*/
|
||||
static int init_phy(struct net_device *dev)
|
||||
{
|
||||
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
|
||||
struct gfar_private *priv = netdev_priv(dev);
|
||||
phy_interface_t interface = priv->interface;
|
||||
struct phy_device *phydev;
|
||||
struct ethtool_keee edata;
|
||||
|
||||
linkmode_set_bit_array(phy_10_100_features_array,
|
||||
ARRAY_SIZE(phy_10_100_features_array),
|
||||
mask);
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, mask);
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_MII_BIT, mask);
|
||||
if (priv->device_flags & FSL_GIANFAR_DEV_HAS_GIGABIT)
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, mask);
|
||||
|
||||
priv->oldlink = 0;
|
||||
priv->oldspeed = 0;
|
||||
priv->oldduplex = -1;
|
||||
@@ -1675,9 +1666,8 @@ static int init_phy(struct net_device *dev)
|
||||
if (interface == PHY_INTERFACE_MODE_SGMII)
|
||||
gfar_configure_serdes(dev);
|
||||
|
||||
/* Remove any features not supported by the controller */
|
||||
linkmode_and(phydev->supported, phydev->supported, mask);
|
||||
linkmode_copy(phydev->advertising, phydev->supported);
|
||||
if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_GIGABIT))
|
||||
phy_set_max_speed(phydev, SPEED_100);
|
||||
|
||||
/* Add support for flow control */
|
||||
phy_support_asym_pause(phydev);
|
||||
|
||||
Reference in New Issue
Block a user