[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210120222355.gnbekhsudjjyar4x@skbuf>
Date: Wed, 20 Jan 2021 22:23:56 +0000
From: Ioana Ciornei <ioana.ciornei@....com>
To: Russell King <rmk+kernel@...linux.org.uk>
CC: Ioana Ciocoi Radulescu <ruxandra.radulescu@....com>,
Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH net-next 2/3] net: dpaa2-mac: add 1000BASE-X support
On Tue, Jan 19, 2021 at 03:36:03PM +0000, Russell King wrote:
> Now that pcs-lynx supports 1000BASE-X, add support for this interface
> mode to dpaa2-mac. pcs-lynx can be switched at runtime between SGMII
> and 1000BASE-X mode, so allow dpaa2-mac to switch between these as
> well.
>
> This commit prepares the ground work for allowing 1G fiber connections
> to be used with DPAA2 on the SolidRun CEX7 platforms.
>
> Signed-off-by: Russell King <rmk+kernel@...linux.org.uk>
Reviewed-by: Ioana Ciornei <ioana.ciornei@....com>
> ---
> .../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 20 ++++++++++++++++---
> 1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> index 69ad869446cf..3ddfb40eb5e4 100644
> --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> @@ -79,10 +79,20 @@ static bool dpaa2_mac_phy_mode_mismatch(struct dpaa2_mac *mac,
> phy_interface_t interface)
> {
> switch (interface) {
> + /* We can switch between SGMII and 1000BASE-X at runtime with
> + * pcs-lynx
> + */
> + case PHY_INTERFACE_MODE_SGMII:
> + case PHY_INTERFACE_MODE_1000BASEX:
> + if (mac->pcs &&
> + (mac->if_mode == PHY_INTERFACE_MODE_SGMII ||
> + mac->if_mode == PHY_INTERFACE_MODE_1000BASEX))
> + return false;
> + return interface != mac->if_mode;
> +
> case PHY_INTERFACE_MODE_10GBASER:
> case PHY_INTERFACE_MODE_USXGMII:
> case PHY_INTERFACE_MODE_QSGMII:
> - case PHY_INTERFACE_MODE_SGMII:
> case PHY_INTERFACE_MODE_RGMII:
> case PHY_INTERFACE_MODE_RGMII_ID:
> case PHY_INTERFACE_MODE_RGMII_RXID:
> @@ -122,13 +132,17 @@ static void dpaa2_mac_validate(struct phylink_config *config,
> fallthrough;
> case PHY_INTERFACE_MODE_SGMII:
> case PHY_INTERFACE_MODE_QSGMII:
> + case PHY_INTERFACE_MODE_1000BASEX:
> case PHY_INTERFACE_MODE_RGMII:
> case PHY_INTERFACE_MODE_RGMII_ID:
> case PHY_INTERFACE_MODE_RGMII_RXID:
> case PHY_INTERFACE_MODE_RGMII_TXID:
> - phylink_set(mask, 10baseT_Full);
> - phylink_set(mask, 100baseT_Full);
> + phylink_set(mask, 1000baseX_Full);
> phylink_set(mask, 1000baseT_Full);
> + if (state->interface == PHY_INTERFACE_MODE_1000BASEX)
> + break;
> + phylink_set(mask, 100baseT_Full);
> + phylink_set(mask, 10baseT_Full);
> break;
> default:
> goto empty_set;
> --
> 2.20.1
>
Powered by blists - more mailing lists