[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190222213953.GN5894@lunn.ch>
Date: Fri, 22 Feb 2019 22:39:53 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Parshuram Thombare <pthombar@...ence.com>
Cc: nicolas.ferre@...rochip.com, davem@...emloft.net,
netdev@...r.kernel.org, f.fainelli@...il.com, hkallweit1@...il.com,
linux-kernel@...r.kernel.org, rafalc@...ence.com,
piotrs@...ence.com, jank@...ence.com
Subject: Re: [PATCH 1/3] net: ethernet: add support for PCS and 2.5G speed
> /* mask with MAC supported features */
> - if (macb_is_gem(bp) && bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE)
> - phy_set_max_speed(phydev, SPEED_1000);
> - else
> - phy_set_max_speed(phydev, SPEED_100);
> + if (macb_is_gem(bp)) {
> + linkmode_copy(phydev->supported, PHY_GBIT_FEATURES);
> + if (bp->caps & MACB_CAPS_TWO_PT_FIVE_GIG_SPEED)
> + linkmode_set_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT,
> + phydev->supported);
> + } else {
> + linkmode_copy(phydev->supported, PHY_BASIC_FEATURES);
> + }
> +
> + linkmode_copy(phydev->advertising, phydev->supported);
This is not correct. Just because the MAC can do 2.5G does not mean
the PHY can. So you should not be adding links modes. Also, somebody
might be using a PHY that can do 2.5G with a MAC which can only do 1G.
The correct thing to do is call phy_set_max_speed() with the maximum
speed the MAC can do.
Andrew
Powered by blists - more mailing lists