Skip to content

Commit bd4d08d

Browse files
committed
Merge branch 'net-dsa-b53-SGMII-modes-fixes'
Florian Fainelli says: ==================== net: dsa: b53: SGMII modes fixes Here are two additional fixes that are required in order for SGMII to work correctly. This was discovered with using a copper SFP which would make us use SGMII mode, we would actually leave the HW configured in its default mode: Fiber. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2 parents e24cf6b + 55a4d2e commit bd4d08d

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

drivers/net/dsa/b53/b53_common.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,8 +1172,9 @@ int b53_phylink_mac_link_state(struct dsa_switch *ds, int port,
11721172
struct b53_device *dev = ds->priv;
11731173
int ret = -EOPNOTSUPP;
11741174

1175-
if (phy_interface_mode_is_8023z(state->interface) &&
1176-
dev->ops->serdes_link_state)
1175+
if ((phy_interface_mode_is_8023z(state->interface) ||
1176+
state->interface == PHY_INTERFACE_MODE_SGMII) &&
1177+
dev->ops->serdes_link_state)
11771178
ret = dev->ops->serdes_link_state(dev, port, state);
11781179

11791180
return ret;
@@ -1195,8 +1196,9 @@ void b53_phylink_mac_config(struct dsa_switch *ds, int port,
11951196
return;
11961197
}
11971198

1198-
if (phy_interface_mode_is_8023z(state->interface) &&
1199-
dev->ops->serdes_config)
1199+
if ((phy_interface_mode_is_8023z(state->interface) ||
1200+
state->interface == PHY_INTERFACE_MODE_SGMII) &&
1201+
dev->ops->serdes_config)
12001202
dev->ops->serdes_config(dev, port, mode, state);
12011203
}
12021204
EXPORT_SYMBOL(b53_phylink_mac_config);

drivers/net/dsa/b53/b53_serdes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#define SERDES_ID0_REV_LETTER_SHIFT 14
2121

2222
#define B53_SERDES_MII_REG(x) (0x20 + (x) * 2)
23-
#define B53_SERDES_DIGITAL_CONTROL(x) (0x18 + (x) * 2)
23+
#define B53_SERDES_DIGITAL_CONTROL(x) (0x1e + (x) * 2)
2424
#define B53_SERDES_DIGITAL_STATUS 0x28
2525

2626
/* SERDES_DIGITAL_CONTROL1 */

0 commit comments

Comments
 (0)