All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ioana Ciornei <ioana.ciornei@nxp.com>
To: netdev@vger.kernel.org, davem@davemloft.net
Cc: vladimir.oltean@nxp.com, claudiu.manoil@nxp.com,
	alexandru.marginean@nxp.com, michael@walle.cc, andrew@lunn.ch,
	linux@armlinux.org.uk, f.fainelli@gmail.com, olteanv@gmail.com,
	Ioana Ciornei <ioana.ciornei@nxp.com>
Subject: [PATCH net-next v3 7/9] net: dsa: felix: set proper pause frame timers based on link speed
Date: Mon, 22 Jun 2020 01:54:49 +0300	[thread overview]
Message-ID: <20200621225451.12435-8-ioana.ciornei@nxp.com> (raw)
In-Reply-To: <20200621225451.12435-1-ioana.ciornei@nxp.com>

From: Vladimir Oltean <vladimir.oltean@nxp.com>

state->speed holds a value of 10, 100, 1000 or 2500, but
SYS_MAC_FC_CFG_FC_LINK_SPEED expects a value in the range 0, 1, 2 or 3.

So set the correct speed encoding into this register.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v3:
 * patch added

 drivers/net/dsa/ocelot/felix.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/net/dsa/ocelot/felix.c b/drivers/net/dsa/ocelot/felix.c
index 723d4cb89fdf..98ae8421ef7f 100644
--- a/drivers/net/dsa/ocelot/felix.c
+++ b/drivers/net/dsa/ocelot/felix.c
@@ -225,10 +225,25 @@ static void felix_phylink_mac_config(struct dsa_switch *ds, int port,
 			   DEV_CLOCK_CFG_LINK_SPEED(OCELOT_SPEED_1000),
 			   DEV_CLOCK_CFG);
 
-	/* Flow control. Link speed is only used here to evaluate the time
-	 * specification in incoming pause frames.
-	 */
-	mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(state->speed);
+	switch (state->speed) {
+	case SPEED_10:
+		mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(3);
+		break;
+	case SPEED_100:
+		mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(2);
+		break;
+	case SPEED_1000:
+	case SPEED_2500:
+		mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(1);
+		break;
+	case SPEED_UNKNOWN:
+		mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(0);
+		break;
+	default:
+		dev_err(ocelot->dev, "Unsupported speed on port %d: %d\n",
+			port, state->speed);
+		return;
+	}
 
 	/* handle Rx pause in all cases, with 2500base-X this is used for rate
 	 * adaptation.
@@ -240,6 +255,10 @@ static void felix_phylink_mac_config(struct dsa_switch *ds, int port,
 			      SYS_MAC_FC_CFG_PAUSE_VAL_CFG(0xffff) |
 			      SYS_MAC_FC_CFG_FC_LATENCY_CFG(0x7) |
 			      SYS_MAC_FC_CFG_ZERO_PAUSE_ENA;
+
+	/* Flow control. Link speed is only used here to evaluate the time
+	 * specification in incoming pause frames.
+	 */
 	ocelot_write_rix(ocelot, mac_fc_cfg, SYS_MAC_FC_CFG, port);
 
 	ocelot_write_rix(ocelot, 0, ANA_POL_FLOWC, port);
-- 
2.25.1


  parent reply	other threads:[~2020-06-21 22:56 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-21 22:54 [PATCH net-next v3 0/9] net: phy: add Lynx PCS MDIO module Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 1/9] net: phylink: add interface to configure clause 22 PCS PHY Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 2/9] net: phylink: consider QSGMII interface mode in phylink_mii_c22_pcs_get_state Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 3/9] net: mdiobus: add clause 45 mdiobus write accessor Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 4/9] net: phy: add Lynx PCS module Ioana Ciornei
2020-06-22 10:12   ` Russell King - ARM Linux admin
2020-06-23 11:49     ` Ioana Ciornei
2020-06-23 12:03       ` Russell King - ARM Linux admin
2020-06-22 23:04   ` Russell King - ARM Linux admin
2020-06-21 22:54 ` [PATCH net-next v3 5/9] net: dsa: add support for phylink_pcs_ops Ioana Ciornei
2020-06-22 10:22   ` Russell King - ARM Linux admin
2020-06-22 11:10     ` Russell King - ARM Linux admin
2020-06-22 12:16       ` Russell King - ARM Linux admin
2020-06-22 12:35         ` Ioana Ciornei
2020-06-22 13:14           ` Russell King - ARM Linux admin
2020-06-22 13:51             ` Ioana Ciornei
2020-06-22 14:07               ` Russell King - ARM Linux admin
2020-06-21 22:54 ` [PATCH net-next v3 6/9] net: dsa: felix: unconditionally configure MAC speed to 1000Mbps Ioana Ciornei
2020-06-21 22:54 ` Ioana Ciornei [this message]
2020-06-21 22:54 ` [PATCH net-next v3 8/9] net: dsa: felix: use resolved link config in mac_link_up() Ioana Ciornei
2020-06-21 22:54 ` [PATCH net-next v3 9/9] net: dsa: felix: use the Lynx PCS helpers Ioana Ciornei
2020-06-22  9:29 ` [PATCH net-next v3 0/9] net: phy: add Lynx PCS MDIO module Russell King - ARM Linux admin
2020-06-22  9:34   ` Vladimir Oltean
2020-06-30  6:01     ` Michael Walle
2020-07-01 13:37       ` Vladimir Oltean
2020-07-01 13:49         ` Michael Walle

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=20200621225451.12435-8-ioana.ciornei@nxp.com \
    --to=ioana.ciornei@nxp.com \
    --cc=alexandru.marginean@nxp.com \
    --cc=andrew@lunn.ch \
    --cc=claudiu.manoil@nxp.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=linux@armlinux.org.uk \
    --cc=michael@walle.cc \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=vladimir.oltean@nxp.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.