mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
4354b34f6f
Backport lots upstream changes, many of them fixes, for the mt7530 DSA driver, similar to how it was done for Linux 6.1 in the previous commit. The remaining differences compared to the upstream driver are only the 'slave' -> 'user', 'master' -> 'conduit' language change in DSA and the rename of 'struct ethtool_eee' to 'struct ethtool_keee' as well as tree-wide replacement of ethtool_sprintf with ethtool_puts, all of them do not have any functional impact. Apart from some minor bug fixes and style improvements the switch should now behave more conformant when it comes to link-local frames, and we will again be able to cleanly pick patches from upstream. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
From ab1ddb241bc1cb3d80aa51207810edd5cb0bbdc5 Mon Sep 17 00:00:00 2001
|
||
From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
|
||
Date: Fri, 1 Mar 2024 12:43:03 +0200
|
||
Subject: [PATCH 25/30] net: dsa: mt7530: put initialising PCS devices code
|
||
back to original order
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
The commit fae463084032 ("net: dsa: mt753x: fix pcs conversion regression")
|
||
fixes regression caused by cpu_port_config manually calling phylink
|
||
operations. cpu_port_config was deemed useless and was removed. Therefore,
|
||
put initialising PCS devices code back to its original order.
|
||
|
||
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
|
||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||
---
|
||
drivers/net/dsa/mt7530.c | 20 ++++++++++----------
|
||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||
|
||
--- a/drivers/net/dsa/mt7530.c
|
||
+++ b/drivers/net/dsa/mt7530.c
|
||
@@ -2848,17 +2848,9 @@ static int
|
||
mt753x_setup(struct dsa_switch *ds)
|
||
{
|
||
struct mt7530_priv *priv = ds->priv;
|
||
- int i, ret;
|
||
+ int ret = priv->info->sw_setup(ds);
|
||
+ int i;
|
||
|
||
- /* Initialise the PCS devices */
|
||
- for (i = 0; i < priv->ds->num_ports; i++) {
|
||
- priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
||
- priv->pcs[i].pcs.neg_mode = true;
|
||
- priv->pcs[i].priv = priv;
|
||
- priv->pcs[i].port = i;
|
||
- }
|
||
-
|
||
- ret = priv->info->sw_setup(ds);
|
||
if (ret)
|
||
return ret;
|
||
|
||
@@ -2870,6 +2862,14 @@ mt753x_setup(struct dsa_switch *ds)
|
||
if (ret && priv->irq)
|
||
mt7530_free_irq_common(priv);
|
||
|
||
+ /* Initialise the PCS devices */
|
||
+ for (i = 0; i < priv->ds->num_ports; i++) {
|
||
+ priv->pcs[i].pcs.ops = priv->info->pcs_ops;
|
||
+ priv->pcs[i].pcs.neg_mode = true;
|
||
+ priv->pcs[i].priv = priv;
|
||
+ priv->pcs[i].port = i;
|
||
+ }
|
||
+
|
||
if (priv->create_sgmii) {
|
||
ret = priv->create_sgmii(priv);
|
||
if (ret && priv->irq)
|