All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Parshuram Thombare <pthombar@cadence.com>
Cc: nicolas.ferre@microchip.com, davem@davemloft.net,
	f.fainelli@gmail.com, netdev@vger.kernel.org,
	hkallweit1@gmail.com, linux-kernel@vger.kernel.org,
	rafalc@cadence.com, aniljoy@cadence.com, piotrs@cadence.com
Subject: Re: [PATCH 5/6] net: macb: add support for high speed interface
Date: Mon, 17 Jun 2019 17:19:27 +0200	[thread overview]
Message-ID: <20190617151927.GI25211@lunn.ch> (raw)
In-Reply-To: <1560642512-28765-1-git-send-email-pthombar@cadence.com>

>  	switch (state->interface) {
> +	case PHY_INTERFACE_MODE_NA:

I would not list PHY_INTERFACE_MODE_NA here.

> +	case PHY_INTERFACE_MODE_USXGMII:
> +	case PHY_INTERFACE_MODE_10GKR:
> +		if (bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE) {
> +			phylink_set(mask, 10000baseCR_Full);
> +			phylink_set(mask, 10000baseER_Full);
> +			phylink_set(mask, 10000baseKR_Full);
> +			phylink_set(mask, 10000baseLR_Full);
> +			phylink_set(mask, 10000baseLRM_Full);
> +			phylink_set(mask, 10000baseSR_Full);
> +			phylink_set(mask, 10000baseT_Full);
> +			phylink_set(mask, 5000baseT_Full);
> +			phylink_set(mask, 2500baseX_Full);
> +			phylink_set(mask, 1000baseX_Full);
> +		}
> +		/* Fall-through */
>  	case PHY_INTERFACE_MODE_SGMII:
>  		if (bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE)
>  			phylink_set(mask, 2500baseT_Full);
> @@ -594,17 +639,55 @@ static void gem_mac_config(struct phylink_config *pl_config, unsigned int mode,
>  			reg |= MACB_BIT(FD);
>  		macb_or_gem_writel(bp, NCFGR, reg);
>  
> -		if (state->speed == SPEED_2500) {
> -			gem_writel(bp, NCFGR, GEM_BIT(GBE) |
> -				   gem_readl(bp, NCFGR));
> -			gem_writel(bp, NCR, GEM_BIT(TWO_PT_FIVE_GIG) |
> -				   gem_readl(bp, NCR));
> -		} else if (state->speed == SPEED_1000) {
> -			gem_writel(bp, NCFGR, GEM_BIT(GBE) |
> -				   gem_readl(bp, NCFGR));
> -		} else if (state->speed == SPEED_100) {
> -			macb_writel(bp, NCFGR, MACB_BIT(SPD) |
> -				    macb_readl(bp, NCFGR));
> +		if (bp->phy_interface == PHY_INTERFACE_MODE_USXGMII) {
> +			u32 speed;
> +
> +			switch (state->speed) {
> +			case SPEED_10000:
> +				if (bp->serdes_rate ==
> +				    MACB_SERDES_RATE_10_PT_3125Gbps) {
> +					speed = HS_MAC_SPEED_10000M;
> +				} else {
> +					netdev_warn(netdev,
> +						    "10G not supported by HW");
> +					netdev_warn(netdev, "Setting speed to 1G");
> +					speed = HS_MAC_SPEED_1000M;
> +				}
> +				break;
> +			case SPEED_5000:
> +				speed = HS_MAC_SPEED_5000M;
> +				break;
> +			case SPEED_2500:
> +				speed = HS_MAC_SPEED_2500M;
> +				break;
> +			case SPEED_1000:
> +				speed = HS_MAC_SPEED_1000M;
> +				break;
> +			default:
> +			case SPEED_100:
> +				speed = HS_MAC_SPEED_100M;
> +				break;
> +			}
> +
> +			gem_writel(bp, HS_MAC_CONFIG,
> +				   GEM_BFINS(HS_MAC_SPEED, speed,
> +					     gem_readl(bp, HS_MAC_CONFIG)));
> +			gem_writel(bp, USX_CONTROL,
> +				   GEM_BFINS(USX_CTRL_SPEED, speed,
> +					     gem_readl(bp, USX_CONTROL)));
> +		} else {
> +			if (state->speed == SPEED_2500) {
> +				gem_writel(bp, NCFGR, GEM_BIT(GBE) |
> +					   gem_readl(bp, NCFGR));
> +				gem_writel(bp, NCR, GEM_BIT(TWO_PT_FIVE_GIG) |
> +					   gem_readl(bp, NCR));
> +			} else if (state->speed == SPEED_1000) {
> +				gem_writel(bp, NCFGR, GEM_BIT(GBE) |
> +					   gem_readl(bp, NCFGR));
> +			} else if (state->speed == SPEED_100) {
> +				macb_writel(bp, NCFGR, MACB_BIT(SPD) |
> +					    macb_readl(bp, NCFGR));
> +			}

Maybe split this up into two helper functions?

      Andrew

  parent reply	other threads:[~2019-06-17 15:19 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-15 23:45 [PATCH 0/6] net: macb patch set cover letter Parshuram Thombare
2019-06-15 23:46 ` [PATCH 1/6] net: macb: add phylink support Parshuram Thombare
2019-06-15 23:46   ` [PATCH 2/6] net: macb: add support for sgmii MAC-PHY interface Parshuram Thombare
2019-06-15 23:47     ` [PATCH 3/6] net: macb: add PHY configuration in MACB PCI wrapper Parshuram Thombare
2019-06-15 23:48       ` [PATCH 4/6] net: macb: add support for c45 PHY Parshuram Thombare
2019-06-15 23:48         ` [PATCH 5/6] net: macb: add support for high speed interface Parshuram Thombare
2019-06-15 23:49           ` [PATCH 6/6] net: macb: parameter added to cadence ethernet controller DT binding Parshuram Thombare
2019-06-17 15:21             ` Andrew Lunn
2019-06-18 18:19               ` Parshuram Raju Thombare
2019-06-18 18:45             ` [PATCH v2 " Parshuram Thombare
2019-06-18 19:47               ` Florian Fainelli
2019-06-19  6:08                 ` Parshuram Raju Thombare
2019-06-17 15:19           ` Andrew Lunn [this message]
2019-06-18 18:18             ` [PATCH 5/6] net: macb: add support for high speed interface Parshuram Raju Thombare
2019-06-18 18:44           ` [PATCH v2 " Parshuram Thombare
2019-06-18 18:43         ` [PATCH v2 4/6] net: macb: add support for c45 PHY Parshuram Thombare
2019-06-17 15:01     ` [PATCH 2/6] net: macb: add support for sgmii MAC-PHY interface Andrew Lunn
2019-06-18  8:37       ` Parshuram Raju Thombare
2019-06-17 17:42   ` [PATCH 1/6] net: macb: add phylink support Andrew Lunn
2019-06-18 18:22     ` Parshuram Raju Thombare
2019-06-18 18:41   ` [PATCH v2 " Parshuram Thombare
2019-06-18 21:32     ` Andrew Lunn
2019-06-19  8:28       ` Parshuram Raju Thombare
2019-06-16  6:56 ` [PATCH 0/6] net: macb patch set cover letter Parshuram Raju Thombare
2019-06-17 15:04 ` Andrew Lunn
2019-06-18 18:12   ` Parshuram Raju Thombare
2019-06-17 15:08 ` Andrew Lunn
2019-06-18 18:15   ` Parshuram Raju Thombare
     [not found] <1560639680-19049-1-git-send-email-pthombar@cadence.com>
2019-06-16  7:05 ` [PATCH 5/6] net: macb: add support for high speed interface Parshuram Thombare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190617151927.GI25211@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=aniljoy@cadence.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=piotrs@cadence.com \
    --cc=pthombar@cadence.com \
    --cc=rafalc@cadence.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.