Hi Michael, On Fri, 9 May 2025 at 14:29, Michael Dege <michael.dege@xxxxxxxxxxx> wrote: > There is a slight difference in SerDes hardware behavior between each > version after resetting. This step is to ensure the stable condition of > initialization, especially for R-Car S4 v1.1 . > > Signed-off-by: Michael Dege <michael.dege@xxxxxxxxxxx> Thanks for your patch! > --- a/drivers/phy/renesas/renesas-ether-serdes.c > +++ b/drivers/phy/renesas/renesas-ether-serdes.c > @@ -265,7 +265,12 @@ static int renesas_eth_serdes_hw_init(struct renesas_eth_serdes_channel *channel > > reset_control_reset(dd->reset); > > - usleep_range(1000, 2000); > + /* There is a slight difference in SerDes hardware behavior between > + * each version after resetting. This step is to ensure the stable > + * condition of initialization, especially for R-Car S4 v1.1. > + */ > + mdelay(1); > + iowrite32(0, dd->addr + RENESAS_ETH_SERDES_LOCAL_OFFSET); Which of these two changes fixes the issue? I suspect/hope the usleep_range() can stay, as sleeping is preferred over busy-waiting. > > ret = renesas_eth_serdes_common_init_ram(dd); > if (ret) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds