Re: [PATCH] net: phy: microchip_t1: LAN887X: Fix device init issues.
From: Andrew Lunn <andrew@lunn.ch>
Date: 2025-09-26 21:47:06
Also in:
lkml
On Fri, Sep 26, 2025 at 11:24:56PM +0200, Josef Raschen wrote:
Hello Andrew, Thanks for your feedback. On 9/26/25 00:00, Andrew Lunn wrote:quoted
On Thu, Sep 25, 2025 at 10:52:22PM +0200, Josef Raschen wrote:quoted
Currently, for a LAN8870 phy, before link up, a call to ethtool to set master-slave fails with 'operation not supported'. Reason: speed, duplex and master/slave are not properly initialized. This change sets proper initial states for speed and duplex and publishes master-slave states. A default link up for speed 1000, full duplex and slave mode then works without having to call ethtool.Hi Josef What you are missing from the commit message is an explanation why the LAN8870 is special, it needs to do something no other PHY does. Is there something broken with this PHY? Some register not following 802.3? Andrew --- pw-bot: crSpecial about the LAN8870 might be that it is a dual speed T1 phy. As most other T1 pyhs have only one possible configuration the unknown speed configuration was not a problem so far. But here, when calling link up without manually setting the speed before, it seems to pick speed 100 in phy_sanitize_settings(). I assume that this is not the desired behavior?
What speeds does the PHY say it supports? phy_sanitize_settings() should pick the highest speed the PHY supports as the default. So if it is picking 100, it suggests the PHY is not reporting it supports 1000? Or phy_sanitize_settings() is broken for 1000Base-T1? Please try understand why it is picking 100.
The second problem is that ethtool initially does not allow to set master-slave at all. You first have to call ethtool without the master-slave argument, then again with it. This is fixed by reading the master slave configuration from the device which seems to be missing in the .config_init and .config_aneg functions. I took this solution from net/phy/dp83tg720.c.
How does this work with a regular T4 or T2 PHY? Ideally, A T1 should be no different. And ideally, we want a solution for all T1 PHYs, assuming it is not something which is special for this PHY. Andrew