diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index dbf5b86a07fe6..700d86dd5e130 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1172,8 +1172,9 @@ int b53_phylink_mac_link_state(struct dsa_switch *ds, int port, struct b53_device *dev = ds->priv; int ret = -EOPNOTSUPP; - if (phy_interface_mode_is_8023z(state->interface) && - dev->ops->serdes_link_state) + if ((phy_interface_mode_is_8023z(state->interface) || + state->interface == PHY_INTERFACE_MODE_SGMII) && + dev->ops->serdes_link_state) ret = dev->ops->serdes_link_state(dev, port, state); return ret; @@ -1195,8 +1196,9 @@ void b53_phylink_mac_config(struct dsa_switch *ds, int port, return; } - if (phy_interface_mode_is_8023z(state->interface) && - dev->ops->serdes_config) + if ((phy_interface_mode_is_8023z(state->interface) || + state->interface == PHY_INTERFACE_MODE_SGMII) && + dev->ops->serdes_config) dev->ops->serdes_config(dev, port, mode, state); } EXPORT_SYMBOL(b53_phylink_mac_config); diff --git a/drivers/net/dsa/b53/b53_serdes.h b/drivers/net/dsa/b53/b53_serdes.h index eed7c93570916..3bb4f91aec9ea 100644 --- a/drivers/net/dsa/b53/b53_serdes.h +++ b/drivers/net/dsa/b53/b53_serdes.h @@ -20,7 +20,7 @@ #define SERDES_ID0_REV_LETTER_SHIFT 14 #define B53_SERDES_MII_REG(x) (0x20 + (x) * 2) -#define B53_SERDES_DIGITAL_CONTROL(x) (0x18 + (x) * 2) +#define B53_SERDES_DIGITAL_CONTROL(x) (0x1e + (x) * 2) #define B53_SERDES_DIGITAL_STATUS 0x28 /* SERDES_DIGITAL_CONTROL1 */