Thread (11 messages) 11 messages, 3 authors, 2026-06-05

RE: [PATCH net-next v2 2/4] net: phy: c45: add genphy_c45_config_master_slave()

From: Javen <hidden>
Date: 2026-06-05 03:21:10
Also in: lkml

Hi Javen

On 4.6.2026 09:42, javen wrote:
quoted
From: Javen Xu <redacted>

Add a generic helper to configure forced master/slave mode for Clause
45
PHYs using the 10GBASE-T AN control register.

Signed-off-by: Javen Xu <redacted>
quoted
[...]
quoted
+/**
+ * genphy_c45_config_master_slave - Configure Master/Slave setting
+for
C45 PHYs
+ * @phydev: target phy_device struct
+ *
+ * Description: Configures the Master/Slave manual setting in the
+ * 10GBASE-T control register (MMD 7, Register 0x0020) according to
+ * IEEE 802.3 standards.
+ */
Please document the return value (0 = unchanged, 1 = changed, <0 errno), like
it is done for genphy_c45_an_config_aneg().
quoted
+int genphy_c45_config_master_slave(struct phy_device *phydev) {
+     u16 val = 0;
+
+     switch (phydev->master_slave_set) {
+     case MASTER_SLAVE_CFG_MASTER_FORCE:
+             val = MDIO_AN_10GBT_CTRL_MS_ENABLE |
MDIO_AN_10GBT_CTRL_MS_VALUE;
quoted
+             break;
+     case MASTER_SLAVE_CFG_SLAVE_FORCE:
+             val = MDIO_AN_10GBT_CTRL_MS_ENABLE;
+             break;
+     case MASTER_SLAVE_CFG_UNKNOWN:
+     case MASTER_SLAVE_CFG_MASTER_PREFERRED:
+     case MASTER_SLAVE_CFG_SLAVE_PREFERRED:
+     default:
+             break;
+     }
Per IEEE 802.3 (45.2.7.10.3), 7.32.13 (port type) is a copy of 9.10 /
CTL1000_PREFER_MASTER, like it is done in c22's
genphy_setup_master_slave().

So set it for MASTER_PREFERRED, clear it for SLAVE_PREFERRED and leave
UNKNOWN/UNSUPPORTED untouched (return 0). Use -EOPNOTSUPP only for
default.
Thanks for your review.
I have applied all the suggestions to patch v3.

Thanks,
BRs,
Javen
quoted
[...]
Thanks,
Nicolai
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help