Re: [PATCH net-next 3/3] net: fec: reset phy on resume after power-up

From: Andrew Lunn
Date: Tue Dec 14 2021 - 13:55:15 EST


On Tue, Dec 14, 2021 at 01:16:38PM +0100, Philippe Schenker wrote:
> Reset the eth PHY after resume in case the power was switched off
> during suspend, this is required by some PHYs if the reset signal
> is controlled by software.
>
> Signed-off-by: Philippe Schenker <philippe.schenker@xxxxxxxxxxx>
>
> ---
>
> drivers/net/ethernet/freescale/fec_main.c | 1 +

Hi Philippe

What i don't particularly like about this is that the MAC driver is
doing it. Meaning if this PHY is used with any other MAC, the same
code needs adding there.

Is there a way we can put this into phylib? Maybe as part of
phy_init_hw()? Humm, actually, thinking aloud:

int phy_init_hw(struct phy_device *phydev)
{
int ret = 0;

/* Deassert the reset signal */
phy_device_reset(phydev, 0);

So maybe in the phy driver, add a suspend handler, which asserts the
reset. This call here will take it out of reset, so applying the reset
you need?

Andrew