treewide: remove files for building 5.10 kernel
[openwrt/openwrt.git] / target / linux / generic / backport-5.10 / 784-v5.12-r8152-replace-several-functions-about-phy-patch-requ.patch
diff --git a/target/linux/generic/backport-5.10/784-v5.12-r8152-replace-several-functions-about-phy-patch-requ.patch b/target/linux/generic/backport-5.10/784-v5.12-r8152-replace-several-functions-about-phy-patch-requ.patch
deleted file mode 100644 (file)
index 759a09a..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-From 86b98abf4f8c691c260c5113d6a2d32f5377caca Mon Sep 17 00:00:00 2001
-From: Hayes Wang <hayeswang@realtek.com>
-Date: Wed, 3 Feb 2021 17:14:28 +0800
-Subject: [PATCH] r8152: replace several functions about phy patch
- request
-
-commit a08c0d309d8c078d22717d815cf9853f6f2c07bd upstream.
-
-Replace r8153_patch_request() with rtl_phy_patch_request().
-Replace r8153_pre_ram_code() with rtl_pre_ram_code().
-Replace r8153_post_ram_code() with rtl_post_ram_code().
-Add rtl_patch_key_set().
-
-The new functions have an additional parameter. It is used to wait
-the patch request command finished. When the PHY is resumed from
-the state of power cut, the PHY is at a safe mode and the
-OCP_PHY_PATCH_STAT wouldn't be updated. For this situation, it is
-safe to set patch request command without waiting OCP_PHY_PATCH_STAT.
-
-Signed-off-by: Hayes Wang <hayeswang@realtek.com>
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/usb/r8152.c | 84 ++++++++++++++++++++++++-----------------
- 1 file changed, 50 insertions(+), 34 deletions(-)
-
---- a/drivers/net/usb/r8152.c
-+++ b/drivers/net/usb/r8152.c
-@@ -3445,59 +3445,76 @@ static void rtl_clear_bp(struct r8152 *t
-       ocp_write_word(tp, type, PLA_BP_BA, 0);
- }
--static int r8153_patch_request(struct r8152 *tp, bool request)
-+static int rtl_phy_patch_request(struct r8152 *tp, bool request, bool wait)
- {
--      u16 data;
-+      u16 data, check;
-       int i;
-       data = ocp_reg_read(tp, OCP_PHY_PATCH_CMD);
--      if (request)
-+      if (request) {
-               data |= PATCH_REQUEST;
--      else
-+              check = 0;
-+      } else {
-               data &= ~PATCH_REQUEST;
-+              check = PATCH_READY;
-+      }
-       ocp_reg_write(tp, OCP_PHY_PATCH_CMD, data);
--      for (i = 0; request && i < 5000; i++) {
-+      for (i = 0; wait && i < 5000; i++) {
-+              u32 ocp_data;
-+
-               usleep_range(1000, 2000);
--              if (ocp_reg_read(tp, OCP_PHY_PATCH_STAT) & PATCH_READY)
-+              ocp_data = ocp_reg_read(tp, OCP_PHY_PATCH_STAT);
-+              if ((ocp_data & PATCH_READY) ^ check)
-                       break;
-       }
--      if (request && !(ocp_reg_read(tp, OCP_PHY_PATCH_STAT) & PATCH_READY)) {
--              netif_err(tp, drv, tp->netdev, "patch request fail\n");
--              r8153_patch_request(tp, false);
-+      if (request && wait &&
-+          !(ocp_reg_read(tp, OCP_PHY_PATCH_STAT) & PATCH_READY)) {
-+              dev_err(&tp->intf->dev, "PHY patch request fail\n");
-+              rtl_phy_patch_request(tp, false, false);
-               return -ETIME;
-       } else {
-               return 0;
-       }
- }
--static int r8153_pre_ram_code(struct r8152 *tp, u16 key_addr, u16 patch_key)
-+static void rtl_patch_key_set(struct r8152 *tp, u16 key_addr, u16 patch_key)
- {
--      if (r8153_patch_request(tp, true)) {
--              dev_err(&tp->intf->dev, "patch request fail\n");
--              return -ETIME;
--      }
-+      if (patch_key && key_addr) {
-+              sram_write(tp, key_addr, patch_key);
-+              sram_write(tp, SRAM_PHY_LOCK, PHY_PATCH_LOCK);
-+      } else if (key_addr) {
-+              u16 data;
--      sram_write(tp, key_addr, patch_key);
--      sram_write(tp, SRAM_PHY_LOCK, PHY_PATCH_LOCK);
-+              sram_write(tp, 0x0000, 0x0000);
--      return 0;
-+              data = ocp_reg_read(tp, OCP_PHY_LOCK);
-+              data &= ~PATCH_LOCK;
-+              ocp_reg_write(tp, OCP_PHY_LOCK, data);
-+
-+              sram_write(tp, key_addr, 0x0000);
-+      } else {
-+              WARN_ON_ONCE(1);
-+      }
- }
--static int r8153_post_ram_code(struct r8152 *tp, u16 key_addr)
-+static int
-+rtl_pre_ram_code(struct r8152 *tp, u16 key_addr, u16 patch_key, bool wait)
- {
--      u16 data;
-+      if (rtl_phy_patch_request(tp, true, wait))
-+              return -ETIME;
--      sram_write(tp, 0x0000, 0x0000);
-+      rtl_patch_key_set(tp, key_addr, patch_key);
--      data = ocp_reg_read(tp, OCP_PHY_LOCK);
--      data &= ~PATCH_LOCK;
--      ocp_reg_write(tp, OCP_PHY_LOCK, data);
-+      return 0;
-+}
--      sram_write(tp, key_addr, 0x0000);
-+static int rtl_post_ram_code(struct r8152 *tp, u16 key_addr, bool wait)
-+{
-+      rtl_patch_key_set(tp, key_addr, 0);
--      r8153_patch_request(tp, false);
-+      rtl_phy_patch_request(tp, false, wait);
-       ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, tp->ocp_base);
-@@ -3982,7 +3999,7 @@ static void rtl8152_fw_mac_apply(struct
-       dev_dbg(&tp->intf->dev, "successfully applied %s\n", mac->info);
- }
--static void rtl8152_apply_firmware(struct r8152 *tp)
-+static void rtl8152_apply_firmware(struct r8152 *tp, bool power_cut)
- {
-       struct rtl_fw *rtl_fw = &tp->rtl_fw;
-       const struct firmware *fw;
-@@ -4013,12 +4030,11 @@ static void rtl8152_apply_firmware(struc
-               case RTL_FW_PHY_START:
-                       key = (struct fw_phy_patch_key *)block;
-                       key_addr = __le16_to_cpu(key->key_reg);
--                      r8153_pre_ram_code(tp, key_addr,
--                                         __le16_to_cpu(key->key_data));
-+                      rtl_pre_ram_code(tp, key_addr, __le16_to_cpu(key->key_data), !power_cut);
-                       break;
-               case RTL_FW_PHY_STOP:
-                       WARN_ON(!key_addr);
--                      r8153_post_ram_code(tp, key_addr);
-+                      rtl_post_ram_code(tp, key_addr, !power_cut);
-                       break;
-               case RTL_FW_PHY_NC:
-                       rtl8152_fw_phy_nc_apply(tp, (struct fw_phy_nc *)block);
-@@ -4223,7 +4239,7 @@ static void rtl8152_disable(struct r8152
- static void r8152b_hw_phy_cfg(struct r8152 *tp)
- {
--      rtl8152_apply_firmware(tp);
-+      rtl8152_apply_firmware(tp, false);
-       rtl_eee_enable(tp, tp->eee_en);
-       r8152_aldps_en(tp, true);
-       r8152b_enable_fc(tp);
-@@ -4505,7 +4521,7 @@ static void r8153_hw_phy_cfg(struct r815
-       /* disable EEE before updating the PHY parameters */
-       rtl_eee_enable(tp, false);
--      rtl8152_apply_firmware(tp);
-+      rtl8152_apply_firmware(tp, false);
-       if (tp->version == RTL_VER_03) {
-               data = ocp_reg_read(tp, OCP_EEE_CFG);
-@@ -4579,7 +4595,7 @@ static void r8153b_hw_phy_cfg(struct r81
-       /* disable EEE before updating the PHY parameters */
-       rtl_eee_enable(tp, false);
--      rtl8152_apply_firmware(tp);
-+      rtl8152_apply_firmware(tp, false);
-       r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags));
-@@ -4620,7 +4636,7 @@ static void r8153b_hw_phy_cfg(struct r81
-       ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data);
-       /* Advnace EEE */
--      if (!r8153_patch_request(tp, true)) {
-+      if (!rtl_phy_patch_request(tp, true, true)) {
-               data = ocp_reg_read(tp, OCP_POWER_CFG);
-               data |= EEE_CLKDIV_EN;
-               ocp_reg_write(tp, OCP_POWER_CFG, data);
-@@ -4637,7 +4653,7 @@ static void r8153b_hw_phy_cfg(struct r81
-               ocp_reg_write(tp, OCP_SYSCLK_CFG, clk_div_expo(5));
-               tp->ups_info._250m_ckdiv = true;
--              r8153_patch_request(tp, false);
-+              rtl_phy_patch_request(tp, false, true);
-       }
-       if (tp->eee_en)