Re: [PATCH] net: thunderx: start phy before starting autonegotiation

From: Andrew Lunn
Date: Wed Dec 04 2019 - 10:42:33 EST


On Wed, Dec 04, 2019 at 04:26:51PM +0100, Mian Yousaf Kaukab wrote:
> Since "2b3e88ea6528 net: phy: improve phy state checking"
> phy_start_aneg() expects phy state to be >= PHY_UP. Call phy_start()
> before calling phy_start_aneg() during probe so that autonegotiation
> is initiated.
>
> Network fails without this patch on Octeon TX.
>
> Signed-off-by: Mian Yousaf Kaukab <ykaukab@xxxxxxx>
> ---
> drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> index 1e09fdb63c4f..504644257aff 100644
> --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
> @@ -1115,6 +1115,7 @@ static int bgx_lmac_enable(struct bgx *bgx, u8 lmacid)
> phy_interface_mode(lmac->lmac_type)))
> return -ENODEV;
>
> + phy_start(lmac->phydev);
> phy_start_aneg(lmac->phydev);
> return 0;

phy_start() will start aneg, if aneg is configured. So you should be
able to remove the call to phy_start_aneg().

Andrew