1 From a219912e0fec73c346e64ef47013cb2e152f88fc Mon Sep 17 00:00:00 2001
2 From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
3 Date: Tue, 3 Dec 2024 15:31:23 +0000
4 Subject: [PATCH 08/13] net: phy: marvell: implement config_inband() method
6 Implement the config_inband() method for Marvell 88E1112, 88E1111,
7 and Finisar's 88E1111 variant.
9 Reviewed-by: Andrew Lunn <andrew@lunn.ch>
10 Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
11 Link: https://patch.msgid.link/E1tIUrz-006IUO-3r@rmk-PC.armlinux.org.uk
12 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
14 drivers/net/phy/marvell.c | 31 +++++++++++++++++++++++++++++++
15 1 file changed, 31 insertions(+)
17 --- a/drivers/net/phy/marvell.c
18 +++ b/drivers/net/phy/marvell.c
19 @@ -730,6 +730,34 @@ static unsigned int m88e1111_inband_caps
23 +static int m88e1111_config_inband(struct phy_device *phydev, unsigned int modes)
28 + if (phydev->interface != PHY_INTERFACE_MODE_1000BASEX &&
29 + phydev->interface != PHY_INTERFACE_MODE_SGMII)
32 + if (modes == LINK_INBAND_BYPASS)
33 + extsr = MII_M1111_HWCFG_SERIAL_AN_BYPASS;
37 + if (modes == LINK_INBAND_DISABLE)
40 + bmcr = BMCR_ANENABLE;
42 + err = phy_modify(phydev, MII_M1111_PHY_EXT_SR,
43 + MII_M1111_HWCFG_SERIAL_AN_BYPASS, extsr);
47 + return phy_modify_paged(phydev, MII_MARVELL_FIBER_PAGE, MII_BMCR,
48 + BMCR_ANENABLE, bmcr);
51 static int m88e1111_config_aneg(struct phy_device *phydev)
53 int extsr = phy_read(phydev, MII_M1111_PHY_EXT_SR);
54 @@ -3682,6 +3710,7 @@ static struct phy_driver marvell_drivers
55 /* PHY_GBIT_FEATURES */
56 .probe = marvell_probe,
57 .inband_caps = m88e1111_inband_caps,
58 + .config_inband = m88e1111_config_inband,
59 .config_init = m88e1112_config_init,
60 .config_aneg = marvell_config_aneg,
61 .config_intr = marvell_config_intr,
62 @@ -3704,6 +3733,7 @@ static struct phy_driver marvell_drivers
63 .flags = PHY_POLL_CABLE_TEST,
64 .probe = marvell_probe,
65 .inband_caps = m88e1111_inband_caps,
66 + .config_inband = m88e1111_config_inband,
67 .config_init = m88e1111gbe_config_init,
68 .config_aneg = m88e1111_config_aneg,
69 .read_status = marvell_read_status,
70 @@ -3728,6 +3758,7 @@ static struct phy_driver marvell_drivers
71 /* PHY_GBIT_FEATURES */
72 .probe = marvell_probe,
73 .inband_caps = m88e1111_inband_caps,
74 + .config_inband = m88e1111_config_inband,
75 .config_init = m88e1111gbe_config_init,
76 .config_aneg = m88e1111_config_aneg,
77 .read_status = marvell_read_status,