From bb700603e66a1294049aa479ad560443496c893b Mon Sep 17 00:00:00 2001 From: Alex Marginean Date: Fri, 20 Sep 2019 19:41:10 +0300 Subject: [PATCH] enetc: Handle USXGMII protocol Adds USXGMII protocol which is now supported in Linux. XGMII is kept for compatibility although there is no plain XGMII support in ENETC. Signed-off-by: Alex Marginean --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -528,7 +528,8 @@ static void enetc_configure_port_mac(str phy_mode == PHY_INTERFACE_MODE_RGMII) enetc_port_wr(hw, ENETC_PM0_IF_MODE, ENETC_PM0_IFM_RGAUTO); - if (phy_mode == PHY_INTERFACE_MODE_XGMII) + if (phy_mode == PHY_INTERFACE_MODE_XGMII || + phy_mode == PHY_INTERFACE_MODE_USXGMII) enetc_port_wr(hw, ENETC_PM0_IF_MODE, ENETC_PM0_IFM_XGMII); } @@ -909,7 +910,8 @@ static int enetc_configure_serdes(struct int err; if (priv->if_mode != PHY_INTERFACE_MODE_SGMII && - priv->if_mode != PHY_INTERFACE_MODE_XGMII) + priv->if_mode != PHY_INTERFACE_MODE_XGMII && + priv->if_mode != PHY_INTERFACE_MODE_USXGMII) return 0; err = enetc_imdio_init(pf); @@ -919,7 +921,8 @@ static int enetc_configure_serdes(struct if (priv->if_mode == PHY_INTERFACE_MODE_SGMII) enetc_configure_sgmii(pf->imdio); - if (priv->if_mode == PHY_INTERFACE_MODE_XGMII) + if (priv->if_mode == PHY_INTERFACE_MODE_XGMII || + priv->if_mode == PHY_INTERFACE_MODE_USXGMII) enetc_configure_sxgmii(pf->imdio); return 0;