Message ID | aAE2tKlImhwKySq_@shell.armlinux.org.uk (mailing list archive) |
---|---|
Headers | show |
Series | net: stmmac: socfpga: fix init ordering and cleanups | expand |
Hi Russell, On Thu, 17 Apr 2025 18:13:24 +0100 "Russell King (Oracle)" <linux@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. > v3: fix unused variable warnings in patch 2, add Maxime's r-b and t-b > to all but patch 2. Looks like they are missing :) I re-tested the whole V3 series though and gave a fresh look at your code, so, Tested-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Thanks ! Maxime