[PATCH net-next] net: stmmac: dwc-qos: calibrate tegra with mdio bus idle

Thierry Reding treding at nvidia.com
Wed Apr 23 02:13:34 PDT 2025


On Tue, Apr 22, 2025 at 04:42:30PM +0200, Maxime Chevallier wrote:
> Hello Russell,
> 
> On Tue, 22 Apr 2025 15:24:55 +0100
> "Russell King (Oracle)" <rmk+kernel at armlinux.org.uk> wrote:
> 
> > Thierry states that there are prerequists for Tegra's calibration
> > that should be met before starting calibration - both the RGMII and
> > MDIO interfaces should be idle.
> > 
> > This commit adds the necessary MII bus locking to ensure that the MDIO
> > interface is idle during calibration.
> > 
> > Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
> 
> [...]
> 	
> > -static void tegra_eqos_fix_speed(void *priv, int speed, unsigned int mode)
> > +static void tegra_eqos_fix_speed(void *bsp_priv, int speed, unsigned int mode)
> >  {
> > -	struct tegra_eqos *eqos = priv;
> > +	struct tegra_eqos *eqos = bsp_priv;
> >  	bool needs_calibration = false;
> > +	struct stmmac_priv *priv;
> >  	u32 value;
> >  	int err;
> >  
> > @@ -158,6 +159,11 @@ static void tegra_eqos_fix_speed(void *priv, int speed, unsigned int mode)
> >  	}
> >  
> >  	if (needs_calibration) {
> > +		priv = netdev_priv(dev_get_drvdata(eqos->dev));
> > +
> > +		/* Calibration should be done with the MDIO bus idle */
> > +		mutex_lock(&priv->mii->mdio_lock);
> 
> Can't priv->mii be NULL, if the PHY for that MAC is connected to
> another MDIO bus for instance ?

Looking at the code, priv->mii will either be valid when mdio_bus_data
is non-NULL, or the driver probe will fail. mdio_bus_data depends on the
presence of the "mdio" child node in DT (via plat->mdio_node).

As far as I can tell this is always the case on Tegra devices, so I
don't think we need to worry about this case. If it ever wasn't valid,
I'd probably consider that a bug.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20250423/416d5741/attachment.sig>


More information about the linux-arm-kernel mailing list