Message ID | 20241217-tn9510-v3a-v3-6-4d5ef6f686e0@gmx.net (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: tn40xx: add support for AQR105 based cards | expand |
On Tue, Dec 17, 2024 at 10:07:37PM +0100, Hans-Frieder Vogt via B4 Relay wrote: > From: Hans-Frieder Vogt <hfdevel@gmx.net> > > Prepare the tn40xx driver to load for Tehuti TN9510 cards, which require > bit 3 in the register TN40_REG_MDIO_CMD_STAT to be set. The function of bit > 3 is unclear, but may have something to do with the length of the preamble > in the MDIO communication. If bit 3 is not set, the PHY will not be found > when performing a scan for PHYs. Use the available tn40_mdio_set_speed > function which includes setting bit 3. Just move the function to before the > devm_mdio_register function, which scans the mdio bus for PHYs. > > Signed-off-by: Hans-Frieder Vogt <hfdevel@gmx.net> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
On Tue, 17 Dec 2024 22:07:37 +0100 Hans-Frieder Vogt via B4 Relay <devnull+hfdevel.gmx.net@kernel.org> wrote: > From: Hans-Frieder Vogt <hfdevel@gmx.net> > > Prepare the tn40xx driver to load for Tehuti TN9510 cards, which require > bit 3 in the register TN40_REG_MDIO_CMD_STAT to be set. The function of bit > 3 is unclear, but may have something to do with the length of the preamble > in the MDIO communication. If bit 3 is not set, the PHY will not be found > when performing a scan for PHYs. Use the available tn40_mdio_set_speed > function which includes setting bit 3. Just move the function to before the > devm_mdio_register function, which scans the mdio bus for PHYs. > > Signed-off-by: Hans-Frieder Vogt <hfdevel@gmx.net> > --- > drivers/net/ethernet/tehuti/tn40_mdio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) I confirmed that this also works for TN9310 card with QT2025 PHY. Reviewed-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
diff --git a/drivers/net/ethernet/tehuti/tn40_mdio.c b/drivers/net/ethernet/tehuti/tn40_mdio.c index b8ee553f60d1beadeda828584adfea670f0d4ca8..993458cc49322de3466c604385dca64d4c3b949f 100644 --- a/drivers/net/ethernet/tehuti/tn40_mdio.c +++ b/drivers/net/ethernet/tehuti/tn40_mdio.c @@ -185,13 +185,13 @@ int tn40_mdiobus_init(struct tn40_priv *priv) ret); } + tn40_mdio_set_speed(priv, TN40_MDIO_SPEED_6MHZ); ret = devm_mdiobus_register(&pdev->dev, bus); if (ret) { dev_err(&pdev->dev, "failed to register mdiobus %d %u %u\n", ret, bus->state, MDIOBUS_UNREGISTERED); goto err_swnodes_unregister; } - tn40_mdio_set_speed(priv, TN40_MDIO_SPEED_6MHZ); priv->mdio = bus; return 0;