kernel: bump 5.15 to 5.15.103
[openwrt/openwrt.git] / target / linux / generic / backport-5.15 / 704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch
index 368db4cca26ddbf6cf36051eb082009e02220cef..337c6112d66f68053c2055f9d47b02e6f54b4466 100644 (file)
@@ -25,27 +25,22 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        /* MT76x8 has no hardware settings between for the MAC */
        if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
-@@ -455,16 +455,6 @@ static void mtk_mac_config(struct phylin
+@@ -455,6 +455,25 @@ static void mtk_mac_config(struct phylin
                return;
        }
  
--      /* Setup gmac */
--      mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
--      mcr_new = mcr_cur;
--      mcr_new |= MAC_MCR_IPG_CFG | MAC_MCR_FORCE_MODE |
--                 MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_FORCE_LINK;
--
--      /* Only update control register when needed! */
--      if (mcr_new != mcr_cur)
--              mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
--
-       return;
- err_phy:
-@@ -477,6 +467,26 @@ init_err:
-               mac->id, phy_modes(state->interface), err);
- }
++      return;
++
++err_phy:
++      dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__,
++              mac->id, phy_modes(state->interface));
++      return;
++
++init_err:
++      dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__,
++              mac->id, phy_modes(state->interface), err);
++}
++
 +static int mtk_mac_finish(struct phylink_config *config, unsigned int mode,
 +                        phy_interface_t interface)
 +{
@@ -53,23 +48,28 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 +                                         phylink_config);
 +      u32 mcr_cur, mcr_new;
 +
-+      /* Setup gmac */
-+      mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
-+      mcr_new = mcr_cur;
-+      mcr_new |= MAC_MCR_IPG_CFG | MAC_MCR_FORCE_MODE |
-+                 MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_FORCE_LINK;
-+
-+      /* Only update control register when needed! */
-+      if (mcr_new != mcr_cur)
-+              mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
-+
+       /* Setup gmac */
+       mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
+       mcr_new = mcr_cur;
+@@ -466,16 +485,7 @@ static void mtk_mac_config(struct phylin
+       if (mcr_new != mcr_cur)
+               mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
+-      return;
+-
+-err_phy:
+-      dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__,
+-              mac->id, phy_modes(state->interface));
+-      return;
+-
+-init_err:
+-      dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__,
+-              mac->id, phy_modes(state->interface), err);
 +      return 0;
-+}
-+
+ }
  static void mtk_mac_pcs_get_state(struct phylink_config *config,
-                                 struct phylink_link_state *state)
- {
-@@ -581,6 +591,7 @@ static const struct phylink_mac_ops mtk_
+@@ -582,6 +592,7 @@ static const struct phylink_mac_ops mtk_
        .mac_pcs_get_state = mtk_mac_pcs_get_state,
        .mac_an_restart = mtk_mac_an_restart,
        .mac_config = mtk_mac_config,