[PATCH net-next v2 0/5] net: stmmac: socfpga: fix init ordering and cleanups

Maxime Chevallier maxime.chevallier at bootlin.com
Wed Apr 16 04:19:23 PDT 2025


Hello Russell,

On Wed, 16 Apr 2025 10:31:44 +0100
"Russell King (Oracle)" <linux at armlinux.org.uk> wrote:

> Hi,
> 
> This series fixes the init ordering of the socfpga probe function.
> The standard rule is to do all setup before publishing any device,
> and socfpga violates that. I can see no reason for this, but these
> patches have not been tested on hardware.
> 
> Address this by moving the initialisation of dwmac->stmmac_rst
> along with all the other dwmac initialisers - there's no reason
> for this to be late as plat_dat->stmmac_rst has already been
> populated.
> 
> Next, replace the call to ops->set_phy_mode() with an init function
> socfpga_dwmac_init() which will then be linked in to plat_dat->init.
> 
> Then, add this to plat_dat->init, and switch to stmmac_pltfr_pm_ops
> from the private ops. The runtime suspend/resume socfpga implementations
> are identical to the platform ones, but misses the noirq versions
> which this will add.
> 
> Before we swap the order of socfpga_dwmac_init() and
> stmmac_dvr_probe(), we need to change the way the interface is
> obtained, as that uses driver data and the struct net_device which
> haven't been initialised. Save a pointer to plat_dat in the socfpga
> private data, and use that to get the interface mode. We can then swap
> the order of the init and probe functions.
> 
> Finally, convert to devm_stmmac_pltfr_probe() by moving the call
> to ops->set_phy_mode() into an init function appropriately populating
> plat_dat->init.
> 
> v2: fix oops when calling set_phy_mode() early.
> 
>  .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c    | 79 +++++-----------------
>  1 file changed, 16 insertions(+), 63 deletions(-)

Feel free to CC: me for dwmac-socfpga stuff, I have some HW to test this
on :)

Thanks for this work, it's working fine :)

For the series,

Reviewed-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
Tested-by: Maxime Chevallier <maxime.chevallier at bootlin.com>

Maxime



More information about the linux-arm-kernel mailing list