]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
generic: v6.1, v6.6: add patch to fix PHY-muxing on MT7530
authorDaniel Golle <daniel@makrotopia.org>
Sat, 27 Apr 2024 12:05:30 +0000 (13:05 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 27 Apr 2024 15:14:10 +0000 (16:14 +0100)
Move accepted patches to backport folder, re-add previously removed patch
which caused havoc on MT7621 and add the (still pending) fix.

Fixes: d40691a5fb ("generic: 6.1, 6.6: mt7530: import pending patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
32 files changed:
target/linux/generic/backport-6.1/790-54-v6.10-net-dsa-mt7530-disable-EEE-abilities-on-failure-on-M.patch [moved from target/linux/generic/pending-6.1/795-01-net-dsa-mt7530-disable-EEE-abilities-on-failure-on-M.patch with 100% similarity]
target/linux/generic/backport-6.1/790-55-v6.10-net-dsa-mt7530-refactor-MT7530_PMCR_P.patch [moved from target/linux/generic/pending-6.1/795-02-net-dsa-mt7530-refactor-MT7530_PMCR_P.patch with 100% similarity]
target/linux/generic/backport-6.1/790-56-v6.10-net-dsa-mt7530-rename-p5_intf_sel-and-use-only-for-M.patch [moved from target/linux/generic/pending-6.1/795-03-net-dsa-mt7530-rename-p5_intf_sel-and-use-only-for-M.patch with 100% similarity]
target/linux/generic/backport-6.1/790-57-v6.10-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch [moved from target/linux/generic/pending-6.1/795-04-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch with 100% similarity]
target/linux/generic/backport-6.1/790-58-v6.10-net-dsa-mt7530-refactor-MT7530_MFC-and-MT7531_CFC-ad.patch [moved from target/linux/generic/pending-6.1/795-05-net-dsa-mt7530-refactor-MT7530_MFC-and-MT7531_CFC-ad.patch with 100% similarity]
target/linux/generic/backport-6.1/790-59-v6.10-net-dsa-mt7530-refactor-MT7530_HWTRAP-and-MT7530_MHW.patch [moved from target/linux/generic/pending-6.1/795-06-net-dsa-mt7530-refactor-MT7530_HWTRAP-and-MT7530_MHW.patch with 100% similarity]
target/linux/generic/backport-6.1/790-60-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch [new file with mode: 0644]
target/linux/generic/backport-6.1/790-61-v6.10-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch [moved from target/linux/generic/pending-6.1/795-08-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch with 90% similarity]
target/linux/generic/backport-6.1/790-62-v6.10-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch [moved from target/linux/generic/pending-6.1/795-09-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch with 90% similarity]
target/linux/generic/backport-6.1/790-63-v6.10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch [moved from target/linux/generic/pending-6.1/795-10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch with 94% similarity]
target/linux/generic/backport-6.1/790-64-v6.10-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch [moved from target/linux/generic/pending-6.6/745-11-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch with 95% similarity]
target/linux/generic/backport-6.1/790-65-v6.10-net-dsa-mt7530-get-rid-of-mac_port_validate-member-o.patch [moved from target/linux/generic/pending-6.1/795-12-net-dsa-mt7530-get-rid-of-mac_port_validate-member-o.patch with 100% similarity]
target/linux/generic/backport-6.1/790-66-v6.10-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch [moved from target/linux/generic/pending-6.6/745-13-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch with 89% similarity]
target/linux/generic/backport-6.1/790-67-v6.10-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch [moved from target/linux/generic/pending-6.1/795-14-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch with 90% similarity]
target/linux/generic/backport-6.1/790-68-v6.10-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch [moved from target/linux/generic/pending-6.1/795-15-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch with 95% similarity]
target/linux/generic/backport-6.6/790-38-v6.10-net-dsa-mt7530-disable-EEE-abilities-on-failure-on-M.patch [moved from target/linux/generic/pending-6.6/745-01-net-dsa-mt7530-disable-EEE-abilities-on-failure-on-M.patch with 100% similarity]
target/linux/generic/backport-6.6/790-39-v6.10-net-dsa-mt7530-refactor-MT7530_PMCR_P.patch [moved from target/linux/generic/pending-6.6/745-02-net-dsa-mt7530-refactor-MT7530_PMCR_P.patch with 100% similarity]
target/linux/generic/backport-6.6/790-40-v6.10-net-dsa-mt7530-rename-p5_intf_sel-and-use-only-for-M.patch [moved from target/linux/generic/pending-6.6/745-03-net-dsa-mt7530-rename-p5_intf_sel-and-use-only-for-M.patch with 100% similarity]
target/linux/generic/backport-6.6/790-41-v6.10-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch [moved from target/linux/generic/pending-6.6/745-04-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch with 100% similarity]
target/linux/generic/backport-6.6/790-42-v6.10-net-dsa-mt7530-refactor-MT7530_MFC-and-MT7531_CFC-ad.patch [moved from target/linux/generic/pending-6.6/745-05-net-dsa-mt7530-refactor-MT7530_MFC-and-MT7531_CFC-ad.patch with 100% similarity]
target/linux/generic/backport-6.6/790-43-v6.10-net-dsa-mt7530-refactor-MT7530_HWTRAP-and-MT7530_MHW.patch [moved from target/linux/generic/pending-6.6/745-06-net-dsa-mt7530-refactor-MT7530_HWTRAP-and-MT7530_MHW.patch with 100% similarity]
target/linux/generic/backport-6.6/790-44-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch [new file with mode: 0644]
target/linux/generic/backport-6.6/790-45-v6.10-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch [moved from target/linux/generic/pending-6.6/745-08-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch with 90% similarity]
target/linux/generic/backport-6.6/790-46-v6.10-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch [moved from target/linux/generic/pending-6.6/745-09-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch with 90% similarity]
target/linux/generic/backport-6.6/790-47-v6.10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch [moved from target/linux/generic/pending-6.6/745-10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch with 94% similarity]
target/linux/generic/backport-6.6/790-48-v6.10-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch [moved from target/linux/generic/pending-6.1/795-11-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch with 95% similarity]
target/linux/generic/backport-6.6/790-49-v6.10-net-dsa-mt7530-get-rid-of-mac_port_validate-member-o.patch [moved from target/linux/generic/pending-6.6/745-12-net-dsa-mt7530-get-rid-of-mac_port_validate-member-o.patch with 100% similarity]
target/linux/generic/backport-6.6/790-50-v6.10-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch [moved from target/linux/generic/pending-6.1/795-13-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch with 89% similarity]
target/linux/generic/backport-6.6/790-51-v6.10-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch [moved from target/linux/generic/pending-6.6/745-14-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch with 90% similarity]
target/linux/generic/backport-6.6/790-52-v6.10-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch [moved from target/linux/generic/pending-6.6/745-15-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch with 95% similarity]
target/linux/generic/pending-6.1/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch [new file with mode: 0644]
target/linux/generic/pending-6.6/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch [new file with mode: 0644]

diff --git a/target/linux/generic/backport-6.1/790-60-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch b/target/linux/generic/backport-6.1/790-60-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch
new file mode 100644 (file)
index 0000000..e7da939
--- /dev/null
@@ -0,0 +1,117 @@
+From 2982f395c9a513b168f1e685588f70013cba2f5f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
+Date: Mon, 22 Apr 2024 10:15:14 +0300
+Subject: [PATCH 07/15] net: dsa: mt7530: move MT753X_MTRAP operations for
+ MT7530
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On MT7530, the media-independent interfaces of port 5 and 6 are controlled
+by the MT7530_P5_DIS and MT7530_P6_DIS bits of the hardware trap. Deal with
+these bits only when the relevant port is being enabled or disabled. This
+ensures that these ports will be disabled when they are not in use.
+
+Do not set MT7530_CHG_TRAP on mt7530_setup_port5() as that's already being
+done on mt7530_setup().
+
+Instead of globally setting MT7530_P5_MAC_SEL, clear it, then set it only
+on the appropriate case.
+
+If PHY muxing is detected, clear MT7530_P5_DIS before calling
+mt7530_setup_port5().
+
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+---
+ drivers/net/dsa/mt7530.c | 38 +++++++++++++++++++++++++++-----------
+ 1 file changed, 27 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -873,8 +873,7 @@ static void mt7530_setup_port5(struct ds
+       val = mt7530_read(priv, MT753X_MTRAP);
+-      val |= MT7530_CHG_TRAP | MT7530_P5_MAC_SEL | MT7530_P5_DIS;
+-      val &= ~MT7530_P5_RGMII_MODE & ~MT7530_P5_PHY0_SEL;
++      val &= ~MT7530_P5_PHY0_SEL & ~MT7530_P5_MAC_SEL & ~MT7530_P5_RGMII_MODE;
+       switch (priv->p5_mode) {
+       /* MUX_PHY_P0: P0 -> P5 -> SoC MAC */
+@@ -884,15 +883,13 @@ static void mt7530_setup_port5(struct ds
+       /* MUX_PHY_P4: P4 -> P5 -> SoC MAC */
+       case MUX_PHY_P4:
+-              val &= ~MT7530_P5_MAC_SEL & ~MT7530_P5_DIS;
+-
+               /* Setup the MAC by default for the cpu port */
+               mt7530_write(priv, MT753X_PMCR_P(5), 0x56300);
+               break;
+       /* GMAC5: P5 -> SoC MAC or external PHY */
+       default:
+-              val &= ~MT7530_P5_DIS;
++              val |= MT7530_P5_MAC_SEL;
+               break;
+       }
+@@ -1186,6 +1183,14 @@ mt7530_port_enable(struct dsa_switch *ds
+       mutex_unlock(&priv->reg_mutex);
++      if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
++              return 0;
++
++      if (port == 5)
++              mt7530_clear(priv, MT753X_MTRAP, MT7530_P5_DIS);
++      else if (port == 6)
++              mt7530_clear(priv, MT753X_MTRAP, MT7530_P6_DIS);
++
+       return 0;
+ }
+@@ -1204,6 +1209,14 @@ mt7530_port_disable(struct dsa_switch *d
+                  PCR_MATRIX_CLR);
+       mutex_unlock(&priv->reg_mutex);
++
++      if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
++              return;
++
++      if (port == 5)
++              mt7530_set(priv, MT753X_MTRAP, MT7530_P5_DIS);
++      else if (port == 6)
++              mt7530_set(priv, MT753X_MTRAP, MT7530_P6_DIS);
+ }
+ static int
+@@ -2392,11 +2405,11 @@ mt7530_setup(struct dsa_switch *ds)
+               mt7530_rmw(priv, MT7530_TRGMII_RD(i),
+                          RD_TAP_MASK, RD_TAP(16));
+-      /* Enable port 6 */
+-      val = mt7530_read(priv, MT753X_MTRAP);
+-      val &= ~MT7530_P6_DIS & ~MT7530_PHY_INDIRECT_ACCESS;
+-      val |= MT7530_CHG_TRAP;
+-      mt7530_write(priv, MT753X_MTRAP, val);
++      /* Allow modifying the trap and directly access PHY registers via the
++       * MDIO bus the switch is on.
++       */
++      mt7530_rmw(priv, MT753X_MTRAP, MT7530_CHG_TRAP |
++                 MT7530_PHY_INDIRECT_ACCESS, MT7530_CHG_TRAP);
+       if ((val & MT7530_XTAL_MASK) == MT7530_XTAL_40MHZ)
+               mt7530_pll_setup(priv);
+@@ -2479,8 +2492,11 @@ mt7530_setup(struct dsa_switch *ds)
+                       break;
+               }
+-              if (priv->p5_mode == MUX_PHY_P0 || priv->p5_mode == MUX_PHY_P4)
++              if (priv->p5_mode == MUX_PHY_P0 ||
++                  priv->p5_mode == MUX_PHY_P4) {
++                      mt7530_clear(priv, MT753X_MTRAP, MT7530_P5_DIS);
+                       mt7530_setup_port5(ds, interface);
++              }
+       }
+ #ifdef CONFIG_GPIOLIB
similarity index 90%
rename from target/linux/generic/pending-6.1/795-08-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch
rename to target/linux/generic/backport-6.1/790-61-v6.10-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch
index 5624a645993097c15bccb6fecb8a750c0fd5ff62..7cc145327c9c932d3b7464b7b6ee7090171a8457 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2642,7 +2642,9 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2658,7 +2658,9 @@ mt7531_setup(struct dsa_switch *ds)
                                         0);
        }
  
@@ -28,7 +28,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
  
        /* Setup VLAN ID 0 for VLAN-unaware bridges */
        ret = mt7530_setup_vlan0(priv);
-@@ -3001,6 +3003,8 @@ mt753x_setup(struct dsa_switch *ds)
+@@ -3017,6 +3019,8 @@ mt753x_setup(struct dsa_switch *ds)
        ret = mt7530_setup_mdio(priv);
        if (ret && priv->irq)
                mt7530_free_irq_common(priv);
similarity index 90%
rename from target/linux/generic/pending-6.1/795-09-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch
rename to target/linux/generic/backport-6.1/790-62-v6.10-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch
index ed7923f9ee5cd3fb4c2a83fd1b05fef59e8b6da7..f4d19db2744946908e34afd37dd6bba715608990 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2660,6 +2660,8 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2676,6 +2676,8 @@ mt7531_setup(struct dsa_switch *ds)
  static void mt7530_mac_port_get_caps(struct dsa_switch *ds, int port,
                                     struct phylink_config *config)
  {
@@ -33,7 +33,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        switch (port) {
        /* Ports which are connected to switch PHYs. There is no MII pinout. */
        case 0 ... 4:
-@@ -2691,6 +2693,8 @@ static void mt7531_mac_port_get_caps(str
+@@ -2707,6 +2709,8 @@ static void mt7531_mac_port_get_caps(str
  {
        struct mt7530_priv *priv = ds->priv;
  
@@ -42,7 +42,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        switch (port) {
        /* Ports which are connected to switch PHYs. There is no MII pinout. */
        case 0 ... 4:
-@@ -2730,14 +2734,17 @@ static void mt7988_mac_port_get_caps(str
+@@ -2746,14 +2750,17 @@ static void mt7988_mac_port_get_caps(str
        case 0 ... 3:
                __set_bit(PHY_INTERFACE_MODE_INTERNAL,
                          config->supported_interfaces);
@@ -62,7 +62,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        }
  }
  
-@@ -2907,9 +2914,7 @@ static void mt753x_phylink_get_caps(stru
+@@ -2923,9 +2930,7 @@ static void mt753x_phylink_get_caps(stru
  {
        struct mt7530_priv *priv = ds->priv;
  
similarity index 94%
rename from target/linux/generic/pending-6.1/795-10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch
rename to target/linux/generic/backport-6.1/790-63-v6.10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch
index f674ab7c6bed2a7018f7e71734f21d7357524006..5bb7756c51da9ec221596663288a943283915606 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -3204,13 +3204,6 @@ mt7530_probe_common(struct mt7530_priv *
+@@ -3220,13 +3220,6 @@ mt7530_probe_common(struct mt7530_priv *
        if (!priv->info)
                return -EINVAL;
  
similarity index 95%
rename from target/linux/generic/pending-6.6/745-11-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch
rename to target/linux/generic/backport-6.1/790-64-v6.10-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch
index df7085f89c3c16ddde36bbd10f0f5610c12c81c3..f8147b641262c4dfc137672966fb65a1d86262fd 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -3035,10 +3035,10 @@ static int mt753x_get_mac_eee(struct dsa
+@@ -3048,10 +3048,10 @@ static int mt753x_get_mac_eee(struct dsa
                              struct ethtool_eee *e)
  {
        struct mt7530_priv *priv = ds->priv;
@@ -32,7 +32,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
  
        return 0;
  }
-@@ -3052,11 +3052,11 @@ static int mt753x_set_mac_eee(struct dsa
+@@ -3065,11 +3065,11 @@ static int mt753x_set_mac_eee(struct dsa
        if (e->tx_lpi_timer > 0xFFF)
                return -EINVAL;
  
similarity index 89%
rename from target/linux/generic/pending-6.6/745-13-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch
rename to target/linux/generic/backport-6.1/790-66-v6.10-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch
index d1f692f73ae49eda20e632ab3b66e3ce4f36c301..0037f97499155777f0bb68367051eb27f4aee059 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -1398,7 +1398,7 @@ mt7530_port_set_vlan_unaware(struct dsa_
+@@ -1404,7 +1404,7 @@ mt7530_port_set_vlan_unaware(struct dsa_
        mt7530_rmw(priv, MT7530_PPBV1_P(port), G0_PORT_VID_MASK,
                   G0_PORT_VID_DEF);
  
@@ -28,7 +28,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                if (dsa_is_user_port(ds, i) &&
                    dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) {
                        all_user_ports_removed = false;
-@@ -2415,7 +2415,7 @@ mt7530_setup(struct dsa_switch *ds)
+@@ -2419,7 +2419,7 @@ mt7530_setup(struct dsa_switch *ds)
        /* Enable and reset MIB counters */
        mt7530_mib_reset(ds);
  
@@ -37,7 +37,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                /* Clear link settings and enable force mode to force link down
                 * on all ports until they're enabled later.
                 */
-@@ -2523,7 +2523,7 @@ mt7531_setup_common(struct dsa_switch *d
+@@ -2530,7 +2530,7 @@ mt7531_setup_common(struct dsa_switch *d
        mt7530_clear(priv, MT753X_MFC, BC_FFP_MASK | UNM_FFP_MASK |
                     UNU_FFP_MASK);
  
@@ -46,7 +46,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                /* Clear link settings and enable force mode to force link down
                 * on all ports until they're enabled later.
                 */
-@@ -2610,7 +2610,7 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2617,7 +2617,7 @@ mt7531_setup(struct dsa_switch *ds)
        priv->p5_sgmii = !!(val & PAD_DUAL_SGMII_EN);
  
        /* Force link down on all ports before internal reset */
similarity index 90%
rename from target/linux/generic/pending-6.1/795-14-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch
rename to target/linux/generic/backport-6.1/790-67-v6.10-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch
index e12d084c2f59c4af9fcb746920f892650129c77b..ee8e13ea70eaa90f207a470628b3fb354876e24b 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2760,7 +2760,7 @@ mt7530_mac_config(struct dsa_switch *ds,
+@@ -2776,7 +2776,7 @@ mt7530_mac_config(struct dsa_switch *ds,
                mt7530_setup_port6(priv->ds, interface);
  }
  
@@ -26,7 +26,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                               phy_interface_t interface,
                               struct phy_device *phydev)
  {
-@@ -2811,7 +2811,7 @@ mt7531_mac_config(struct dsa_switch *ds,
+@@ -2827,7 +2827,7 @@ mt7531_mac_config(struct dsa_switch *ds,
        if (phy_interface_mode_is_rgmii(interface)) {
                dp = dsa_to_port(ds, port);
                phydev = dp->slave->phydev;
similarity index 95%
rename from target/linux/generic/pending-6.1/795-15-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch
rename to target/linux/generic/backport-6.1/790-68-v6.10-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch
index 0eaf4fc2e84d63625fa51d8c8859b76353ce1591..666bcb75e8e80bfbab5d7ae51e3f50717f8f2e62 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2610,7 +2610,10 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2626,7 +2626,10 @@ mt7531_setup(struct dsa_switch *ds)
        if (!priv->p5_sgmii) {
                mt7531_pll_setup(priv);
        } else {
diff --git a/target/linux/generic/backport-6.6/790-44-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch b/target/linux/generic/backport-6.6/790-44-v6.10-net-dsa-mt7530-move-MT753X_MTRAP-operations-for-MT75.patch
new file mode 100644 (file)
index 0000000..f7802c0
--- /dev/null
@@ -0,0 +1,117 @@
+From 2982f395c9a513b168f1e685588f70013cba2f5f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
+Date: Mon, 22 Apr 2024 10:15:14 +0300
+Subject: [PATCH 07/15] net: dsa: mt7530: move MT753X_MTRAP operations for
+ MT7530
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On MT7530, the media-independent interfaces of port 5 and 6 are controlled
+by the MT7530_P5_DIS and MT7530_P6_DIS bits of the hardware trap. Deal with
+these bits only when the relevant port is being enabled or disabled. This
+ensures that these ports will be disabled when they are not in use.
+
+Do not set MT7530_CHG_TRAP on mt7530_setup_port5() as that's already being
+done on mt7530_setup().
+
+Instead of globally setting MT7530_P5_MAC_SEL, clear it, then set it only
+on the appropriate case.
+
+If PHY muxing is detected, clear MT7530_P5_DIS before calling
+mt7530_setup_port5().
+
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+---
+ drivers/net/dsa/mt7530.c | 38 +++++++++++++++++++++++++++-----------
+ 1 file changed, 27 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -880,8 +880,7 @@ static void mt7530_setup_port5(struct ds
+       val = mt7530_read(priv, MT753X_MTRAP);
+-      val |= MT7530_CHG_TRAP | MT7530_P5_MAC_SEL | MT7530_P5_DIS;
+-      val &= ~MT7530_P5_RGMII_MODE & ~MT7530_P5_PHY0_SEL;
++      val &= ~MT7530_P5_PHY0_SEL & ~MT7530_P5_MAC_SEL & ~MT7530_P5_RGMII_MODE;
+       switch (priv->p5_mode) {
+       /* MUX_PHY_P0: P0 -> P5 -> SoC MAC */
+@@ -891,15 +890,13 @@ static void mt7530_setup_port5(struct ds
+       /* MUX_PHY_P4: P4 -> P5 -> SoC MAC */
+       case MUX_PHY_P4:
+-              val &= ~MT7530_P5_MAC_SEL & ~MT7530_P5_DIS;
+-
+               /* Setup the MAC by default for the cpu port */
+               mt7530_write(priv, MT753X_PMCR_P(5), 0x56300);
+               break;
+       /* GMAC5: P5 -> SoC MAC or external PHY */
+       default:
+-              val &= ~MT7530_P5_DIS;
++              val |= MT7530_P5_MAC_SEL;
+               break;
+       }
+@@ -1193,6 +1190,14 @@ mt7530_port_enable(struct dsa_switch *ds
+       mutex_unlock(&priv->reg_mutex);
++      if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
++              return 0;
++
++      if (port == 5)
++              mt7530_clear(priv, MT753X_MTRAP, MT7530_P5_DIS);
++      else if (port == 6)
++              mt7530_clear(priv, MT753X_MTRAP, MT7530_P6_DIS);
++
+       return 0;
+ }
+@@ -1211,6 +1216,14 @@ mt7530_port_disable(struct dsa_switch *d
+                  PCR_MATRIX_CLR);
+       mutex_unlock(&priv->reg_mutex);
++
++      if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
++              return;
++
++      if (port == 5)
++              mt7530_set(priv, MT753X_MTRAP, MT7530_P5_DIS);
++      else if (port == 6)
++              mt7530_set(priv, MT753X_MTRAP, MT7530_P6_DIS);
+ }
+ static int
+@@ -2401,11 +2414,11 @@ mt7530_setup(struct dsa_switch *ds)
+               mt7530_rmw(priv, MT7530_TRGMII_RD(i),
+                          RD_TAP_MASK, RD_TAP(16));
+-      /* Enable port 6 */
+-      val = mt7530_read(priv, MT753X_MTRAP);
+-      val &= ~MT7530_P6_DIS & ~MT7530_PHY_INDIRECT_ACCESS;
+-      val |= MT7530_CHG_TRAP;
+-      mt7530_write(priv, MT753X_MTRAP, val);
++      /* Allow modifying the trap and directly access PHY registers via the
++       * MDIO bus the switch is on.
++       */
++      mt7530_rmw(priv, MT753X_MTRAP, MT7530_CHG_TRAP |
++                 MT7530_PHY_INDIRECT_ACCESS, MT7530_CHG_TRAP);
+       if ((val & MT7530_XTAL_MASK) == MT7530_XTAL_40MHZ)
+               mt7530_pll_setup(priv);
+@@ -2488,8 +2501,11 @@ mt7530_setup(struct dsa_switch *ds)
+                       break;
+               }
+-              if (priv->p5_mode == MUX_PHY_P0 || priv->p5_mode == MUX_PHY_P4)
++              if (priv->p5_mode == MUX_PHY_P0 ||
++                  priv->p5_mode == MUX_PHY_P4) {
++                      mt7530_clear(priv, MT753X_MTRAP, MT7530_P5_DIS);
+                       mt7530_setup_port5(ds, interface);
++              }
+       }
+ #ifdef CONFIG_GPIOLIB
similarity index 90%
rename from target/linux/generic/pending-6.6/745-08-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch
rename to target/linux/generic/backport-6.6/790-45-v6.10-net-dsa-mt7530-return-mt7530_setup_mdio-mt7531_setup.patch
index 3d16bf75d242d3c6b3ed2f1e2e5ae24a5892cee9..2eaa77c8cf6a62452140efff22700648b49f0881 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2651,7 +2651,9 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2667,7 +2667,9 @@ mt7531_setup(struct dsa_switch *ds)
                                         0);
        }
  
@@ -28,7 +28,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
  
        /* Setup VLAN ID 0 for VLAN-unaware bridges */
        ret = mt7530_setup_vlan0(priv);
-@@ -3004,6 +3006,8 @@ mt753x_setup(struct dsa_switch *ds)
+@@ -3020,6 +3022,8 @@ mt753x_setup(struct dsa_switch *ds)
        ret = mt7530_setup_mdio(priv);
        if (ret && priv->irq)
                mt7530_free_irq_common(priv);
similarity index 90%
rename from target/linux/generic/pending-6.6/745-09-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch
rename to target/linux/generic/backport-6.6/790-46-v6.10-net-dsa-mt7530-define-MAC-speed-capabilities-per-swi.patch
index 4e89bb2464aaa486155f5145dbf87569ab417b76..9a592c759d69a07aa3f7cc8f04e47acbe0532663 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2669,6 +2669,8 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2685,6 +2685,8 @@ mt7531_setup(struct dsa_switch *ds)
  static void mt7530_mac_port_get_caps(struct dsa_switch *ds, int port,
                                     struct phylink_config *config)
  {
@@ -33,7 +33,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        switch (port) {
        /* Ports which are connected to switch PHYs. There is no MII pinout. */
        case 0 ... 4:
-@@ -2700,6 +2702,8 @@ static void mt7531_mac_port_get_caps(str
+@@ -2716,6 +2718,8 @@ static void mt7531_mac_port_get_caps(str
  {
        struct mt7530_priv *priv = ds->priv;
  
@@ -42,7 +42,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        switch (port) {
        /* Ports which are connected to switch PHYs. There is no MII pinout. */
        case 0 ... 4:
-@@ -2739,14 +2743,17 @@ static void mt7988_mac_port_get_caps(str
+@@ -2755,14 +2759,17 @@ static void mt7988_mac_port_get_caps(str
        case 0 ... 3:
                __set_bit(PHY_INTERFACE_MODE_INTERNAL,
                          config->supported_interfaces);
@@ -62,7 +62,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
        }
  }
  
-@@ -2916,9 +2923,7 @@ static void mt753x_phylink_get_caps(stru
+@@ -2932,9 +2939,7 @@ static void mt753x_phylink_get_caps(stru
  {
        struct mt7530_priv *priv = ds->priv;
  
similarity index 94%
rename from target/linux/generic/pending-6.6/745-10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch
rename to target/linux/generic/backport-6.6/790-47-v6.10-net-dsa-mt7530-get-rid-of-function-sanity-check.patch
index df43224c4744d6893c98baba284e757f2327a18c..bc84ecb778d0ee786547af5f8a053bdfddf4e536 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -3216,13 +3216,6 @@ mt7530_probe_common(struct mt7530_priv *
+@@ -3232,13 +3232,6 @@ mt7530_probe_common(struct mt7530_priv *
        if (!priv->info)
                return -EINVAL;
  
similarity index 95%
rename from target/linux/generic/pending-6.1/795-11-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch
rename to target/linux/generic/backport-6.6/790-48-v6.10-net-dsa-mt7530-refactor-MT7530_PMEEECR_P.patch
index b1d08a74e311adc0839c6756521aae41963375e7..e75db9ba3040a72cd92d78b7c2db5065d89093ce 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -3032,10 +3032,10 @@ static int mt753x_get_mac_eee(struct dsa
+@@ -3051,10 +3051,10 @@ static int mt753x_get_mac_eee(struct dsa
                              struct ethtool_eee *e)
  {
        struct mt7530_priv *priv = ds->priv;
@@ -32,7 +32,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
  
        return 0;
  }
-@@ -3049,11 +3049,11 @@ static int mt753x_set_mac_eee(struct dsa
+@@ -3068,11 +3068,11 @@ static int mt753x_set_mac_eee(struct dsa
        if (e->tx_lpi_timer > 0xFFF)
                return -EINVAL;
  
similarity index 89%
rename from target/linux/generic/pending-6.1/795-13-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch
rename to target/linux/generic/backport-6.6/790-50-v6.10-net-dsa-mt7530-use-priv-ds-num_ports-instead-of-MT75.patch
index ce755567916d8632ce99f178327ec0f7ab8cb698..f63d4d7705d6e619f43d6f02214a98c2ea3f3c33 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -1391,7 +1391,7 @@ mt7530_port_set_vlan_unaware(struct dsa_
+@@ -1411,7 +1411,7 @@ mt7530_port_set_vlan_unaware(struct dsa_
        mt7530_rmw(priv, MT7530_PPBV1_P(port), G0_PORT_VID_MASK,
                   G0_PORT_VID_DEF);
  
@@ -28,7 +28,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                if (dsa_is_user_port(ds, i) &&
                    dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) {
                        all_user_ports_removed = false;
-@@ -2406,7 +2406,7 @@ mt7530_setup(struct dsa_switch *ds)
+@@ -2428,7 +2428,7 @@ mt7530_setup(struct dsa_switch *ds)
        /* Enable and reset MIB counters */
        mt7530_mib_reset(ds);
  
@@ -37,7 +37,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                /* Clear link settings and enable force mode to force link down
                 * on all ports until they're enabled later.
                 */
-@@ -2514,7 +2514,7 @@ mt7531_setup_common(struct dsa_switch *d
+@@ -2539,7 +2539,7 @@ mt7531_setup_common(struct dsa_switch *d
        mt7530_clear(priv, MT753X_MFC, BC_FFP_MASK | UNM_FFP_MASK |
                     UNU_FFP_MASK);
  
@@ -46,7 +46,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                /* Clear link settings and enable force mode to force link down
                 * on all ports until they're enabled later.
                 */
-@@ -2601,7 +2601,7 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2626,7 +2626,7 @@ mt7531_setup(struct dsa_switch *ds)
        priv->p5_sgmii = !!(val & PAD_DUAL_SGMII_EN);
  
        /* Force link down on all ports before internal reset */
similarity index 90%
rename from target/linux/generic/pending-6.6/745-14-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch
rename to target/linux/generic/backport-6.6/790-51-v6.10-net-dsa-mt7530-do-not-pass-port-variable-to-mt7531_r.patch
index 32919df0f2bd486ddc763793531cf543706296c0..9ba12b1269f1d25b1e7c572e32b6e6eaca9b61d3 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2769,7 +2769,7 @@ mt7530_mac_config(struct dsa_switch *ds,
+@@ -2785,7 +2785,7 @@ mt7530_mac_config(struct dsa_switch *ds,
                mt7530_setup_port6(priv->ds, interface);
  }
  
@@ -26,7 +26,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
                               phy_interface_t interface,
                               struct phy_device *phydev)
  {
-@@ -2820,7 +2820,7 @@ mt7531_mac_config(struct dsa_switch *ds,
+@@ -2836,7 +2836,7 @@ mt7531_mac_config(struct dsa_switch *ds,
        if (phy_interface_mode_is_rgmii(interface)) {
                dp = dsa_to_port(ds, port);
                phydev = dp->slave->phydev;
similarity index 95%
rename from target/linux/generic/pending-6.6/745-15-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch
rename to target/linux/generic/backport-6.6/790-52-v6.10-net-dsa-mt7530-explain-exposing-MDIO-bus-of-MT7531AE.patch
index 22cc625af8f598d2deab345348b736ecd75b33ad..58c3e0bc3ce671206deb1088dad1ed068c72f0e2 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
 
 --- a/drivers/net/dsa/mt7530.c
 +++ b/drivers/net/dsa/mt7530.c
-@@ -2619,7 +2619,10 @@ mt7531_setup(struct dsa_switch *ds)
+@@ -2635,7 +2635,10 @@ mt7531_setup(struct dsa_switch *ds)
        if (!priv->p5_sgmii) {
                mt7531_pll_setup(priv);
        } else {
diff --git a/target/linux/generic/pending-6.1/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch b/target/linux/generic/pending-6.1/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch
new file mode 100644 (file)
index 0000000..da3fd7c
--- /dev/null
@@ -0,0 +1,79 @@
+From patchwork Sat Apr 27 11:24:42 2024
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Patchwork-Submitter: =?utf-8?b?QXLEsW7DpyDDnE5BTCB2aWEgQjQgUmVsYXk=?=
+ <devnull+arinc.unal.arinc9.com@kernel.org>
+X-Patchwork-Id: 13645655
+From: =?utf-8?b?QXLEsW7DpyDDnE5BTCB2aWEgQjQgUmVsYXk=?=
+ <devnull+arinc.unal.arinc9.com@kernel.org>
+Date: Sat, 27 Apr 2024 14:24:42 +0300
+Subject: [PATCH net-next] net: dsa: mt7530: do not set MT7530_P5_DIS when
+ PHY muxing is being used
+Precedence: bulk
+X-Mailing-List: netdev@vger.kernel.org
+List-Id: <netdev.vger.kernel.org>
+List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org>
+List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org>
+MIME-Version: 1.0
+Message-Id: 
+ <20240427-for-netnext-mt7530-do-not-disable-port5-when-phy-muxing-v1-1-793cdf9d7707@arinc9.com>
+To: Daniel Golle <daniel@makrotopia.org>, DENG Qingfang <dqfext@gmail.com>,
+ Sean Wang <sean.wang@mediatek.com>, Andrew Lunn <andrew@lunn.ch>,
+ Florian Fainelli <f.fainelli@gmail.com>,
+ Vladimir Oltean <olteanv@gmail.com>,
+ "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
+ Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
+ Matthias Brugger <matthias.bgg@gmail.com>,
+ AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
+  linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org,
+       =?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>
+X-Mailer: b4 0.13.0
+X-Patchwork-Delegate: kuba@kernel.org
+
+From: Arınç ÜNAL <arinc.unal@arinc9.com>
+
+When the PHY muxing feature is in use, port 5 won't be defined in the
+device tree. Because of this, the type member of the dsa_port structure for
+this port will be assigned DSA_PORT_TYPE_UNUSED. The dsa_port_setup()
+function calls ds->ops->port_disable() when the port type is
+DSA_PORT_TYPE_UNUSED.
+
+The MT7530_P5_DIS bit is unset when PHY muxing is being used.
+mt7530_port_disable() which is assigned to ds->ops->port_disable() is
+called afterwards. Currently, mt7530_port_disable() sets MT7530_P5_DIS
+which breaks network connectivity when PHY muxing is being used.
+
+Therefore, do not set MT7530_P5_DIS when PHY muxing is being used.
+
+Fixes: 377174c5760c ("net: dsa: mt7530: move MT753X_MTRAP operations for MT7530")
+Reported-by: Daniel Golle <daniel@makrotopia.org>
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+---
+Hello.
+
+I've sent this to net-next as the patch it fixes is on the current
+development cycle.
+---
+ drivers/net/dsa/mt7530.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+
+---
+base-commit: 5c4c0edca68a5841a8d53ccd49596fe199c8334c
+change-id: 20240427-for-netnext-mt7530-do-not-disable-port5-when-phy-muxing-7ff5fd0995d7
+
+Best regards,
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -1213,7 +1213,7 @@ mt7530_port_disable(struct dsa_switch *d
+       if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
+               return;
+-      if (port == 5)
++      if (port == 5 && priv->p5_mode == GMAC5)
+               mt7530_set(priv, MT753X_MTRAP, MT7530_P5_DIS);
+       else if (port == 6)
+               mt7530_set(priv, MT753X_MTRAP, MT7530_P6_DIS);
diff --git a/target/linux/generic/pending-6.6/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch b/target/linux/generic/pending-6.6/795-01-net-dsa-mt7530-do-not-set-MT7530_P5_DIS-when-PHY-.patch
new file mode 100644 (file)
index 0000000..286c96e
--- /dev/null
@@ -0,0 +1,79 @@
+From patchwork Sat Apr 27 11:24:42 2024
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Patchwork-Submitter: =?utf-8?b?QXLEsW7DpyDDnE5BTCB2aWEgQjQgUmVsYXk=?=
+ <devnull+arinc.unal.arinc9.com@kernel.org>
+X-Patchwork-Id: 13645655
+From: =?utf-8?b?QXLEsW7DpyDDnE5BTCB2aWEgQjQgUmVsYXk=?=
+ <devnull+arinc.unal.arinc9.com@kernel.org>
+Date: Sat, 27 Apr 2024 14:24:42 +0300
+Subject: [PATCH net-next] net: dsa: mt7530: do not set MT7530_P5_DIS when
+ PHY muxing is being used
+Precedence: bulk
+X-Mailing-List: netdev@vger.kernel.org
+List-Id: <netdev.vger.kernel.org>
+List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org>
+List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org>
+MIME-Version: 1.0
+Message-Id: 
+ <20240427-for-netnext-mt7530-do-not-disable-port5-when-phy-muxing-v1-1-793cdf9d7707@arinc9.com>
+To: Daniel Golle <daniel@makrotopia.org>, DENG Qingfang <dqfext@gmail.com>,
+ Sean Wang <sean.wang@mediatek.com>, Andrew Lunn <andrew@lunn.ch>,
+ Florian Fainelli <f.fainelli@gmail.com>,
+ Vladimir Oltean <olteanv@gmail.com>,
+ "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
+ Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
+ Matthias Brugger <matthias.bgg@gmail.com>,
+ AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
+  linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org,
+       =?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>
+X-Mailer: b4 0.13.0
+X-Patchwork-Delegate: kuba@kernel.org
+
+From: Arınç ÜNAL <arinc.unal@arinc9.com>
+
+When the PHY muxing feature is in use, port 5 won't be defined in the
+device tree. Because of this, the type member of the dsa_port structure for
+this port will be assigned DSA_PORT_TYPE_UNUSED. The dsa_port_setup()
+function calls ds->ops->port_disable() when the port type is
+DSA_PORT_TYPE_UNUSED.
+
+The MT7530_P5_DIS bit is unset when PHY muxing is being used.
+mt7530_port_disable() which is assigned to ds->ops->port_disable() is
+called afterwards. Currently, mt7530_port_disable() sets MT7530_P5_DIS
+which breaks network connectivity when PHY muxing is being used.
+
+Therefore, do not set MT7530_P5_DIS when PHY muxing is being used.
+
+Fixes: 377174c5760c ("net: dsa: mt7530: move MT753X_MTRAP operations for MT7530")
+Reported-by: Daniel Golle <daniel@makrotopia.org>
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+---
+Hello.
+
+I've sent this to net-next as the patch it fixes is on the current
+development cycle.
+---
+ drivers/net/dsa/mt7530.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+
+---
+base-commit: 5c4c0edca68a5841a8d53ccd49596fe199c8334c
+change-id: 20240427-for-netnext-mt7530-do-not-disable-port5-when-phy-muxing-7ff5fd0995d7
+
+Best regards,
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -1220,7 +1220,7 @@ mt7530_port_disable(struct dsa_switch *d
+       if (priv->id != ID_MT7530 && priv->id != ID_MT7621)
+               return;
+-      if (port == 5)
++      if (port == 5 && priv->p5_mode == GMAC5)
+               mt7530_set(priv, MT753X_MTRAP, MT7530_P5_DIS);
+       else if (port == 6)
+               mt7530_set(priv, MT753X_MTRAP, MT7530_P6_DIS);