Message ID | 20241017015026.255224-1-paul.davey@alliedtelesis.co.nz (mailing list archive) |
---|---|
State | Accepted |
Commit | c797cb9c09882195d58989a40cc7d42c9c033a3b |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: phy: marvell: Add mdix status reporting | expand |
On Thu, Oct 17, 2024 at 02:50:25PM +1300, Paul Davey wrote: > Report MDI-X resolved state after link up. > > Tested on Linkstreet 88E6193X internal PHYs. > > Signed-off-by: Paul Davey <paul.davey@alliedtelesis.co.nz> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
Hello: This patch was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Thu, 17 Oct 2024 14:50:25 +1300 you wrote: > Report MDI-X resolved state after link up. > > Tested on Linkstreet 88E6193X internal PHYs. > > Signed-off-by: Paul Davey <paul.davey@alliedtelesis.co.nz> > --- > drivers/net/phy/marvell.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) Here is the summary with links: - [net-next] net: phy: marvell: Add mdix status reporting https://git.kernel.org/netdev/net-next/c/c797cb9c0988 You are awesome, thank you!
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index 9964bf3dea2f..28aec37acd2c 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -176,6 +176,7 @@ #define MII_M1011_PHY_STATUS_FULLDUPLEX 0x2000 #define MII_M1011_PHY_STATUS_RESOLVED 0x0800 #define MII_M1011_PHY_STATUS_LINK 0x0400 +#define MII_M1011_PHY_STATUS_MDIX BIT(6) #define MII_88E3016_PHY_SPEC_CTRL 0x10 #define MII_88E3016_DISABLE_SCRAMBLER 0x0200 @@ -1722,6 +1723,19 @@ static int marvell_read_status_page(struct phy_device *phydev, int page) phydev->duplex = DUPLEX_UNKNOWN; phydev->port = fiber ? PORT_FIBRE : PORT_TP; + if (fiber) { + phydev->mdix = ETH_TP_MDI_INVALID; + } else { + /* The MDI-X state is set regardless of Autoneg being enabled + * and reflects forced MDI-X state as well as auto resolution + */ + if (status & MII_M1011_PHY_STATUS_RESOLVED) + phydev->mdix = status & MII_M1011_PHY_STATUS_MDIX ? + ETH_TP_MDI_X : ETH_TP_MDI; + else + phydev->mdix = ETH_TP_MDI_INVALID; + } + if (phydev->autoneg == AUTONEG_ENABLE) err = marvell_read_status_page_an(phydev, fiber, status); else
Report MDI-X resolved state after link up. Tested on Linkstreet 88E6193X internal PHYs. Signed-off-by: Paul Davey <paul.davey@alliedtelesis.co.nz> --- drivers/net/phy/marvell.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)