mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-10 08:44:39 +01:00
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.117 All patches auto-refreshed. Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20927 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
63 lines
2.3 KiB
Diff
63 lines
2.3 KiB
Diff
From 1c86828dff88e28b8ade6bddeee0163a023faf91 Mon Sep 17 00:00:00 2001
|
|
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
|
|
Date: Tue, 3 Dec 2024 15:31:12 +0000
|
|
Subject: [PATCH 06/13] net: phy: marvell: implement phy_inband_caps() method
|
|
|
|
Provide an implementation for phy_inband_caps() for Marvell PHYs used
|
|
on SFP modules, so that phylink knows the PHYs capabilities.
|
|
|
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Link: https://patch.msgid.link/E1tIUro-006IUC-Rq@rmk-PC.armlinux.org.uk
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/phy/marvell.c | 17 +++++++++++++++++
|
|
1 file changed, 17 insertions(+)
|
|
|
|
--- a/drivers/net/phy/marvell.c
|
|
+++ b/drivers/net/phy/marvell.c
|
|
@@ -673,6 +673,20 @@ static int marvell_config_aneg_fiber(str
|
|
return genphy_check_and_restart_aneg(phydev, changed);
|
|
}
|
|
|
|
+static unsigned int m88e1111_inband_caps(struct phy_device *phydev,
|
|
+ phy_interface_t interface)
|
|
+{
|
|
+ /* In 1000base-X and SGMII modes, the inband mode can be changed
|
|
+ * through the Fibre page BMCR ANENABLE bit.
|
|
+ */
|
|
+ if (interface == PHY_INTERFACE_MODE_1000BASEX ||
|
|
+ interface == PHY_INTERFACE_MODE_SGMII)
|
|
+ return LINK_INBAND_DISABLE | LINK_INBAND_ENABLE |
|
|
+ LINK_INBAND_BYPASS;
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
static int m88e1111_config_aneg(struct phy_device *phydev)
|
|
{
|
|
int extsr = phy_read(phydev, MII_M1111_PHY_EXT_SR);
|
|
@@ -3329,6 +3343,7 @@ static struct phy_driver marvell_drivers
|
|
.name = "Marvell 88E1112",
|
|
/* PHY_GBIT_FEATURES */
|
|
.probe = marvell_probe,
|
|
+ .inband_caps = m88e1111_inband_caps,
|
|
.config_init = m88e1112_config_init,
|
|
.config_aneg = marvell_config_aneg,
|
|
.config_intr = marvell_config_intr,
|
|
@@ -3349,6 +3364,7 @@ static struct phy_driver marvell_drivers
|
|
.name = "Marvell 88E1111",
|
|
/* PHY_GBIT_FEATURES */
|
|
.probe = marvell_probe,
|
|
+ .inband_caps = m88e1111_inband_caps,
|
|
.config_init = m88e1111gbe_config_init,
|
|
.config_aneg = m88e1111_config_aneg,
|
|
.read_status = marvell_read_status,
|
|
@@ -3370,6 +3386,7 @@ static struct phy_driver marvell_drivers
|
|
.name = "Marvell 88E1111 (Finisar)",
|
|
/* PHY_GBIT_FEATURES */
|
|
.probe = marvell_probe,
|
|
+ .inband_caps = m88e1111_inband_caps,
|
|
.config_init = m88e1111gbe_config_init,
|
|
.config_aneg = m88e1111_config_aneg,
|
|
.read_status = marvell_read_status,
|