Update hw configurations as below:
8125a's mac mcu,
8125b's mac mcu,
8125bp's mac mcu,
8125cp's phy config, mac mcu and phy mcu,
8125d's phy config, mac mcu and phy mcu.

Signed-off-by: Howard Wang <[email protected]>
---
 drivers/net/r8169/base/rtl8125a_mcu.c  | 128 ++-----
 drivers/net/r8169/base/rtl8125b_mcu.c  |  56 ++-
 drivers/net/r8169/base/rtl8125bp_mcu.c |  17 +-
 drivers/net/r8169/base/rtl8125cp.c     |  36 ++
 drivers/net/r8169/base/rtl8125cp_mcu.c |  87 ++++-
 drivers/net/r8169/base/rtl8125cp_mcu.h |   1 +
 drivers/net/r8169/base/rtl8125d.c      |   9 +
 drivers/net/r8169/base/rtl8125d_mcu.c  | 506 +++++++++++++++----------
 drivers/net/r8169/r8169_hw.c           |   4 +-
 drivers/net/r8169/r8169_hw.h           |   4 +-
 10 files changed, 514 insertions(+), 334 deletions(-)

diff --git a/drivers/net/r8169/base/rtl8125a_mcu.c 
b/drivers/net/r8169/base/rtl8125a_mcu.c
index b810787daa..9fd1d59541 100644
--- a/drivers/net/r8169/base/rtl8125a_mcu.c
+++ b/drivers/net/r8169/base/rtl8125a_mcu.c
@@ -15,103 +15,53 @@ void
 rtl_set_mac_mcu_8125a_2(struct rtl_hw *hw)
 {
        u16 entry_cnt;
-       static const u16 mcu_patch_code_8125a_2[] = {
-               0xE010, 0xE012, 0xE022, 0xE024, 0xE029, 0xE02B, 0xE094, 0xE09D, 
0xE09F,
-               0xE0AA, 0xE0B5, 0xE0C6, 0xE0CC, 0xE0D1, 0xE0D6, 0xE0D8, 0xC602, 
0xBE00,
-               0x0000, 0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608, 0xB406, 
0xC609,
-               0xFF80, 0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568, 0xE906, 
0xCDE8,
-               0xC602, 0xBE00, 0x0000, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 
0x0A12,
-               0xC602, 0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 
0x75C8,
-               0x49D5, 0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 
0x75D2,
-               0x49D9, 0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 
0x4858,
-               0x48DA, 0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 
0x9DC8,
-               0x75D2, 0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D0, 
0xF137,
-               0xE030, 0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 
0xF00A,
-               0x49D8, 0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 
0xF125,
-               0xC528, 0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 
0x48DA,
+       static const u16 mcu_patch_code[] = {
+               0xE010, 0xE062, 0xE072, 0xE074, 0xE079, 0xE07B, 0xE0E4, 0xE0ED, 
0xE0EF,
+               0xE0FA, 0xE105, 0xE116, 0xE11C, 0xE121, 0xE126, 0xE12A, 0xB400, 
0xB401,
+               0xB402, 0xB403, 0xB404, 0xB405, 0xC03F, 0x7206, 0x49AE, 0xF1FE, 
0xC13C,
+               0x9904, 0xC13B, 0x9906, 0x7206, 0x49AE, 0xF1FE, 0x7200, 0x49A0, 
0xF10D,
+               0xC534, 0xC133, 0xC238, 0xC338, 0xE817, 0xC337, 0xE815, 0xC336, 
0xE813,
+               0xC335, 0xE811, 0xE01B, 0xC129, 0xC22D, 0xC528, 0xC32C, 0xE80B, 
0xC526,
+               0xC32A, 0xE808, 0xC524, 0xC328, 0xE805, 0xC522, 0xC326, 0xE802, 
0xE00C,
+               0x740E, 0x49CE, 0xF1FE, 0x9908, 0x9D0A, 0x9A0C, 0x9B0E, 0x740E, 
0x49CE,
+               0xF1FE, 0xFF80, 0xB005, 0xB004, 0xB003, 0xB002, 0xB001, 0xB000, 
0xC604,
+               0xC002, 0xB800, 0x3044, 0xE000, 0xE8E0, 0xF128, 0x0002, 0xFFFF, 
0x10EC,
+               0x816A, 0x816F, 0x8164, 0x816D, 0xF000, 0x8001, 0x8002, 0x8003, 
0x8004,
+               0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608, 0xB406, 0xC609, 
0xFF80,
+               0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568, 0xE906, 0xCDE8, 
0xC602,
+               0xBE00, 0x0000, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x0A12, 
0xC602,
+               0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 0x75C8, 
0x49D5,
+               0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2, 
0x49D9,
+               0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 
0x48DA,
                0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 
0x75D2,
-               0x4859, 0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 
0x49DA,
-               0xF003, 0x49D0, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 
0x9DC0,
-               0xC608, 0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 
0xE86C,
-               0x1200, 0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 
0x10AA,
-               0xC010, 0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 
0x9C0A,
-               0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 
0x72CA,
-               0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 
0xBE00,
-               0x07DC, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 
0x48C7,
-               0x9CCA, 0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 
0xE092,
-               0xE0C0, 0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 
0x12F8,
-               0x1BFF, 0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 
0x1BFF,
-               0xC102, 0xB900, 0x0E2A, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x6486,
-               0x0B15, 0x090E, 0x1139
+               0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D1, 0xF137, 
0xE030,
+               0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 0xF00A, 
0x49D8,
+               0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 0xF125, 
0xC528,
+               0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA, 
0x48DB,
+               0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 0x75D2, 
0x4859,
+               0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 0x49DA, 
0xF003,
+               0x49D1, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 0x9DC0, 
0xC608,
+               0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 0xE86C, 
0x1200,
+               0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 0x10AA, 
0xC010,
+               0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 0x9C0A, 
0xC607,
+               0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 0x72CA, 
0x4826,
+               0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 0xBE00, 
0x07DC,
+               0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 0x48C7, 
0x9CCA,
+               0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 0xE092, 
0xE0C0,
+               0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 0x12F8, 
0x1BFF,
+               0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 0x1BFF, 
0xC102,
+               0xB900, 0x0E2A, 0xC104, 0xC202, 0xBA00, 0x21DE, 0xD116, 0xC602, 
0xBE00,
+               0x0000, 0x6486, 0x0119, 0x0606, 0x1327
        };
 
-       entry_cnt = ARRAY_SIZE(mcu_patch_code_8125a_2);
+       entry_cnt = ARRAY_SIZE(mcu_patch_code);
 
        /* Get BIN mac mcu patch code version */
-       hw->bin_mcu_patch_code_ver = 
rtl_get_bin_mcu_patch_code_ver(mcu_patch_code_8125a_2,
+       hw->bin_mcu_patch_code_ver = 
rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
                                                                    entry_cnt);
 
        if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
-               rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125a_2, 
entry_cnt);
+               rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
 
        rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
 
diff --git a/drivers/net/r8169/base/rtl8125b_mcu.c 
b/drivers/net/r8169/base/rtl8125b_mcu.c
index afc17707ec..db3b368b64 100644
--- a/drivers/net/r8169/base/rtl8125b_mcu.c
+++ b/drivers/net/r8169/base/rtl8125b_mcu.c
@@ -14,9 +14,10 @@
 void
 rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
 {
-       static const u16 mcu_patch_code_8125b_2[] = {
-               0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE060, 
0xE062,
-               0xE064, 0xE066, 0xE068, 0xE06A, 0xE06C, 0xE06E, 0xE070, 0x740A, 
0x4846,
+       u16 entry_cnt;
+       static const u16 mcu_patch_code[] = {
+               0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE060, 
0xE0B6,
+               0xE103, 0xE14C, 0xE150, 0xE153, 0xE156, 0xE158, 0xE15A, 0x740A, 
0x4846,
                0x4847, 0x9C0A, 0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 
0x13F0,
                0xE054, 0x72CA, 0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 
0x9AC0,
                0xC602, 0xBE00, 0x081C, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 
0xC60C,
@@ -26,14 +27,46 @@ rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
                0x3168, 0x3ADA, 0x31AB, 0x1A00, 0x9AC0, 0x1300, 0xF1FB, 0x7620, 
0x236E,
                0x276F, 0x1A3C, 0x22A1, 0x41B5, 0x9EE2, 0x76E4, 0x486F, 0x9EE4, 
0xC602,
                0xBE00, 0x4A26, 0x733A, 0x49BB, 0xC602, 0xBE00, 0x47A2, 0x48C1, 
0x48C2,
-               0x9C46, 0xC402, 0xBC00, 0x0A52, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC602, 0xBE00, 0x0000
+               0x9C46, 0xC402, 0xBC00, 0x0A52, 0xC74B, 0x76E2, 0xC54A, 0x402E, 
0xF034,
+               0x76E0, 0x402E, 0xF006, 0xC703, 0xC403, 0xBC00, 0xC0BC, 0x0980, 
0x76F0,
+               0x1601, 0xF023, 0xC741, 0x1E04, 0x9EE0, 0x1E40, 0x9EE4, 0xC63D, 
0x9EE8,
+               0xC73D, 0x76E0, 0x4863, 0x9EE0, 0xC73A, 0x76E0, 0x48EA, 0x48EB, 
0x9EE0,
+               0xC736, 0x1E01, 0x9EE2, 0xC72D, 0x76E0, 0x486F, 0x9EE0, 0xC72D, 
0x76E0,
+               0x48E3, 0x9EE0, 0xC728, 0x1E0E, 0x9EE0, 0xC71D, 0x1E01, 0x9EE4, 
0xE00D,
+               0x1E00, 0x9EF0, 0x1E05, 0xC715, 0x9EE0, 0xE00A, 0x1E00, 0x9EE2, 
0xC614,
+               0x75CC, 0x48D2, 0x9DCC, 0x1E04, 0xC70B, 0x9EE0, 0xB000, 0xB001, 
0xB002,
+               0xB003, 0xB004, 0xB005, 0xB006, 0xB007, 0xFFC0, 0xE428, 0xD3C0, 
0xBEEF,
+               0x473E, 0xDC46, 0xE0CC, 0xE84E, 0xC0A2, 0x0100, 0xC010, 0xE85A, 
0xE812,
+               0xC0B4, 0xC5F4, 0x74A0, 0xC6F3, 0x4026, 0xF107, 0x74A2, 0xC6EF, 
0x4026,
+               0xF107, 0xC6ED, 0xBE00, 0x753A, 0xC602, 0xBE00, 0x462E, 0x7520, 
0x49DE,
+               0xF102, 0xE7F9, 0xC6A1, 0x67C6, 0x7520, 0x22D2, 0x26DD, 0x1500, 
0xF002,
+               0xE7F1, 0x7532, 0x26D5, 0x0530, 0x0D6C, 0xC42D, 0x308D, 0x7540, 
0x4025,
+               0xF11E, 0x7542, 0x4025, 0xF11B, 0x7544, 0x4025, 0xF118, 0xC423, 
0x7546,
+               0x4025, 0xF114, 0x7548, 0x4025, 0xF111, 0x754A, 0x4025, 0xF10E, 
0xC5C0,
+               0xC4C0, 0x9CA2, 0xC6C0, 0x75CC, 0x4852, 0x9DCC, 0xC6B8, 0x1D7D, 
0x9DC2,
+               0x1D01, 0x9DC0, 0xE7C9, 0xC40B, 0x7546, 0x4025, 0xF1FC, 0x7548, 
0x4025,
+               0xF1F9, 0x754A, 0x4025, 0xF1F6, 0xE7C0, 0xFFFF, 0xEEEE, 0xC2A6, 
0x7340,
+               0xC2A5, 0x4013, 0xF013, 0xC2AC, 0x7340, 0x4835, 0x9B40, 0xC240, 
0x7358,
+               0x48B7, 0x48B2, 0x9B58, 0x7346, 0x48B7, 0x48B2, 0x9B46, 0x7340, 
0x48B7,
+               0x48B2, 0x9B40, 0xE012, 0xC29A, 0x7340, 0x48B5, 0x9B40, 0xC22E, 
0x7358,
+               0x4837, 0x4832, 0x9B58, 0x7346, 0x4837, 0x4832, 0x9B46, 0x7340, 
0x4837,
+               0x4832, 0x9B40, 0xC283, 0x7340, 0x49BF, 0xF010, 0xC21B, 0x7344, 
0x1300,
+               0xF104, 0x1B00, 0xC217, 0x9B40, 0x1B01, 0xC213, 0x9B44, 0xC213, 
0x734C,
+               0x48B7, 0x9B4C, 0xE008, 0xC20C, 0x1B00, 0x9B44, 0xC20B, 0x734C, 
0x4837,
+               0x9B4C, 0xC204, 0xC302, 0xBB00, 0x2230, 0xE092, 0xD3C0, 0xE428, 
0xDC46,
+               0xC104, 0xC202, 0xBA00, 0x21F8, 0xD116, 0x49D1, 0xC602, 0xBE00, 
0x3E7A,
+               0x49D1, 0xC602, 0xBE00, 0x3EDA, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
+               0x0000, 0xC602, 0xBE00, 0x0000, 0x6637, 0x0119, 0x0604, 0x1203
        };
 
-       rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125b_2,
-                                  ARRAY_SIZE(mcu_patch_code_8125b_2));
+       entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+       /* Get BIN mac mcu patch code version */
+       hw->bin_mcu_patch_code_ver = 
rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+                                                                   entry_cnt);
+
+       if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+               rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
 
        rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
 
@@ -43,8 +76,11 @@ rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
        rtl_mac_ocp_write(hw, 0xFC2E, 0x12DA);
        rtl_mac_ocp_write(hw, 0xFC30, 0x4A20);
        rtl_mac_ocp_write(hw, 0xFC32, 0x47A0);
+       rtl_mac_ocp_write(hw, 0xFC3C, 0x21F6);
+       rtl_mac_ocp_write(hw, 0xFC3E, 0x3E78);
+       rtl_mac_ocp_write(hw, 0xFC40, 0x3ED8);
 
-       rtl_mac_ocp_write(hw, 0xFC48, 0x003F);
+       rtl_mac_ocp_write(hw, 0xFC48, 0x1C7B);
 }
 
 /* ------------------------------------PHY 
8125B--------------------------------------- */
diff --git a/drivers/net/r8169/base/rtl8125bp_mcu.c 
b/drivers/net/r8169/base/rtl8125bp_mcu.c
index 2a9d0a3d48..a591988657 100644
--- a/drivers/net/r8169/base/rtl8125bp_mcu.c
+++ b/drivers/net/r8169/base/rtl8125bp_mcu.c
@@ -59,8 +59,8 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
 {
        u16 entry_cnt;
        static const u16 mcu_patch_code[] = {
-               0xE010, 0xE033, 0xE046, 0xE04A, 0xE04D, 0xE050, 0xE052, 0xE054, 
0xE056,
-               0xE058, 0xE05A, 0xE05C, 0xE05E, 0xE060, 0xE062, 0xE064, 0xB406, 
0x1000,
+               0xE010, 0xE033, 0xE046, 0xE04A, 0xE04D, 0xE050, 0xE054, 0xE056, 
0xE058,
+               0xE05A, 0xE05C, 0xE05E, 0xE060, 0xE062, 0xE064, 0xE066, 0xB406, 
0x1000,
                0xF016, 0xC61F, 0x400E, 0xF012, 0x218E, 0x25BE, 0x1300, 0xF007, 
0x7340,
                0xC618, 0x400E, 0xF102, 0x48B0, 0x8320, 0xB400, 0x2402, 0x1000, 
0xF003,
                0x7342, 0x8322, 0xB000, 0xE007, 0x7322, 0x9B42, 0x7320, 0x9B40, 
0x0300,
@@ -68,11 +68,11 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
                0xF00A, 0xC20F, 0x400A, 0xF007, 0x73A4, 0xC20C, 0x400A, 0xF102, 
0x48B0,
                0x9B20, 0x1B00, 0x9BA0, 0xC602, 0xBE00, 0x4392, 0xE6E0, 0xE6E2, 
0xC01C,
                0x4166, 0x9CF6, 0xC002, 0xB800, 0x143C, 0x49D1, 0xC602, 0xBE00, 
0x3FC4,
-               0x49D1, 0xC602, 0xBE00, 0x405A, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC102, 0xB900, 0x0000, 0xC002, 0xB800, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 
0xBE00,
-               0x0000, 0x6936, 0x0B18, 0x0C02, 0x0D22
+               0x49D1, 0xC602, 0xBE00, 0x405A, 0xC104, 0xC202, 0xBA00, 0x22E6, 
0xD116,
+               0xC602, 0xBE00, 0x0000, 0xC102, 0xB900, 0x0000, 0xC002, 0xB800, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0x6936, 0x0119, 0x030E, 0x0B18
        };
 
        entry_cnt = ARRAY_SIZE(mcu_patch_code);
@@ -91,8 +91,9 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
        rtl_mac_ocp_write(hw, 0xFC2C, 0x143A);
        rtl_mac_ocp_write(hw, 0xFC2E, 0x3FC2);
        rtl_mac_ocp_write(hw, 0xFC30, 0x4058);
+       rtl_mac_ocp_write(hw, 0xFC32, 0x22E4);
 
-       rtl_mac_ocp_write(hw, 0xFC48, 0x001F);
+       rtl_mac_ocp_write(hw, 0xFC48, 0x003F);
 }
 
 /* ------------------------------------PHY 
8125BP--------------------------------------- */
diff --git a/drivers/net/r8169/base/rtl8125cp.c 
b/drivers/net/r8169/base/rtl8125cp.c
index aabee94f4c..9309b20def 100644
--- a/drivers/net/r8169/base/rtl8125cp.c
+++ b/drivers/net/r8169/base/rtl8125cp.c
@@ -26,13 +26,40 @@ hw_ephy_config_8125cp(struct rtl_hw *hw)
        }
 }
 
+static void
+rtl_tgphy_irq_mask_and_ack(struct rtl_hw *hw)
+{
+       if (hw->mcfg == CFG_METHOD_58) {
+               rtl_mdio_direct_write_phy_ocp(hw, 0xA4D2, 0x0000);
+               (void)rtl_mdio_direct_read_phy_ocp(hw, 0xA4D4);
+       }
+}
+
 static void
 rtl_hw_phy_config_8125cp_1(struct rtl_hw *hw)
 {
+       rtl_tgphy_irq_mask_and_ack(hw);
+
        rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_11);
 
        rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xad0e, 0x007F, 0x000B);
        rtl_set_eth_phy_ocp_bit(hw, 0xad78, BIT_4);
+
+       rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x807F);
+       rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x5300);
+
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81B8);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x00B4);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81BA);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x00E4);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81C5);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x0104);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81D0);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x054D);
+
+       rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_1 | BIT_0);
+       rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_7);
+       rtl_clear_eth_phy_ocp_bit(hw, 0xA430, BIT_12);
 }
 
 static void
@@ -52,6 +79,15 @@ hw_mac_mcu_config_8125cp(struct rtl_hw *hw)
                return;
 
        rtl_hw_disable_mac_mcu_bps(hw);
+
+       /* Get H/W mac mcu patch code version */
+       hw->hw_mcu_patch_code_ver = rtl_get_hw_mcu_patch_code_ver(hw);
+
+       switch (hw->mcfg) {
+       case CFG_METHOD_58:
+               rtl_set_mac_mcu_8125cp_1(hw);
+               break;
+       }
 }
 
 static void
diff --git a/drivers/net/r8169/base/rtl8125cp_mcu.c 
b/drivers/net/r8169/base/rtl8125cp_mcu.c
index e4609f46de..e52027ee23 100644
--- a/drivers/net/r8169/base/rtl8125cp_mcu.c
+++ b/drivers/net/r8169/base/rtl8125cp_mcu.c
@@ -11,7 +11,34 @@
 
 /* ------------------------------------MAC 
8125CP------------------------------------- */
 
-/* No mac mcu patch code */
+void
+rtl_set_mac_mcu_8125cp_1(struct rtl_hw *hw)
+{
+       u16 entry_cnt;
+       static const u16 mcu_patch_code[] = {
+               0xE010, 0xE014, 0xE016, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 
0xE022,
+               0xE024, 0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xC104, 
0xC202,
+               0xBA00, 0x2438, 0xD116, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 
0x0000,
+               0xC602, 0xBE00, 0x0000, 0x7023, 0x0019, 0x031A, 0x0E20
+       };
+
+       entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+       /* Get BIN mac mcu patch code version */
+       hw->bin_mcu_patch_code_ver = 
rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+                                                                   entry_cnt);
+
+       if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+               rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
+
+       rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+       rtl_mac_ocp_write(hw, 0xFC28, 0x2436);
+       rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
+}
 
 /* ------------------------------------PHY 
8125CP------------------------------------- */
 
@@ -28,9 +55,9 @@ static const u16 phy_mcu_ram_code_8125cp_1_1[] = {
        0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
        0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
        0xa438, 0x801b, 0xa438, 0x1800, 0xa438, 0x802b, 0xa438, 0x1800,
-       0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8031, 0xa438, 0x1800,
-       0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8031, 0xa438, 0x1800,
-       0xa438, 0x8031, 0xa438, 0x800a, 0xa438, 0x8530, 0xa438, 0x0c03,
+       0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8037, 0xa438, 0x1800,
+       0xa438, 0x8085, 0xa438, 0x1800, 0xa438, 0x8085, 0xa438, 0x1800,
+       0xa438, 0x8085, 0xa438, 0x800a, 0xa438, 0x8530, 0xa438, 0x0c03,
        0xa438, 0x1502, 0xa438, 0x8d10, 0xa438, 0x9503, 0xa438, 0xd700,
        0xa438, 0x6050, 0xa438, 0xaa20, 0xa438, 0x1800, 0xa438, 0x0d53,
        0xa438, 0xd707, 0xa438, 0x40f6, 0xa438, 0x8901, 0xa438, 0xd704,
@@ -38,26 +65,52 @@ static const u16 phy_mcu_ram_code_8125cp_1_1[] = {
        0xa438, 0x1000, 0xa438, 0x0e4d, 0xa438, 0x1000, 0xa438, 0x1277,
        0xa438, 0xd704, 0xa438, 0x7e77, 0xa438, 0x1800, 0xa438, 0x0dc5,
        0xa438, 0xd700, 0xa438, 0x4063, 0xa438, 0x1800, 0xa438, 0x0d15,
-       0xa438, 0x1800, 0xa438, 0x0d18, 0xa436, 0xA10E, 0xa438, 0xffff,
+       0xa438, 0x1800, 0xa438, 0x0d18, 0xa438, 0xd700, 0xa438, 0x6063,
+       0xa438, 0x1800, 0xa438, 0x0ca6, 0xa438, 0x1800, 0xa438, 0x0ca7,
+       0xa438, 0xd700, 0xa438, 0x6123, 0xa438, 0x1000, 0xa438, 0x1224,
+       0xa438, 0xcd84, 0xa438, 0xd706, 0xa438, 0x6159, 0xa438, 0xd700,
+       0xa438, 0x611c, 0xa438, 0xfff9, 0xa438, 0x1000, 0xa438, 0x1224,
+       0xa438, 0xcd84, 0xa438, 0xd700, 0xa438, 0x605c, 0xa438, 0xfffb,
+       0xa438, 0xcd8a, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0xd706,
+       0xa438, 0x6679, 0xa438, 0xd700, 0xa438, 0x663d, 0xa438, 0xd707,
+       0xa438, 0x5f16, 0xa438, 0xd700, 0xa438, 0x5ed0, 0xa438, 0xd700,
+       0xa438, 0x6043, 0xa438, 0xfff3, 0xa438, 0x0c3f, 0xa438, 0x0635,
+       0xa438, 0xa120, 0xa438, 0x8410, 0xa438, 0x800a, 0xa438, 0x8290,
+       0xa438, 0x8306, 0xa438, 0x8b06, 0xa438, 0x8364, 0xa438, 0xcd87,
+       0xa438, 0xa502, 0xa438, 0x8502, 0xa438, 0xa220, 0xa438, 0xa310,
+       0xa438, 0xa340, 0xa438, 0xa00a, 0xa438, 0x0c06, 0xa438, 0x0102,
+       0xa438, 0xa240, 0xa438, 0xa290, 0xa438, 0x8320, 0xa438, 0xa304,
+       0xa438, 0xab02, 0xa438, 0xa404, 0xa438, 0xd1c7, 0xa438, 0xd045,
+       0xa438, 0xd700, 0xa438, 0x605b, 0xa438, 0xfffe, 0xa438, 0xa320,
+       0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5fb5,
+       0xa438, 0x0c3f, 0xa438, 0x062d, 0xa438, 0x8120, 0xa438, 0xcd88,
+       0xa438, 0xd700, 0xa438, 0x605d, 0xa438, 0xfffa, 0xa438, 0xcd8b,
+       0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5f99,
+       0xa438, 0x1800, 0xa438, 0x0c9e, 0xa436, 0xA10E, 0xa438, 0xffff,
        0xa436, 0xA10C, 0xa438, 0xffff, 0xa436, 0xA10A, 0xa438, 0xffff,
-       0xa436, 0xA108, 0xa438, 0xffff, 0xa436, 0xA106, 0xa438, 0xffff,
+       0xa436, 0xA108, 0xa438, 0x0c89, 0xa436, 0xA106, 0xa438, 0x0ca2,
        0xa436, 0xA104, 0xa438, 0x0d13, 0xa436, 0xA102, 0xa438, 0x0dbf,
-       0xa436, 0xA100, 0xa438, 0x0d52, 0xa436, 0xA110, 0xa438, 0x0007,
+       0xa436, 0xA100, 0xa438, 0x0d52, 0xa436, 0xA110, 0xa438, 0x001f,
        0xa436, 0xb87c, 0xa438, 0x85bd, 0xa436, 0xb87e, 0xa438, 0xaf85,
-       0xa438, 0xd5af, 0xa438, 0x85fb, 0xa438, 0xaf85, 0xa438, 0xfbaf,
-       0xa438, 0x85fb, 0xa438, 0xaf85, 0xa438, 0xfbaf, 0xa438, 0x85fb,
-       0xa438, 0xaf85, 0xa438, 0xfbaf, 0xa438, 0x85fb, 0xa438, 0xac28,
+       0xa438, 0xd5af, 0xa438, 0x85fb, 0xa438, 0xaf86, 0xa438, 0x24af,
+       0xa438, 0x8624, 0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624,
+       0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624, 0xa438, 0xac28,
        0xa438, 0x0bd4, 0xa438, 0x0294, 0xa438, 0xbf85, 0xa438, 0xf802,
        0xa438, 0x61c2, 0xa438, 0xae09, 0xa438, 0xd414, 0xa438, 0x50bf,
        0xa438, 0x85f8, 0xa438, 0x0261, 0xa438, 0xc2bf, 0xa438, 0x60de,
        0xa438, 0x0261, 0xa438, 0xe1bf, 0xa438, 0x80cf, 0xa438, 0xaf24,
-       0xa438, 0xe8f0, 0xa438, 0xac52, 0xa436, 0xb85e, 0xa438, 0x24e5,
-       0xa436, 0xb860, 0xa438, 0xffff, 0xa436, 0xb862, 0xa438, 0xffff,
-       0xa436, 0xb864, 0xa438, 0xffff, 0xa436, 0xb886, 0xa438, 0xffff,
-       0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a, 0xa438, 0xffff,
-       0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838, 0xa438, 0x0001,
-       0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
-       0xB820, 0x0000, 0xFFFF, 0xFFFF
+       0xa438, 0xe8f0, 0xa438, 0xac52, 0xa438, 0xef79, 0xa438, 0xf705,
+       0xa438, 0xeeff, 0xa438, 0xd200, 0xa438, 0xbf86, 0xa438, 0x22d7,
+       0xa438, 0xc201, 0xa438, 0x87d4, 0xa438, 0x0001, 0xa438, 0x025a,
+       0xa438, 0x0abf, 0xa438, 0x8623, 0xa438, 0xd7c2, 0xa438, 0xcc17,
+       0xa438, 0xd400, 0xa438, 0x0102, 0xa438, 0x5a0a, 0xa438, 0xf605,
+       0xa438, 0xaf33, 0xa438, 0x78ff, 0xa438, 0xff00, 0xa436, 0xb85e,
+       0xa438, 0x24e5, 0xa436, 0xb860, 0xa438, 0x3376, 0xa436, 0xb862,
+       0xa438, 0xffff, 0xa436, 0xb864, 0xa438, 0xffff, 0xa436, 0xb886,
+       0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a,
+       0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838,
+       0xa438, 0x0003, 0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023,
+       0xa438, 0x0000, 0xB820, 0x0000, 0xFFFF, 0xFFFF
 };
 
 static void
diff --git a/drivers/net/r8169/base/rtl8125cp_mcu.h 
b/drivers/net/r8169/base/rtl8125cp_mcu.h
index 8114dab2b9..1f08151818 100644
--- a/drivers/net/r8169/base/rtl8125cp_mcu.h
+++ b/drivers/net/r8169/base/rtl8125cp_mcu.h
@@ -5,6 +5,7 @@
 #ifndef RTL8125CP_MCU_H
 #define RTL8125CP_MCU_H
 
+void rtl_set_mac_mcu_8125cp_1(struct rtl_hw *hw);
 void rtl_set_phy_mcu_8125cp_1(struct rtl_hw *hw);
 
 #endif /* RTL8125CP_MCU_H */
diff --git a/drivers/net/r8169/base/rtl8125d.c 
b/drivers/net/r8169/base/rtl8125d.c
index 29be122e6b..ac500587e0 100644
--- a/drivers/net/r8169/base/rtl8125d.c
+++ b/drivers/net/r8169/base/rtl8125d.c
@@ -256,6 +256,15 @@ rtl_hw_phy_config_8125d_2(struct rtl_hw *hw)
        rtl_clear_eth_phy_ocp_bit(hw, 0xA5D4, BIT_5);
        rtl_clear_eth_phy_ocp_bit(hw, 0xA654, BIT_11);
 
+       rtl_clear_eth_phy_ocp_bit(hw, 0xA448, BIT_10);
+       rtl_clear_eth_phy_ocp_bit(hw, 0xA586, BIT_10);
+
+       rtl_clear_eth_phy_ocp_bit(hw, 0xA4E0, BIT_15);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x8155);
+       rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xA438, 0xFF00, 0x0200);
+       rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x815C);
+       rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xA438, 0xFF00, 0x0200);
+
        rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_12 | BIT_0);
        rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_7);
 }
diff --git a/drivers/net/r8169/base/rtl8125d_mcu.c 
b/drivers/net/r8169/base/rtl8125d_mcu.c
index c99681ad33..304bad2998 100644
--- a/drivers/net/r8169/base/rtl8125d_mcu.c
+++ b/drivers/net/r8169/base/rtl8125d_mcu.c
@@ -17,15 +17,16 @@
 void
 rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw)
 {
-       static const u16 mcu_patch_code_8125d_1[] = {
-               0xE002, 0xE006, 0x4166, 0x9CF6, 0xC002, 0xB800, 0x14A4, 0xC102, 
0xB900,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
-               0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
+       u16 entry_cnt;
+       static const u16 mcu_patch_code[] = {
+               0xE010, 0xE014, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 0xE022, 
0xE024,
+               0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xE032, 0x4166, 
0x9CF6,
+               0xC002, 0xB800, 0x14A4, 0xC104, 0xC202, 0xBA00, 0x2378, 0xD116, 
0xC602,
+               0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 
0xC602,
+               0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 
0xC602,
+               0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 
0xC602,
+               0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 
0xC602,
+               0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
@@ -103,14 +104,24 @@ rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw)
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x0000,
                0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
0x6938,
-               0x0A18, 0x0217, 0x0D2A
+               0x0A19, 0x030E, 0x0B2B
        };
 
-       rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125d_1,
-                                  ARRAY_SIZE(mcu_patch_code_8125d_1));
+       entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+       /* Get BIN mac mcu patch code version */
+       hw->bin_mcu_patch_code_ver = 
rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+                                                                   entry_cnt);
+
+       if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+               rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
+
        rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+
        rtl_mac_ocp_write(hw, 0xFC28, 0x14A2);
-       rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
+       rtl_mac_ocp_write(hw, 0xFC2A, 0x2376);
+
+       rtl_mac_ocp_write(hw, 0xFC48, 0x0003);
 }
 
 void
@@ -825,6 +836,7 @@ static const u16 phy_mcu_ram_code_8125d_1_1[] = {
        0xa438, 0x0000, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
        0xa436, 0x801E, 0xa438, 0x0031, 0xB820, 0x0000, 0xFFFF, 0xFFFF
 };
+
 static const u16 phy_mcu_ram_code_8125d_1_2[] = {
        0xb892, 0x0000, 0xB88E, 0xC28F, 0xB890, 0x252D, 0xB88E, 0xC290,
        0xB890, 0xC924, 0xB88E, 0xC291, 0xB890, 0xC92E, 0xB88E, 0xC292,
@@ -859,6 +871,7 @@ static const u16 phy_mcu_ram_code_8125d_1_2[] = {
        0xB890, 0x9F3A, 0xB88E, 0xC2CB, 0xB890, 0x9F3A, 0xB88E, 0xC2CC,
        0xB890, 0x4430, 0xFFFF, 0xFFFF
 };
+
 static const u16 phy_mcu_ram_code_8125d_1_3[] = {
        0xa436, 0xacca, 0xa438, 0x0104, 0xa436, 0xaccc, 0xa438, 0x8000,
        0xa436, 0xacce, 0xa438, 0xffff, 0xa436, 0xacd0, 0xa438, 0x0fff,
@@ -1045,54 +1058,60 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
        0xa436, 0x8023, 0xa438, 0x3801, 0xa436, 0xB82E, 0xa438, 0x0001,
        0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012,
        0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010,
-       0xa438, 0x1800, 0xa438, 0x807e, 0xa438, 0x1800, 0xa438, 0x80be,
-       0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0x1800, 0xa438, 0x81c8,
-       0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0x1800, 0xa438, 0x81c8,
-       0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0xd500, 0xa438, 0xc48d,
+       0xa438, 0x1800, 0xa438, 0x808e, 0xa438, 0x1800, 0xa438, 0x80d6,
+       0xa438, 0x1800, 0xa438, 0x81e2, 0xa438, 0x1800, 0xa438, 0x8205,
+       0xa438, 0x1800, 0xa438, 0x8227, 0xa438, 0x1800, 0xa438, 0x8227,
+       0xa438, 0x1800, 0xa438, 0x8227, 0xa438, 0xd500, 0xa438, 0xc48d,
        0xa438, 0xd504, 0xa438, 0x8d03, 0xa438, 0xd701, 0xa438, 0x4045,
        0xa438, 0xad02, 0xa438, 0xd504, 0xa438, 0xd706, 0xa438, 0x2529,
        0xa438, 0x8021, 0xa438, 0xd718, 0xa438, 0x607b, 0xa438, 0x40da,
-       0xa438, 0xf01b, 0xa438, 0x461a, 0xa438, 0xf045, 0xa438, 0xd718,
-       0xa438, 0x62fb, 0xa438, 0xbb01, 0xa438, 0xd75e, 0xa438, 0x6271,
+       0xa438, 0xf019, 0xa438, 0x459a, 0xa438, 0xf03f, 0xa438, 0xd718,
+       0xa438, 0x62bb, 0xa438, 0xbb01, 0xa438, 0xd75e, 0xa438, 0x6231,
        0xa438, 0x0cf0, 0xa438, 0x0c10, 0xa438, 0xd501, 0xa438, 0xce01,
-       0xa438, 0xd70c, 0xa438, 0x6187, 0xa438, 0x0cf0, 0xa438, 0x0470,
-       0xa438, 0x0cf0, 0xa438, 0x0430, 0xa438, 0x0cf0, 0xa438, 0x0410,
-       0xa438, 0xce00, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0808,
-       0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0xf042, 0xa438, 0xbb02,
-       0xa438, 0xd75e, 0xa438, 0x6271, 0xa438, 0x0cf0, 0xa438, 0x0c20,
-       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6187,
-       0xa438, 0x0cf0, 0xa438, 0x0470, 0xa438, 0x0cf0, 0xa438, 0x0430,
-       0xa438, 0x0cf0, 0xa438, 0x0420, 0xa438, 0xce00, 0xa438, 0xd505,
+       0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0x8440,
+       0xa438, 0x8420, 0xa438, 0xa410, 0xa438, 0xce00, 0xa438, 0xd505,
+       0xa438, 0x0c0f, 0xa438, 0x0808, 0xa438, 0xf002, 0xa438, 0xa4f0,
+       0xa438, 0xf03c, 0xa438, 0xbb02, 0xa438, 0xd75e, 0xa438, 0x6231,
+       0xa438, 0x0cf0, 0xa438, 0x0c20, 0xa438, 0xd501, 0xa438, 0xce01,
+       0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0x8440,
+       0xa438, 0xa420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
        0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xf002, 0xa438, 0xa4f0,
-       0xa438, 0xf02c, 0xa438, 0xbb04, 0xa438, 0xd75e, 0xa438, 0x6271,
+       0xa438, 0xf028, 0xa438, 0xbb04, 0xa438, 0xd75e, 0xa438, 0x6231,
        0xa438, 0x0cf0, 0xa438, 0x0c40, 0xa438, 0xd501, 0xa438, 0xce01,
-       0xa438, 0xd70c, 0xa438, 0x6187, 0xa438, 0x0cf0, 0xa438, 0x0470,
-       0xa438, 0x0cf0, 0xa438, 0x0450, 0xa438, 0x0cf0, 0xa438, 0x0440,
-       0xa438, 0xce00, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0802,
-       0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0xf016, 0xa438, 0xbb08,
-       0xa438, 0xd75e, 0xa438, 0x6271, 0xa438, 0x0cf0, 0xa438, 0x0c80,
-       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6187,
-       0xa438, 0x0cf0, 0xa438, 0x04b0, 0xa438, 0x0cf0, 0xa438, 0x0490,
-       0xa438, 0x0cf0, 0xa438, 0x0480, 0xa438, 0xce00, 0xa438, 0xd505,
+       0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0xa440,
+       0xa438, 0x8420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
+       0xa438, 0x0c0f, 0xa438, 0x0802, 0xa438, 0xf002, 0xa438, 0xa4f0,
+       0xa438, 0xf014, 0xa438, 0xbb08, 0xa438, 0xd75e, 0xa438, 0x6231,
+       0xa438, 0x0cf0, 0xa438, 0x0c80, 0xa438, 0xd501, 0xa438, 0xce01,
+       0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0xa480, 0xa438, 0x8440,
+       0xa438, 0x8420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
        0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xf002, 0xa438, 0xa4f0,
-       0xa438, 0xce00, 0xa438, 0xd500, 0xa438, 0x1800, 0xa438, 0x165a,
-       0xa438, 0xd75e, 0xa438, 0x67b1, 0xa438, 0xd504, 0xa438, 0xd71e,
-       0xa438, 0x65bb, 0xa438, 0x63da, 0xa438, 0x61f9, 0xa438, 0x0cf0,
+       0xa438, 0xce00, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x1a8a,
+       0xa438, 0x1000, 0xa438, 0x1829, 0xa438, 0xd73e, 0xa438, 0x6074,
+       0xa438, 0xd718, 0xa438, 0x5f2d, 0xa438, 0x1000, 0xa438, 0x81b7,
+       0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1829,
+       0xa438, 0xd73e, 0xa438, 0x7f74, 0xa438, 0x1000, 0xa438, 0x81ce,
+       0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1829,
+       0xa438, 0xd718, 0xa438, 0x5f6d, 0xa438, 0x1800, 0xa438, 0x1660,
+       0xa438, 0xd75e, 0xa438, 0x68b1, 0xa438, 0xd504, 0xa438, 0xd71e,
+       0xa438, 0x667b, 0xa438, 0x645a, 0xa438, 0x6239, 0xa438, 0x0cf0,
        0xa438, 0x0c10, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0808,
-       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6087,
-       0xa438, 0x0cf0, 0xa438, 0x0410, 0xa438, 0xf02c, 0xa438, 0xa4f0,
-       0xa438, 0xf02a, 0xa438, 0x0cf0, 0xa438, 0x0c20, 0xa438, 0xd505,
-       0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xd501, 0xa438, 0xce01,
-       0xa438, 0xd70c, 0xa438, 0x6087, 0xa438, 0x0cf0, 0xa438, 0x0420,
-       0xa438, 0xf01e, 0xa438, 0xa4f0, 0xa438, 0xf01c, 0xa438, 0x0cf0,
+       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+       0xa438, 0x8480, 0xa438, 0x8440, 0xa438, 0x8420, 0xa438, 0xa410,
+       0xa438, 0xf032, 0xa438, 0xa4f0, 0xa438, 0xf030, 0xa438, 0x0cf0,
+       0xa438, 0x0c20, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0804,
+       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+       0xa438, 0x8480, 0xa438, 0x8440, 0xa438, 0xa420, 0xa438, 0x8410,
+       0xa438, 0xf022, 0xa438, 0xa4f0, 0xa438, 0xf020, 0xa438, 0x0cf0,
        0xa438, 0x0c40, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0802,
-       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6087,
-       0xa438, 0x0cf0, 0xa438, 0x0440, 0xa438, 0xf010, 0xa438, 0xa4f0,
-       0xa438, 0xf00e, 0xa438, 0x0cf0, 0xa438, 0x0c80, 0xa438, 0xd505,
-       0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xd501, 0xa438, 0xce01,
-       0xa438, 0xd70c, 0xa438, 0x6087, 0xa438, 0x0cf0, 0xa438, 0x0480,
+       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+       0xa438, 0x8480, 0xa438, 0xa440, 0xa438, 0x8420, 0xa438, 0x8410,
+       0xa438, 0xf012, 0xa438, 0xa4f0, 0xa438, 0xf010, 0xa438, 0x0cf0,
+       0xa438, 0x0c80, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0801,
+       0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+       0xa438, 0xa480, 0xa438, 0x8440, 0xa438, 0x8420, 0xa438, 0x8410,
        0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0x1800, 0xa438, 0x168c,
-       0xa438, 0xd500, 0xa438, 0xd706, 0xa438, 0x2529, 0xa438, 0x80c8,
+       0xa438, 0xd500, 0xa438, 0xd706, 0xa438, 0x2529, 0xa438, 0x80e0,
        0xa438, 0xd718, 0xa438, 0x607b, 0xa438, 0x40da, 0xa438, 0xf00f,
        0xa438, 0x431a, 0xa438, 0xf021, 0xa438, 0xd718, 0xa438, 0x617b,
        0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1b1a,
@@ -1105,18 +1124,18 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
        0xa438, 0xf026, 0xa438, 0xf07b, 0xa438, 0x1000, 0xa438, 0x1a8a,
        0xa438, 0x1000, 0xa438, 0x1b1a, 0xa438, 0xd718, 0xa438, 0x608e,
        0xa438, 0xd73e, 0xa438, 0x5f34, 0xa438, 0xf029, 0xa438, 0xf08f,
-       0xa438, 0x1000, 0xa438, 0x819f, 0xa438, 0x1000, 0xa438, 0x1a8a,
-       0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81b4,
+       0xa438, 0x1000, 0xa438, 0x81b7, 0xa438, 0x1000, 0xa438, 0x1a8a,
+       0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81ce,
        0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718, 0xa438, 0x5fae,
-       0xa438, 0xf028, 0xa438, 0x1000, 0xa438, 0x819f, 0xa438, 0x1000,
+       0xa438, 0xf028, 0xa438, 0x1000, 0xa438, 0x81b7, 0xa438, 0x1000,
        0xa438, 0x1a8a, 0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000,
-       0xa438, 0x81b4, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718,
-       0xa438, 0x5fae, 0xa438, 0xf039, 0xa438, 0x1000, 0xa438, 0x819f,
+       0xa438, 0x81ce, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718,
+       0xa438, 0x5fae, 0xa438, 0xf039, 0xa438, 0x1000, 0xa438, 0x81b7,
        0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e, 0xa438, 0x7fb4,
-       0xa438, 0x1000, 0xa438, 0x81b4, 0xa438, 0x1000, 0xa438, 0x1a8a,
+       0xa438, 0x1000, 0xa438, 0x81ce, 0xa438, 0x1000, 0xa438, 0x1a8a,
        0xa438, 0xd718, 0xa438, 0x5fae, 0xa438, 0xf04a, 0xa438, 0x1000,
-       0xa438, 0x819f, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e,
-       0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81b4, 0xa438, 0x1000,
+       0xa438, 0x81b7, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e,
+       0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81ce, 0xa438, 0x1000,
        0xa438, 0x1a8a, 0xa438, 0xd718, 0xa438, 0x5fae, 0xa438, 0xf05b,
        0xa438, 0xd719, 0xa438, 0x4119, 0xa438, 0xd504, 0xa438, 0xac01,
        0xa438, 0xae01, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x1a78,
@@ -1149,158 +1168,233 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
        0xa438, 0xd505, 0xa438, 0xd719, 0xa438, 0x4079, 0xa438, 0xa80f,
        0xa438, 0xf003, 0xa438, 0x4058, 0xa438, 0xa801, 0xa438, 0x1800,
        0xa438, 0x1736, 0xa438, 0xd73e, 0xa438, 0xd505, 0xa438, 0x3088,
-       0xa438, 0x81a6, 0xa438, 0x6193, 0xa438, 0x6132, 0xa438, 0x60d1,
-       0xa438, 0x3298, 0xa438, 0x81b1, 0xa438, 0xf00a, 0xa438, 0xa808,
-       0xa438, 0xf008, 0xa438, 0xa804, 0xa438, 0xf006, 0xa438, 0xa802,
-       0xa438, 0xf004, 0xa438, 0xa801, 0xa438, 0xf002, 0xa438, 0xa80f,
-       0xa438, 0xd500, 0xa438, 0x0800, 0xa438, 0xd505, 0xa438, 0xd75e,
-       0xa438, 0x6211, 0xa438, 0xd71e, 0xa438, 0x619b, 0xa438, 0x611a,
-       0xa438, 0x6099, 0xa438, 0x0c0f, 0xa438, 0x0808, 0xa438, 0xf009,
-       0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xf006, 0xa438, 0x0c0f,
-       0xa438, 0x0802, 0xa438, 0xf003, 0xa438, 0x0c0f, 0xa438, 0x0801,
-       0xa438, 0xd500, 0xa438, 0x0800, 0xa436, 0xA026, 0xa438, 0xffff,
-       0xa436, 0xA024, 0xa438, 0xffff, 0xa436, 0xA022, 0xa438, 0xffff,
-       0xa436, 0xA020, 0xa438, 0xffff, 0xa436, 0xA006, 0xa438, 0xffff,
-       0xa436, 0xA004, 0xa438, 0x16ab, 0xa436, 0xA002, 0xa438, 0x1663,
-       0xa436, 0xA000, 0xa438, 0x1608, 0xa436, 0xA008, 0xa438, 0x0700,
-       0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012, 0xa438, 0x07f8,
-       0xa436, 0xA014, 0xa438, 0xcc01, 0xa438, 0x0000, 0xa438, 0x0000,
+       0xa438, 0x81c0, 0xa438, 0x61d3, 0xa438, 0x6172, 0xa438, 0x6111,
+       0xa438, 0x60b0, 0xa438, 0xf00d, 0xa438, 0x3298, 0xa438, 0x81cb,
+       0xa438, 0xf00a, 0xa438, 0xa808, 0xa438, 0xf008, 0xa438, 0xa804,
+       0xa438, 0xf006, 0xa438, 0xa802, 0xa438, 0xf004, 0xa438, 0xa801,
+       0xa438, 0xf002, 0xa438, 0xa80f, 0xa438, 0xd500, 0xa438, 0x0800,
+       0xa438, 0xd505, 0xa438, 0xd75e, 0xa438, 0x6211, 0xa438, 0xd71e,
+       0xa438, 0x619b, 0xa438, 0x611a, 0xa438, 0x6099, 0xa438, 0x0c0f,
+       0xa438, 0x0808, 0xa438, 0xf009, 0xa438, 0x0c0f, 0xa438, 0x0804,
+       0xa438, 0xf006, 0xa438, 0x0c0f, 0xa438, 0x0802, 0xa438, 0xf003,
+       0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xd500, 0xa438, 0x0800,
+       0xa438, 0xd707, 0xa438, 0x4141, 0xa438, 0xd706, 0xa438, 0x4112,
+       0xa438, 0xd705, 0xa438, 0x40da, 0xa438, 0xbc01, 0xa438, 0xd028,
+       0xa438, 0xd1c1, 0xa438, 0x1800, 0xa438, 0x81f0, 0xa438, 0x9c01,
+       0xa438, 0xd07b, 0xa438, 0xd1c5, 0xa438, 0xbe10, 0xa438, 0xd503,
+       0xa438, 0xa108, 0xa438, 0xd505, 0xa438, 0x8103, 0xa438, 0xd504,
+       0xa438, 0xa002, 0xa438, 0xa302, 0xa438, 0xd707, 0xa438, 0x4061,
+       0xa438, 0xd503, 0xa438, 0x8b01, 0xa438, 0xd500, 0xa438, 0xc48a,
+       0xa438, 0xd503, 0xa438, 0xcc09, 0xa438, 0xcd58, 0xa438, 0xaf01,
+       0xa438, 0xd500, 0xa438, 0x1800, 0xa438, 0x134c, 0xa438, 0xd71e,
+       0xa438, 0x4097, 0xa438, 0xd078, 0xa438, 0xd1aa, 0xa438, 0xf003,
+       0xa438, 0xd078, 0xa438, 0xd1aa, 0xa438, 0xd707, 0xa438, 0x40a1,
+       0xa438, 0xd706, 0xa438, 0x4072, 0xa438, 0xd705, 0xa438, 0x621a,
+       0xa438, 0xd706, 0xa438, 0x6065, 0xa438, 0xcc89, 0xa438, 0xf002,
+       0xa438, 0xcc8b, 0xa438, 0x1000, 0xa438, 0x0bc8, 0xa438, 0xd705,
+       0xa438, 0x2ad0, 0xa438, 0x821d, 0xa438, 0xf003, 0xa438, 0x1000,
+       0xa438, 0x0bce, 0xa438, 0x1000, 0xa438, 0x0bd4, 0xa438, 0x1000,
+       0xa438, 0x0cfa, 0xa438, 0xd04d, 0xa438, 0xd1c6, 0xa438, 0x1800,
+       0xa438, 0x13b8, 0xa436, 0xA026, 0xa438, 0xffff, 0xa436, 0xA024,
+       0xa438, 0xffff, 0xa436, 0xA022, 0xa438, 0xffff, 0xa436, 0xA020,
+       0xa438, 0x1393, 0xa436, 0xA006, 0xa438, 0x1331, 0xa436, 0xA004,
+       0xa438, 0x16ab, 0xa436, 0xA002, 0xa438, 0x1663, 0xa436, 0xA000,
+       0xa438, 0x1608, 0xa436, 0xA008, 0xa438, 0x1f00, 0xa436, 0xA016,
+       0xa438, 0x0000, 0xa436, 0xA012, 0xa438, 0x07f8, 0xa436, 0xA014,
+       0xa438, 0xcc01, 0xa438, 0x20f6, 0xa438, 0x0000, 0xa438, 0x0000,
        0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
-       0xa438, 0x0000, 0xa436, 0xA152, 0xa438, 0x021c, 0xa436, 0xA154,
-       0xa438, 0x3fff, 0xa436, 0xA156, 0xa438, 0x3fff, 0xa436, 0xA158,
-       0xa438, 0x3fff, 0xa436, 0xA15A, 0xa438, 0x3fff, 0xa436, 0xA15C,
-       0xa438, 0x3fff, 0xa436, 0xA15E, 0xa438, 0x3fff, 0xa436, 0xA160,
-       0xa438, 0x3fff, 0xa436, 0xA150, 0xa438, 0x0001, 0xa436, 0xA016,
-       0xa438, 0x0010, 0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014,
-       0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8013,
-       0xa438, 0x1800, 0xa438, 0x803a, 0xa438, 0x1800, 0xa438, 0x8045,
-       0xa438, 0x1800, 0xa438, 0x8049, 0xa438, 0x1800, 0xa438, 0x804d,
-       0xa438, 0x1800, 0xa438, 0x8059, 0xa438, 0x1800, 0xa438, 0x805d,
-       0xa438, 0xc2ff, 0xa438, 0x1800, 0xa438, 0x0042, 0xa438, 0x1000,
-       0xa438, 0x02e5, 0xa438, 0x1000, 0xa438, 0x02b4, 0xa438, 0xd701,
-       0xa438, 0x40e3, 0xa438, 0xd700, 0xa438, 0x5f6c, 0xa438, 0x1000,
-       0xa438, 0x8021, 0xa438, 0x1800, 0xa438, 0x0073, 0xa438, 0x1800,
-       0xa438, 0x0084, 0xa438, 0xd701, 0xa438, 0x4061, 0xa438, 0xba0f,
-       0xa438, 0xf004, 0xa438, 0x4060, 0xa438, 0x1000, 0xa438, 0x802a,
-       0xa438, 0xba10, 0xa438, 0x0800, 0xa438, 0xd700, 0xa438, 0x60bb,
-       0xa438, 0x611c, 0xa438, 0x0c0f, 0xa438, 0x1a01, 0xa438, 0xf00a,
-       0xa438, 0x60fc, 0xa438, 0x0c0f, 0xa438, 0x1a02, 0xa438, 0xf006,
-       0xa438, 0x0c0f, 0xa438, 0x1a04, 0xa438, 0xf003, 0xa438, 0x0c0f,
-       0xa438, 0x1a08, 0xa438, 0x0800, 0xa438, 0x0c0f, 0xa438, 0x0504,
-       0xa438, 0xad02, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
-       0xa438, 0x5fac, 0xa438, 0x1000, 0xa438, 0x8021, 0xa438, 0x1800,
-       0xa438, 0x0139, 0xa438, 0x9a1f, 0xa438, 0x8bf0, 0xa438, 0x1800,
-       0xa438, 0x02df, 0xa438, 0x9a1f, 0xa438, 0x9910, 0xa438, 0x1800,
-       0xa438, 0x02d7, 0xa438, 0xad02, 0xa438, 0x8d01, 0xa438, 0x9a1f,
+       0xa436, 0xA152, 0xa438, 0x021c, 0xa436, 0xA154, 0xa438, 0x2100,
+       0xa436, 0xA156, 0xa438, 0x3fff, 0xa436, 0xA158, 0xa438, 0x3fff,
+       0xa436, 0xA15A, 0xa438, 0x3fff, 0xa436, 0xA15C, 0xa438, 0x3fff,
+       0xa436, 0xA15E, 0xa438, 0x3fff, 0xa436, 0xA160, 0xa438, 0x3fff,
+       0xa436, 0xA150, 0xa438, 0x0003, 0xa436, 0xA016, 0xa438, 0x0010,
+       0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
+       0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8014, 0xa438, 0x1800,
+       0xa438, 0x803d, 0xa438, 0x1800, 0xa438, 0x804a, 0xa438, 0x1800,
+       0xa438, 0x804e, 0xa438, 0x1800, 0xa438, 0x8052, 0xa438, 0x1800,
+       0xa438, 0x8092, 0xa438, 0x1800, 0xa438, 0x80a0, 0xa438, 0xc2ff,
+       0xa438, 0x9a40, 0xa438, 0x1800, 0xa438, 0x0042, 0xa438, 0x1000,
+       0xa438, 0x02e5, 0xa438, 0xba20, 0xa438, 0x1000, 0xa438, 0x02b4,
+       0xa438, 0xd701, 0xa438, 0x4103, 0xa438, 0xd700, 0xa438, 0x5f6c,
+       0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x9a20, 0xa438, 0x1800,
+       0xa438, 0x0073, 0xa438, 0x1800, 0xa438, 0x0084, 0xa438, 0xd701,
+       0xa438, 0x4061, 0xa438, 0xba0f, 0xa438, 0xf004, 0xa438, 0x4060,
+       0xa438, 0x1000, 0xa438, 0x802d, 0xa438, 0xba10, 0xa438, 0x0800,
+       0xa438, 0xd700, 0xa438, 0x60bb, 0xa438, 0x611c, 0xa438, 0x0c0f,
+       0xa438, 0x1a01, 0xa438, 0xf00a, 0xa438, 0x60fc, 0xa438, 0x0c0f,
+       0xa438, 0x1a02, 0xa438, 0xf006, 0xa438, 0x0c0f, 0xa438, 0x1a04,
+       0xa438, 0xf003, 0xa438, 0x0c0f, 0xa438, 0x1a08, 0xa438, 0x0800,
+       0xa438, 0x0c0f, 0xa438, 0x0504, 0xa438, 0xad02, 0xa438, 0xd73e,
+       0xa438, 0x40f6, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
+       0xa438, 0x5fac, 0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x1800,
+       0xa438, 0x0139, 0xa438, 0x9a3f, 0xa438, 0x8bf0, 0xa438, 0x1800,
+       0xa438, 0x02df, 0xa438, 0x9a3f, 0xa438, 0x9910, 0xa438, 0x1800,
+       0xa438, 0x02d7, 0xa438, 0xad02, 0xa438, 0x8d01, 0xa438, 0x9a7f,
        0xa438, 0x9910, 0xa438, 0x9860, 0xa438, 0xcb00, 0xa438, 0xd501,
-       0xa438, 0xce01, 0xa438, 0x85f0, 0xa438, 0xd500, 0xa438, 0x1800,
-       0xa438, 0x015c, 0xa438, 0x8580, 0xa438, 0x8d02, 0xa438, 0x1800,
-       0xa438, 0x018f, 0xa438, 0x0c0f, 0xa438, 0x0503, 0xa438, 0xad02,
-       0xa438, 0x1800, 0xa438, 0x00dd, 0xa436, 0xA08E, 0xa438, 0x00db,
-       0xa436, 0xA08C, 0xa438, 0x018e, 0xa436, 0xA08A, 0xa438, 0x015a,
-       0xa436, 0xA088, 0xa438, 0x02d6, 0xa436, 0xA086, 0xa438, 0x02de,
-       0xa436, 0xA084, 0xa438, 0x0137, 0xa436, 0xA082, 0xa438, 0x0071,
-       0xa436, 0xA080, 0xa438, 0x0041, 0xa436, 0xA090, 0xa438, 0x00ff,
-       0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
-       0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
-       0xa438, 0x801d, 0xa438, 0x1800, 0xa438, 0x808a, 0xa438, 0x1800,
-       0xa438, 0x80a1, 0xa438, 0x1800, 0xa438, 0x80b4, 0xa438, 0x1800,
-       0xa438, 0x8104, 0xa438, 0x1800, 0xa438, 0x810b, 0xa438, 0x1800,
-       0xa438, 0x810f, 0xa438, 0x8980, 0xa438, 0xd702, 0xa438, 0x6126,
-       0xa438, 0xd704, 0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060,
-       0xa438, 0xd702, 0xa438, 0x6077, 0xa438, 0x1800, 0xa438, 0x0c29,
-       0xa438, 0x1800, 0xa438, 0x0c2b, 0xa438, 0x1000, 0xa438, 0x115a,
-       0xa438, 0xd71f, 0xa438, 0x5fb4, 0xa438, 0xd702, 0xa438, 0x6c46,
-       0xa438, 0xd704, 0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060,
-       0xa438, 0xd702, 0xa438, 0x6b97, 0xa438, 0xa340, 0xa438, 0x0c06,
-       0xa438, 0x0102, 0xa438, 0xce01, 0xa438, 0x1000, 0xa438, 0x117a,
-       0xa438, 0xa240, 0xa438, 0xa902, 0xa438, 0xa204, 0xa438, 0xa280,
-       0xa438, 0xa364, 0xa438, 0xab02, 0xa438, 0x8380, 0xa438, 0xa00a,
-       0xa438, 0xcd8d, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd706,
-       0xa438, 0x5fb5, 0xa438, 0xb920, 0xa438, 0x1000, 0xa438, 0x115a,
-       0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x9920, 0xa438, 0x1000,
-       0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x6065, 0xa438, 0x7c74,
-       0xa438, 0xfffb, 0xa438, 0xb820, 0xa438, 0x1000, 0xa438, 0x115a,
-       0xa438, 0xd71f, 0xa438, 0x7fa5, 0xa438, 0x9820, 0xa438, 0xa410,
-       0xa438, 0x8902, 0xa438, 0xa120, 0xa438, 0xa380, 0xa438, 0xce02,
-       0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x8280, 0xa438, 0xa324,
-       0xa438, 0xab02, 0xa438, 0xa00a, 0xa438, 0x8118, 0xa438, 0x863f,
-       0xa438, 0x87fb, 0xa438, 0xcd8e, 0xa438, 0xd193, 0xa438, 0xd047,
-       0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f,
-       0xa438, 0xd700, 0xa438, 0x5f7b, 0xa438, 0xa280, 0xa438, 0x1000,
-       0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd706,
-       0xa438, 0x5f78, 0xa438, 0xa210, 0xa438, 0xd700, 0xa438, 0x6083,
-       0xa438, 0xd101, 0xa438, 0xd047, 0xa438, 0xf003, 0xa438, 0xd160,
-       0xa438, 0xd04b, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
-       0xa438, 0x115f, 0xa438, 0xd700, 0xa438, 0x5f7b, 0xa438, 0x1000,
-       0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd706,
-       0xa438, 0x5f79, 0xa438, 0x8120, 0xa438, 0xbb20, 0xa438, 0x1800,
-       0xa438, 0x0c8b, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f80,
-       0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0c3c, 0xa438, 0x0c03,
-       0xa438, 0x1502, 0xa438, 0x8f80, 0xa438, 0x9503, 0xa438, 0xd704,
-       0xa438, 0x6192, 0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce04,
-       0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502,
-       0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0b3d,
-       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503,
-       0xa438, 0x1800, 0xa438, 0x0b48, 0xa438, 0xd704, 0xa438, 0x6192,
-       0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce04, 0xa438, 0x1000,
-       0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f40,
-       0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x1269, 0xa438, 0x0c03,
-       0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x1800,
-       0xa438, 0x1274, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa608,
-       0xa438, 0xc700, 0xa438, 0x9503, 0xa438, 0xce54, 0xa438, 0x1000,
-       0xa438, 0x117a, 0xa438, 0xa290, 0xa438, 0xa304, 0xa438, 0xab02,
-       0xa438, 0xd700, 0xa438, 0x6050, 0xa438, 0xab04, 0xa438, 0x0c38,
-       0xa438, 0x0608, 0xa438, 0xaa0b, 0xa438, 0xd702, 0xa438, 0x0c03,
-       0xa438, 0x1502, 0xa438, 0x8d01, 0xa438, 0xae40, 0xa438, 0x4044,
-       0xa438, 0x8e20, 0xa438, 0x9503, 0xa438, 0x0c03, 0xa438, 0x1502,
-       0xa438, 0x8c20, 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x6078,
-       0xa438, 0xd700, 0xa438, 0x609a, 0xa438, 0xd109, 0xa438, 0xd074,
-       0xa438, 0xf003, 0xa438, 0xd109, 0xa438, 0xd075, 0xa438, 0x1000,
-       0xa438, 0x115a, 0xa438, 0xd704, 0xa438, 0x6252, 0xa438, 0xd702,
-       0xa438, 0x4116, 0xa438, 0xce54, 0xa438, 0x1000, 0xa438, 0x117a,
+       0xa438, 0xce01, 0xa438, 0x85f0, 0xa438, 0xd500, 0xa438, 0x0c0f,
+       0xa438, 0x0505, 0xa438, 0xb820, 0xa438, 0xc000, 0xa438, 0xc100,
+       0xa438, 0xc628, 0xa438, 0xc700, 0xa438, 0xc801, 0xa438, 0xc91e,
+       0xa438, 0xc001, 0xa438, 0x4019, 0xa438, 0xc6f8, 0xa438, 0xc702,
+       0xa438, 0xc809, 0xa438, 0xc940, 0xa438, 0xc002, 0xa438, 0x4019,
+       0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700, 0xa438, 0x5fa7,
+       0xa438, 0xc010, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+       0xa438, 0x5fa0, 0xa438, 0xc020, 0xa438, 0x1000, 0xa438, 0x02cc,
+       0xa438, 0xd700, 0xa438, 0x5fa1, 0xa438, 0x0c0f, 0xa438, 0x0506,
+       0xa438, 0xb840, 0xa438, 0xc6ca, 0xa438, 0xc701, 0xa438, 0xc809,
+       0xa438, 0xc900, 0xa438, 0xc001, 0xa438, 0x4019, 0xa438, 0xc6b8,
+       0xa438, 0xc700, 0xa438, 0xc800, 0xa438, 0xc900, 0xa438, 0xc008,
+       0xa438, 0x4019, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+       0xa438, 0x5fa5, 0xa438, 0x8580, 0xa438, 0x8d02, 0xa438, 0x1800,
+       0xa438, 0x018f, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+       0xa438, 0x6124, 0xa438, 0xd73e, 0xa438, 0x5f75, 0xa438, 0xd700,
+       0xa438, 0x5f2c, 0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x9a20,
+       0xa438, 0xfff5, 0xa438, 0x1800, 0xa438, 0x00b8, 0xa438, 0x0c0f,
+       0xa438, 0x0503, 0xa438, 0xad02, 0xa438, 0x68c8, 0xa438, 0x1000,
+       0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x6848, 0xa438, 0x604d,
+       0xa438, 0xfffb, 0xa438, 0xd73e, 0xa438, 0x6082, 0xa438, 0x1000,
+       0xa438, 0x02a1, 0xa438, 0x8a0f, 0xa438, 0x1000, 0xa438, 0x02c0,
+       0xa438, 0xd700, 0xa438, 0x5fae, 0xa438, 0x1000, 0xa438, 0x02de,
+       0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x5faf,
+       0xa438, 0x8d01, 0xa438, 0x8b0f, 0xa438, 0x1000, 0xa438, 0x02c0,
+       0xa438, 0xd700, 0xa438, 0x2a58, 0xa438, 0x80c5, 0xa438, 0x2a5b,
+       0xa438, 0x80cd, 0xa438, 0x2b53, 0xa438, 0x80d9, 0xa438, 0xfff7,
+       0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02e5,
+       0xa438, 0xba40, 0xa438, 0x1000, 0xa438, 0x02fd, 0xa438, 0xf018,
+       0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02e5,
+       0xa438, 0xba40, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
+       0xa438, 0x5faa, 0xa438, 0x1000, 0xa438, 0x02fd, 0xa438, 0xf00c,
+       0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02fd,
+       0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x5fab,
+       0xa438, 0x1000, 0xa438, 0x02e5, 0xa438, 0xba40, 0xa438, 0x1000,
+       0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x6088, 0xa438, 0xfffc,
+       0xa438, 0x1800, 0xa438, 0x0120, 0xa438, 0x1800, 0xa438, 0x0122,
+       0xa436, 0xA08E, 0xa438, 0x00db, 0xa436, 0xA08C, 0xa438, 0x00b4,
+       0xa436, 0xA08A, 0xa438, 0x015a, 0xa436, 0xA088, 0xa438, 0x02d6,
+       0xa436, 0xA086, 0xa438, 0x02de, 0xa436, 0xA084, 0xa438, 0x0137,
+       0xa436, 0xA082, 0xa438, 0x0071, 0xa436, 0xA080, 0xa438, 0x0041,
+       0xa436, 0xA090, 0xa438, 0x00ff, 0xa436, 0xA016, 0xa438, 0x0020,
+       0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
+       0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8019, 0xa438, 0x1800,
+       0xa438, 0x809e, 0xa438, 0x1800, 0xa438, 0x80b9, 0xa438, 0x1800,
+       0xa438, 0x80cc, 0xa438, 0x1800, 0xa438, 0x811c, 0xa438, 0x1800,
+       0xa438, 0x8123, 0xa438, 0x1800, 0xa438, 0x812f, 0xa438, 0xd71f,
+       0xa438, 0x6080, 0xa438, 0xd141, 0xa438, 0xd043, 0xa438, 0xf003,
+       0xa438, 0xd101, 0xa438, 0xd040, 0xa438, 0x1800, 0xa438, 0x0ac8,
+       0xa438, 0x8980, 0xa438, 0xd702, 0xa438, 0x6126, 0xa438, 0xd704,
+       0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060, 0xa438, 0xd702,
+       0xa438, 0x6077, 0xa438, 0x8410, 0xa438, 0xf002, 0xa438, 0xa410,
+       0xa438, 0xce02, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xcd81,
+       0xa438, 0xd412, 0xa438, 0x1000, 0xa438, 0x1125, 0xa438, 0xcd82,
+       0xa438, 0xd40e, 0xa438, 0x1000, 0xa438, 0x1125, 0xa438, 0xcd83,
+       0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x5fb4,
+       0xa438, 0xd702, 0xa438, 0x6c46, 0xa438, 0xd704, 0xa438, 0x4063,
+       0xa438, 0xd702, 0xa438, 0x6060, 0xa438, 0xd702, 0xa438, 0x6b97,
+       0xa438, 0xa340, 0xa438, 0x0c06, 0xa438, 0x0102, 0xa438, 0xce01,
+       0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xa240, 0xa438, 0xa902,
+       0xa438, 0xa204, 0xa438, 0xa280, 0xa438, 0xa364, 0xa438, 0xab02,
+       0xa438, 0x8380, 0xa438, 0xa00a, 0xa438, 0xcd8d, 0xa438, 0x1000,
+       0xa438, 0x115a, 0xa438, 0xd706, 0xa438, 0x5fb5, 0xa438, 0xb920,
+       0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x7fb4,
+       0xa438, 0x9920, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f,
+       0xa438, 0x6065, 0xa438, 0x7c74, 0xa438, 0xfffb, 0xa438, 0xb820,
+       0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x7fa5,
+       0xa438, 0x9820, 0xa438, 0xa410, 0xa438, 0x8902, 0xa438, 0xa120,
+       0xa438, 0xa380, 0xa438, 0xce02, 0xa438, 0x1000, 0xa438, 0x117a,
+       0xa438, 0x8280, 0xa438, 0xa324, 0xa438, 0xab02, 0xa438, 0xa00a,
+       0xa438, 0x8118, 0xa438, 0x863f, 0xa438, 0x87fb, 0xa438, 0xcd8e,
+       0xa438, 0xd193, 0xa438, 0xd047, 0xa438, 0x1000, 0xa438, 0x115a,
+       0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd700, 0xa438, 0x5f7b,
+       0xa438, 0xa280, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
+       0xa438, 0x115f, 0xa438, 0xd706, 0xa438, 0x5f78, 0xa438, 0xa210,
+       0xa438, 0xd700, 0xa438, 0x6083, 0xa438, 0xd101, 0xa438, 0xd047,
+       0xa438, 0xf003, 0xa438, 0xd160, 0xa438, 0xd04b, 0xa438, 0x1000,
+       0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd700,
+       0xa438, 0x5f7b, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
+       0xa438, 0x115f, 0xa438, 0xd706, 0xa438, 0x5f79, 0xa438, 0x8120,
+       0xa438, 0xbb20, 0xa438, 0x1800, 0xa438, 0x0c8b, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0x8f80, 0xa438, 0x9503, 0xa438, 0x1800,
+       0xa438, 0x0c3c, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa608,
+       0xa438, 0x9503, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f80,
+       0xa438, 0x9503, 0xa438, 0xd704, 0xa438, 0x6192, 0xa438, 0xd702,
+       0xa438, 0x4116, 0xa438, 0xce04, 0xa438, 0x1000, 0xa438, 0x117a,
        0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f40, 0xa438, 0x9503,
-       0xa438, 0xa00a, 0xa438, 0xd704, 0xa438, 0x41e7, 0xa438, 0x0c03,
-       0xa438, 0x1502, 0xa438, 0xa570, 0xa438, 0x9503, 0xa438, 0xf00a,
-       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503,
-       0xa438, 0x800a, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8570,
-       0xa438, 0x9503, 0xa438, 0xd704, 0xa438, 0x60f3, 0xa438, 0xd71f,
-       0xa438, 0x60ee, 0xa438, 0xd700, 0xa438, 0x5bbe, 0xa438, 0x1800,
-       0xa438, 0x0e71, 0xa438, 0x1800, 0xa438, 0x0e7c, 0xa438, 0x1800,
-       0xa438, 0x0e7e, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf80,
-       0xa438, 0x9503, 0xa438, 0xcd62, 0xa438, 0x1800, 0xa438, 0x0bd2,
-       0xa438, 0x800a, 0xa438, 0x8306, 0xa438, 0x1800, 0xa438, 0x0cb6,
-       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8608, 0xa438, 0x8c20,
-       0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0eb9, 0xa436, 0xA10E,
-       0xa438, 0x0eb5, 0xa436, 0xA10C, 0xa438, 0x0cb5, 0xa436, 0xA10A,
+       0xa438, 0x1800, 0xa438, 0x0b3d, 0xa438, 0x0c03, 0xa438, 0x1502,
+       0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0b48,
+       0xa438, 0xd704, 0xa438, 0x6192, 0xa438, 0xd702, 0xa438, 0x4116,
+       0xa438, 0xce04, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0x1800,
+       0xa438, 0x1269, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40,
+       0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x1274, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0xa608, 0xa438, 0xc700, 0xa438, 0x9503,
+       0xa438, 0xce54, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xa290,
+       0xa438, 0xa304, 0xa438, 0xab02, 0xa438, 0xd700, 0xa438, 0x6050,
+       0xa438, 0xab04, 0xa438, 0x0c38, 0xa438, 0x0608, 0xa438, 0xaa0b,
+       0xa438, 0xd702, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8d01,
+       0xa438, 0xae40, 0xa438, 0x4044, 0xa438, 0x8e20, 0xa438, 0x9503,
+       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8c20, 0xa438, 0x9503,
+       0xa438, 0xd700, 0xa438, 0x6078, 0xa438, 0xd700, 0xa438, 0x609a,
+       0xa438, 0xd109, 0xa438, 0xd074, 0xa438, 0xf003, 0xa438, 0xd109,
+       0xa438, 0xd075, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd704,
+       0xa438, 0x6252, 0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce54,
+       0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502,
+       0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0xa00a, 0xa438, 0xd704,
+       0xa438, 0x41e7, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa570,
+       0xa438, 0x9503, 0xa438, 0xf00a, 0xa438, 0x0c03, 0xa438, 0x1502,
+       0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x800a, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0x8570, 0xa438, 0x9503, 0xa438, 0xd704,
+       0xa438, 0x60f3, 0xa438, 0xd71f, 0xa438, 0x60ee, 0xa438, 0xd700,
+       0xa438, 0x5bbe, 0xa438, 0x1800, 0xa438, 0x0e71, 0xa438, 0x1800,
+       0xa438, 0x0e7c, 0xa438, 0x1800, 0xa438, 0x0e7e, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0xaf80, 0xa438, 0x9503, 0xa438, 0xcd62,
+       0xa438, 0x1800, 0xa438, 0x0bd2, 0xa438, 0x800a, 0xa438, 0x8530,
+       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8d10, 0xa438, 0x9503,
+       0xa438, 0xd700, 0xa438, 0x6050, 0xa438, 0xaa20, 0xa438, 0x8306,
+       0xa438, 0x1800, 0xa438, 0x0cb6, 0xa438, 0xd105, 0xa438, 0xd040,
+       0xa438, 0x1000, 0xa438, 0x0d8f, 0xa438, 0xd700, 0xa438, 0x5fbb,
+       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8608, 0xa438, 0x9503,
+       0xa438, 0x1000, 0xa438, 0x0d8f, 0xa438, 0xd704, 0xa438, 0x7fb6,
+       0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x87f0, 0xa438, 0x9503,
+       0xa438, 0xce88, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03,
+       0xa438, 0x1502, 0xa438, 0xa608, 0xa438, 0x9503, 0xa438, 0xd73e,
+       0xa438, 0x60a5, 0xa438, 0xd705, 0xa438, 0x4071, 0xa438, 0x1800,
+       0xa438, 0x0d65, 0xa438, 0x1800, 0xa438, 0x0d6f, 0xa436, 0xA10E,
+       0xa438, 0x0d58, 0xa436, 0xA10C, 0xa438, 0x0cb5, 0xa436, 0xA10A,
        0xa438, 0x0bd1, 0xa436, 0xA108, 0xa438, 0x0e37, 0xa436, 0xA106,
        0xa438, 0x1267, 0xa436, 0xA104, 0xa438, 0x0b3b, 0xa436, 0xA102,
-       0xa438, 0x0c38, 0xa436, 0xA100, 0xa438, 0x0c24, 0xa436, 0xA110,
-       0xa438, 0x00ff, 0xa436, 0xb87c, 0xa438, 0x85bf, 0xa436, 0xb87e,
-       0xa438, 0xaf85, 0xa438, 0xd7af, 0xa438, 0x85fb, 0xa438, 0xaf86,
-       0xa438, 0x10af, 0xa438, 0x8638, 0xa438, 0xaf86, 0xa438, 0x47af,
-       0xa438, 0x8647, 0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647,
-       0xa438, 0xbf85, 0xa438, 0xf802, 0xa438, 0x627f, 0xa438, 0xbf61,
-       0xa438, 0xc702, 0xa438, 0x627f, 0xa438, 0xae0c, 0xa438, 0xbf85,
-       0xa438, 0xf802, 0xa438, 0x6276, 0xa438, 0xbf61, 0xa438, 0xc702,
-       0xa438, 0x6276, 0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0xaf1b,
-       0xa438, 0x2333, 0xa438, 0xa484, 0xa438, 0xbf86, 0xa438, 0x0a02,
-       0xa438, 0x627f, 0xa438, 0xbf86, 0xa438, 0x0d02, 0xa438, 0x627f,
-       0xa438, 0xaf1b, 0xa438, 0x8422, 0xa438, 0xa484, 0xa438, 0x66ac,
-       0xa438, 0x0ef8, 0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xe080,
-       0xa438, 0x16ad, 0xa438, 0x230f, 0xa438, 0xee85, 0xa438, 0x4200,
-       0xa438, 0x1f44, 0xa438, 0xbf86, 0xa438, 0x30d7, 0xa438, 0x0008,
-       0xa438, 0x0264, 0xa438, 0xa3ff, 0xa438, 0xef97, 0xa438, 0xfffc,
-       0xa438, 0x0485, 0xa438, 0xf861, 0xa438, 0xc786, 0xa438, 0x0a86,
-       0xa438, 0x0de1, 0xa438, 0x8feb, 0xa438, 0xe583, 0xa438, 0x20e1,
-       0xa438, 0x8fea, 0xa438, 0xe583, 0xa438, 0x21af, 0xa438, 0x41a7,
-       0xa436, 0xb85e, 0xa438, 0x1b05, 0xa436, 0xb860, 0xa438, 0x1b78,
-       0xa436, 0xb862, 0xa438, 0x1a08, 0xa436, 0xb864, 0xa438, 0x419F,
-       0xa436, 0xb886, 0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff,
-       0xa436, 0xb88a, 0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff,
-       0xa436, 0xb838, 0xa438, 0x000f, 0xb820, 0x0010, 0xa436, 0x0000,
-       0xa438, 0x0000, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
-       0xa436, 0x801E, 0xa438, 0x0008, 0xB820, 0x0000, 0xFFFF, 0xFFFF
+       0xa438, 0x0c24, 0xa436, 0xA100, 0xa438, 0x0ac6, 0xa436, 0xA110,
+       0xa438, 0x00ff, 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012,
+       0xa438, 0x1ff8, 0xa436, 0xA014, 0xa438, 0x0000, 0xa438, 0x0000,
+       0xa438, 0x0000, 0xa438, 0xd100, 0xa438, 0x0000, 0xa438, 0x0000,
+       0xa438, 0x0000, 0xa438, 0x0000, 0xa436, 0xA164, 0xa438, 0x0ceb,
+       0xa436, 0xA166, 0xa438, 0x0e73, 0xa436, 0xA168, 0xa438, 0x0deb,
+       0xa436, 0xA16A, 0xa438, 0x0c63, 0xa436, 0xA16C, 0xa438, 0x3fff,
+       0xa436, 0xA16E, 0xa438, 0x3fff, 0xa436, 0xA170, 0xa438, 0x3fff,
+       0xa436, 0xA172, 0xa438, 0x3fff, 0xa436, 0xA162, 0xa438, 0x000f,
+       0xa436, 0xb87c, 0xa438, 0x85bf, 0xa436, 0xb87e, 0xa438, 0xaf85,
+       0xa438, 0xd7af, 0xa438, 0x85fb, 0xa438, 0xaf86, 0xa438, 0x10af,
+       0xa438, 0x8638, 0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647,
+       0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647, 0xa438, 0xbf85,
+       0xa438, 0xf802, 0xa438, 0x627f, 0xa438, 0xbf61, 0xa438, 0xc702,
+       0xa438, 0x627f, 0xa438, 0xae0c, 0xa438, 0xbf85, 0xa438, 0xf802,
+       0xa438, 0x6276, 0xa438, 0xbf61, 0xa438, 0xc702, 0xa438, 0x6276,
+       0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0xaf1b, 0xa438, 0x2333,
+       0xa438, 0xa484, 0xa438, 0xbf86, 0xa438, 0x0a02, 0xa438, 0x627f,
+       0xa438, 0xbf86, 0xa438, 0x0d02, 0xa438, 0x627f, 0xa438, 0xaf1b,
+       0xa438, 0x8422, 0xa438, 0xa484, 0xa438, 0x66ac, 0xa438, 0x0ef8,
+       0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xe080, 0xa438, 0x16ad,
+       0xa438, 0x230f, 0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0x1f44,
+       0xa438, 0xbf86, 0xa438, 0x30d7, 0xa438, 0x0008, 0xa438, 0x0264,
+       0xa438, 0xa3ff, 0xa438, 0xef97, 0xa438, 0xfffc, 0xa438, 0x0485,
+       0xa438, 0xf861, 0xa438, 0xc786, 0xa438, 0x0a86, 0xa438, 0x0de1,
+       0xa438, 0x8feb, 0xa438, 0xe583, 0xa438, 0x20e1, 0xa438, 0x8fea,
+       0xa438, 0xe583, 0xa438, 0x21af, 0xa438, 0x41a7, 0xa436, 0xb85e,
+       0xa438, 0x1b05, 0xa436, 0xb860, 0xa438, 0x1b78, 0xa436, 0xb862,
+       0xa438, 0x1a08, 0xa436, 0xb864, 0xa438, 0x419F, 0xa436, 0xb886,
+       0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a,
+       0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838,
+       0xa438, 0x000f, 0xb820, 0x0010, 0xa436, 0x0000, 0xa438, 0x0000,
+       0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000, 0xa436, 0x801E,
+       0xa438, 0x0014, 0xB820, 0x0000, 0xFFFF, 0xFFFF
 };
 
 static const u16 phy_mcu_ram_code_8125d_2_2[] = {
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index 05d977379a..3f7e452132 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -769,8 +769,8 @@ rtl_enable_aspm_clkreq_lock(struct rtl_hw *hw, bool enable)
        if (unlock_cfg_wr)
                rtl_enable_cfg9346_write(hw);
 
-       if (hw->mcfg == CFG_METHOD_70 || hw->mcfg == CFG_METHOD_71 ||
-           hw->mcfg == CFG_METHOD_91) {
+       if (hw->mcfg == CFG_METHOD_58 || hw->mcfg == CFG_METHOD_70 ||
+           hw->mcfg == CFG_METHOD_71 || hw->mcfg == CFG_METHOD_91) {
                if (enable) {
                        RTL_W8(hw, INT_CFG0_8125, RTL_R8(hw, INT_CFG0_8125) | 
BIT_3);
                        RTL_W8(hw, Config5, RTL_R8(hw, Config5) | BIT_0);
diff --git a/drivers/net/r8169/r8169_hw.h b/drivers/net/r8169/r8169_hw.h
index a1f841c88d..1bdc46bd17 100644
--- a/drivers/net/r8169/r8169_hw.h
+++ b/drivers/net/r8169/r8169_hw.h
@@ -135,8 +135,8 @@ extern const struct rtl_hw_ops rtl8125cp_ops;
 #define NIC_RAMCODE_VERSION_CFG_METHOD_54  (0x0013)
 #define NIC_RAMCODE_VERSION_CFG_METHOD_55  (0x0001)
 #define NIC_RAMCODE_VERSION_CFG_METHOD_56  (0x0027)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_57  (0x0027)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_58  (0x0008)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_57  (0x0034)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_58  (0x0024)
 #define NIC_RAMCODE_VERSION_CFG_METHOD_70  (0x0033)
 #define NIC_RAMCODE_VERSION_CFG_METHOD_71  (0x0060)
 #define NIC_RAMCODE_VERSION_CFG_METHOD_91  (0x0051)
-- 
2.34.1

Reply via email to