Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(c) 2024 Realtek Corporation. All rights reserved
3 : : */
4 : :
5 : : #include "../r8169_compat.h"
6 : : #include "../r8169_hw.h"
7 : : #include "../r8169_phy.h"
8 : : #include "rtl8168h.h"
9 : :
10 : : /* For RTL8168H, CFG_METHOD_29,30,35,36 */
11 : :
12 : : /* ------------------------------------MAC 8168H------------------------------------- */
13 : :
14 : : static void
15 : : rtl8168_set_mac_mcu_8168h_1(struct rtl_hw *hw)
16 : : {
17 : 0 : rtl_hw_disable_mac_mcu_bps(hw);
18 : 0 : }
19 : :
20 : : static void
21 : 0 : rtl8168_set_mac_mcu_8168h_2(struct rtl_hw *hw)
22 : : {
23 : : u16 i;
24 : : static const u16 mcu_patch_code_8168h_1[] = {
25 : : 0xE008, 0xE00F, 0xE011, 0xE047, 0xE049, 0xE073, 0xE075, 0xE07A, 0xC707,
26 : : 0x1D00, 0x8DE2, 0x48C1, 0xC502, 0xBD00, 0x00E4, 0xE0C0, 0xC502, 0xBD00,
27 : : 0x0216, 0xC634, 0x75C0, 0x49D3, 0xF027, 0xC631, 0x75C0, 0x49D3, 0xF123,
28 : : 0xC627, 0x75C0, 0xB405, 0xC525, 0x9DC0, 0xC621, 0x75C8, 0x49D5, 0xF00A,
29 : : 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2, 0x49D9, 0xF111,
30 : : 0xC517, 0x9DC8, 0xC516, 0x9DD2, 0xC618, 0x75C0, 0x49D4, 0xF003, 0x49D0,
31 : : 0xF104, 0xC60A, 0xC50E, 0x9DC0, 0xB005, 0xC607, 0x9DC0, 0xB007, 0xC602,
32 : : 0xBE00, 0x1A06, 0xB400, 0xE86C, 0xA000, 0x01E1, 0x0200, 0x9200, 0xE84C,
33 : : 0xE004, 0xE908, 0xC502, 0xBD00, 0x0B58, 0xB407, 0xB404, 0x2195, 0x25BD,
34 : : 0x9BE0, 0x1C1C, 0x484F, 0x9CE2, 0x72E2, 0x49AE, 0xF1FE, 0x0B00, 0xF116,
35 : : 0xC71C, 0xC419, 0x9CE0, 0x1C13, 0x484F, 0x9CE2, 0x74E2, 0x49CE, 0xF1FE,
36 : : 0xC412, 0x9CE0, 0x1C13, 0x484F, 0x9CE2, 0x74E2, 0x49CE, 0xF1FE, 0xC70C,
37 : : 0x74F8, 0x48C3, 0x8CF8, 0xB004, 0xB007, 0xC502, 0xBD00, 0x0F24, 0x0481,
38 : : 0x0C81, 0xDE24, 0xE000, 0xC602, 0xBE00, 0x0CA4, 0x48C1, 0x48C2, 0x9C46,
39 : : 0xC402, 0xBC00, 0x0578, 0xC602, 0xBE00, 0x0000
40 : : };
41 : :
42 : 0 : rtl_hw_disable_mac_mcu_bps(hw);
43 : :
44 [ # # ]: 0 : for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168h_1); i++)
45 : 0 : rtl_mac_ocp_write(hw, 0xF800 + i * 2, mcu_patch_code_8168h_1[i]);
46 : :
47 : 0 : rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
48 : :
49 : 0 : rtl_mac_ocp_write(hw, 0xFC28, 0x00E2);
50 : 0 : rtl_mac_ocp_write(hw, 0xFC2A, 0x0210);
51 : 0 : rtl_mac_ocp_write(hw, 0xFC2C, 0x1A04);
52 : 0 : rtl_mac_ocp_write(hw, 0xFC2E, 0x0B26);
53 : 0 : rtl_mac_ocp_write(hw, 0xFC30, 0x0F02);
54 : 0 : rtl_mac_ocp_write(hw, 0xFC32, 0x0CA0);
55 : :
56 : 0 : rtl_mac_ocp_write(hw, 0xFC38, 0x003F);
57 : 0 : }
58 : :
59 : : static void
60 : 0 : rtl8168_set_mac_mcu_8168h_3(struct rtl_hw *hw)
61 : : {
62 : : u16 i;
63 : : static const u16 mcu_patch_code_8168h_3[] = {
64 : : 0xE008, 0xE00A, 0xE00C, 0xE00E, 0xE010, 0xE03E, 0xE040, 0xE069, 0xC602,
65 : : 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC002, 0xB800, 0x0000, 0xC602,
66 : : 0xBE00, 0x0000, 0xC72B, 0x76E2, 0x49EE, 0xF1FD, 0x1E00, 0x9EE0, 0x1E1C,
67 : : 0x9EE2, 0x76E2, 0x49EE, 0xF1FE, 0xC621, 0x9EE0, 0x1E1D, 0x486F, 0x9EE2,
68 : : 0x76E2, 0x49EE, 0xF1FE, 0xC71A, 0x76E0, 0x48E8, 0x48E9, 0x48EA, 0x48EB,
69 : : 0x48EC, 0x9EE0, 0xC70D, 0xC60D, 0x9EF4, 0xC60C, 0x9EF6, 0xC70E, 0x76E0,
70 : : 0x4863, 0x9EE0, 0xB007, 0xC602, 0xBE00, 0x0ACC, 0xE000, 0x03BF, 0x07FF,
71 : : 0xDE24, 0x3200, 0xE096, 0xD438, 0xC602, 0xBE00, 0x0000, 0x8EE6, 0xC726,
72 : : 0x76E2, 0x49EE, 0xF1FD, 0x1E00, 0x8EE0, 0x1E1C, 0x8EE2, 0x76E2, 0x49EE,
73 : : 0xF1FE, 0xC61C, 0x8EE0, 0x1E1D, 0x486F, 0x8EE2, 0x76E2, 0x49EE, 0xF1FE,
74 : : 0xC715, 0x76E0, 0x48E8, 0x48E9, 0x48EA, 0x48EB, 0x48EC, 0x9EE0, 0xC708,
75 : : 0xC608, 0x9EF4, 0xC607, 0x9EF6, 0xC602, 0xBE00, 0x0ABE, 0xE000, 0x03BF,
76 : : 0x07FF, 0xDE24, 0x3200, 0xE096, 0xC602, 0xBE00, 0x0000, 0x0000, 0x0000,
77 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
78 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
79 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
80 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
81 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
82 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
83 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
84 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
85 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
86 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
87 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
88 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
89 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
90 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
91 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
92 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
93 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
94 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
95 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
96 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
97 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
98 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
99 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
100 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
101 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
102 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
103 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
104 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
105 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
106 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
107 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
108 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
109 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
110 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
111 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
112 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
113 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
114 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
115 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
116 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
117 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
118 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
119 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
120 : : 0x0000, 0x0000, 0x0000, 0x0000, 0x6838, 0x0A17, 0x0613, 0x0D26
121 : : };
122 : :
123 : 0 : rtl_hw_disable_mac_mcu_bps(hw);
124 : :
125 [ # # ]: 0 : for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168h_3); i++)
126 : 0 : rtl_mac_ocp_write(hw, 0xF800 + i * 2, mcu_patch_code_8168h_3[i]);
127 : :
128 : 0 : rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
129 : :
130 : 0 : rtl_mac_ocp_write(hw, 0xFC30, 0x0ACA);
131 : :
132 : 0 : rtl8168_clear_mcu_ocp_bit(hw, 0xD438, BIT_3);
133 : :
134 : 0 : rtl_mac_ocp_write(hw, 0xFC38, 0x0010);
135 : 0 : }
136 : :
137 : : static void
138 : : rtl8168_set_mac_mcu_8168h_4(struct rtl_hw *hw)
139 : : {
140 : 0 : rtl_hw_disable_mac_mcu_bps(hw);
141 : 0 : }
142 : :
143 : : /* ------------------------------------PHY 8168H------------------------------------- */
144 : :
145 : : static void
146 : 0 : rtl8168_set_phy_mcu_8168h_1(struct rtl_hw *hw)
147 : : {
148 : : unsigned int gphy_val;
149 : :
150 : 0 : rtl_set_phy_mcu_patch_request(hw);
151 : :
152 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
153 : 0 : rtl_mdio_write(hw, 0x13, 0x8028);
154 : 0 : rtl_mdio_write(hw, 0x14, 0x6200);
155 : 0 : rtl_mdio_write(hw, 0x13, 0xB82E);
156 : 0 : rtl_mdio_write(hw, 0x14, 0x0001);
157 : :
158 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
159 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
160 : 0 : rtl_mdio_write(hw, 0x14, 0x0290);
161 : 0 : rtl_mdio_write(hw, 0x13, 0xA012);
162 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
163 : 0 : rtl_mdio_write(hw, 0x13, 0xA014);
164 : 0 : rtl_mdio_write(hw, 0x14, 0x2c04);
165 : 0 : rtl_mdio_write(hw, 0x14, 0x2c10);
166 : 0 : rtl_mdio_write(hw, 0x14, 0x2c10);
167 : 0 : rtl_mdio_write(hw, 0x14, 0x2c10);
168 : 0 : rtl_mdio_write(hw, 0x14, 0xa210);
169 : 0 : rtl_mdio_write(hw, 0x14, 0xa101);
170 : 0 : rtl_mdio_write(hw, 0x14, 0xce10);
171 : 0 : rtl_mdio_write(hw, 0x14, 0xe070);
172 : 0 : rtl_mdio_write(hw, 0x14, 0x0f40);
173 : 0 : rtl_mdio_write(hw, 0x14, 0xaf01);
174 : 0 : rtl_mdio_write(hw, 0x14, 0x8f01);
175 : 0 : rtl_mdio_write(hw, 0x14, 0x183e);
176 : 0 : rtl_mdio_write(hw, 0x14, 0x8e10);
177 : 0 : rtl_mdio_write(hw, 0x14, 0x8101);
178 : 0 : rtl_mdio_write(hw, 0x14, 0x8210);
179 : 0 : rtl_mdio_write(hw, 0x14, 0x28da);
180 : 0 : rtl_mdio_write(hw, 0x13, 0xA01A);
181 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
182 : 0 : rtl_mdio_write(hw, 0x13, 0xA006);
183 : 0 : rtl_mdio_write(hw, 0x14, 0x0017);
184 : 0 : rtl_mdio_write(hw, 0x13, 0xA004);
185 : 0 : rtl_mdio_write(hw, 0x14, 0x0015);
186 : 0 : rtl_mdio_write(hw, 0x13, 0xA002);
187 : 0 : rtl_mdio_write(hw, 0x14, 0x0013);
188 : 0 : rtl_mdio_write(hw, 0x13, 0xA000);
189 : 0 : rtl_mdio_write(hw, 0x14, 0x18d1);
190 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
191 : 0 : rtl_mdio_write(hw, 0x14, 0x0210);
192 : :
193 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
194 : 0 : rtl_mdio_write(hw, 0x13, 0x0000);
195 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
196 : 0 : rtl_mdio_write(hw, 0x1f, 0x0B82);
197 : 0 : gphy_val = rtl_mdio_read(hw, 0x17);
198 : 0 : gphy_val &= ~BIT_0;
199 : 0 : rtl_mdio_write(hw, 0x17, gphy_val);
200 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
201 : 0 : rtl_mdio_write(hw, 0x13, 0x8028);
202 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
203 : :
204 : 0 : rtl_clear_phy_mcu_patch_request(hw);
205 : 0 : }
206 : :
207 : : static void
208 : 0 : rtl8168_set_phy_mcu_8168h_2(struct rtl_hw *hw)
209 : : {
210 : : unsigned int gphy_val;
211 : :
212 : 0 : rtl_set_phy_mcu_patch_request(hw);
213 : :
214 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
215 : 0 : rtl_mdio_write(hw, 0x13, 0x8028);
216 : 0 : rtl_mdio_write(hw, 0x14, 0x6201);
217 : 0 : rtl_mdio_write(hw, 0x13, 0xB82E);
218 : 0 : rtl_mdio_write(hw, 0x14, 0x0001);
219 : :
220 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
221 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
222 : 0 : rtl_mdio_write(hw, 0x14, 0x0290);
223 : 0 : rtl_mdio_write(hw, 0x13, 0xA012);
224 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
225 : 0 : rtl_mdio_write(hw, 0x13, 0xA014);
226 : 0 : rtl_mdio_write(hw, 0x14, 0x2c04);
227 : 0 : rtl_mdio_write(hw, 0x14, 0x2c09);
228 : 0 : rtl_mdio_write(hw, 0x14, 0x2c0d);
229 : 0 : rtl_mdio_write(hw, 0x14, 0x2c12);
230 : 0 : rtl_mdio_write(hw, 0x14, 0xad01);
231 : 0 : rtl_mdio_write(hw, 0x14, 0xad01);
232 : 0 : rtl_mdio_write(hw, 0x14, 0xad01);
233 : 0 : rtl_mdio_write(hw, 0x14, 0xad01);
234 : 0 : rtl_mdio_write(hw, 0x14, 0x236c);
235 : 0 : rtl_mdio_write(hw, 0x14, 0xd03c);
236 : 0 : rtl_mdio_write(hw, 0x14, 0xd1aa);
237 : 0 : rtl_mdio_write(hw, 0x14, 0xc010);
238 : 0 : rtl_mdio_write(hw, 0x14, 0x2745);
239 : 0 : rtl_mdio_write(hw, 0x14, 0x33de);
240 : 0 : rtl_mdio_write(hw, 0x14, 0x16ba);
241 : 0 : rtl_mdio_write(hw, 0x14, 0x31ee);
242 : 0 : rtl_mdio_write(hw, 0x14, 0x2712);
243 : 0 : rtl_mdio_write(hw, 0x14, 0x274e);
244 : 0 : rtl_mdio_write(hw, 0x14, 0xc2bb);
245 : 0 : rtl_mdio_write(hw, 0x14, 0xd500);
246 : 0 : rtl_mdio_write(hw, 0x14, 0xc426);
247 : 0 : rtl_mdio_write(hw, 0x14, 0xd01d);
248 : 0 : rtl_mdio_write(hw, 0x14, 0xd1c3);
249 : 0 : rtl_mdio_write(hw, 0x14, 0x401c);
250 : 0 : rtl_mdio_write(hw, 0x14, 0xd501);
251 : 0 : rtl_mdio_write(hw, 0x14, 0xc2b3);
252 : 0 : rtl_mdio_write(hw, 0x14, 0xd500);
253 : 0 : rtl_mdio_write(hw, 0x14, 0xd00b);
254 : 0 : rtl_mdio_write(hw, 0x14, 0xd1c3);
255 : 0 : rtl_mdio_write(hw, 0x14, 0x401c);
256 : 0 : rtl_mdio_write(hw, 0x14, 0x241a);
257 : 0 : rtl_mdio_write(hw, 0x13, 0xA01A);
258 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
259 : 0 : rtl_mdio_write(hw, 0x13, 0xA006);
260 : 0 : rtl_mdio_write(hw, 0x14, 0x0414);
261 : 0 : rtl_mdio_write(hw, 0x13, 0xA004);
262 : 0 : rtl_mdio_write(hw, 0x14, 0x074c);
263 : 0 : rtl_mdio_write(hw, 0x13, 0xA002);
264 : 0 : rtl_mdio_write(hw, 0x14, 0x0744);
265 : 0 : rtl_mdio_write(hw, 0x13, 0xA000);
266 : 0 : rtl_mdio_write(hw, 0x14, 0xf36b);
267 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
268 : 0 : rtl_mdio_write(hw, 0x14, 0x0210);
269 : :
270 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
271 : 0 : rtl_mdio_write(hw, 0x13, 0x8323);
272 : 0 : rtl_mdio_write(hw, 0x14, 0xaf83);
273 : 0 : rtl_mdio_write(hw, 0x14, 0x2faf);
274 : 0 : rtl_mdio_write(hw, 0x14, 0x853d);
275 : 0 : rtl_mdio_write(hw, 0x14, 0xaf85);
276 : 0 : rtl_mdio_write(hw, 0x14, 0x3daf);
277 : 0 : rtl_mdio_write(hw, 0x14, 0x853d);
278 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
279 : 0 : rtl_mdio_write(hw, 0x14, 0x45ad);
280 : 0 : rtl_mdio_write(hw, 0x14, 0x2052);
281 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
282 : 0 : rtl_mdio_write(hw, 0x14, 0x7ae3);
283 : 0 : rtl_mdio_write(hw, 0x14, 0x85fe);
284 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
285 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
286 : 0 : rtl_mdio_write(hw, 0x14, 0x85f6);
287 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
288 : 0 : rtl_mdio_write(hw, 0x14, 0x7a1b);
289 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
290 : 0 : rtl_mdio_write(hw, 0x14, 0x85fa);
291 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
292 : 0 : rtl_mdio_write(hw, 0x14, 0x7be3);
293 : 0 : rtl_mdio_write(hw, 0x14, 0x85fe);
294 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
295 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
296 : 0 : rtl_mdio_write(hw, 0x14, 0x85f7);
297 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
298 : 0 : rtl_mdio_write(hw, 0x14, 0x7b1b);
299 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
300 : 0 : rtl_mdio_write(hw, 0x14, 0x85fb);
301 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
302 : 0 : rtl_mdio_write(hw, 0x14, 0x7ce3);
303 : 0 : rtl_mdio_write(hw, 0x14, 0x85fe);
304 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
305 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
306 : 0 : rtl_mdio_write(hw, 0x14, 0x85f8);
307 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
308 : 0 : rtl_mdio_write(hw, 0x14, 0x7c1b);
309 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
310 : 0 : rtl_mdio_write(hw, 0x14, 0x85fc);
311 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
312 : 0 : rtl_mdio_write(hw, 0x14, 0x7de3);
313 : 0 : rtl_mdio_write(hw, 0x14, 0x85fe);
314 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
315 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
316 : 0 : rtl_mdio_write(hw, 0x14, 0x85f9);
317 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
318 : 0 : rtl_mdio_write(hw, 0x14, 0x7d1b);
319 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
320 : 0 : rtl_mdio_write(hw, 0x14, 0x85fd);
321 : 0 : rtl_mdio_write(hw, 0x14, 0xae50);
322 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
323 : 0 : rtl_mdio_write(hw, 0x14, 0x7ee3);
324 : 0 : rtl_mdio_write(hw, 0x14, 0x85ff);
325 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
326 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
327 : 0 : rtl_mdio_write(hw, 0x14, 0x85f6);
328 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
329 : 0 : rtl_mdio_write(hw, 0x14, 0x7e1b);
330 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
331 : 0 : rtl_mdio_write(hw, 0x14, 0x85fa);
332 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
333 : 0 : rtl_mdio_write(hw, 0x14, 0x7fe3);
334 : 0 : rtl_mdio_write(hw, 0x14, 0x85ff);
335 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
336 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
337 : 0 : rtl_mdio_write(hw, 0x14, 0x85f7);
338 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
339 : 0 : rtl_mdio_write(hw, 0x14, 0x7f1b);
340 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
341 : 0 : rtl_mdio_write(hw, 0x14, 0x85fb);
342 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
343 : 0 : rtl_mdio_write(hw, 0x14, 0x80e3);
344 : 0 : rtl_mdio_write(hw, 0x14, 0x85ff);
345 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
346 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
347 : 0 : rtl_mdio_write(hw, 0x14, 0x85f8);
348 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
349 : 0 : rtl_mdio_write(hw, 0x14, 0x801b);
350 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
351 : 0 : rtl_mdio_write(hw, 0x14, 0x85fc);
352 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
353 : 0 : rtl_mdio_write(hw, 0x14, 0x81e3);
354 : 0 : rtl_mdio_write(hw, 0x14, 0x85ff);
355 : 0 : rtl_mdio_write(hw, 0x14, 0x1a03);
356 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
357 : 0 : rtl_mdio_write(hw, 0x14, 0x85f9);
358 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
359 : 0 : rtl_mdio_write(hw, 0x14, 0x811b);
360 : 0 : rtl_mdio_write(hw, 0x14, 0x03e4);
361 : 0 : rtl_mdio_write(hw, 0x14, 0x85fd);
362 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
363 : 0 : rtl_mdio_write(hw, 0x14, 0xf6ad);
364 : 0 : rtl_mdio_write(hw, 0x14, 0x2404);
365 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
366 : 0 : rtl_mdio_write(hw, 0x14, 0xf610);
367 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
368 : 0 : rtl_mdio_write(hw, 0x14, 0xf7ad);
369 : 0 : rtl_mdio_write(hw, 0x14, 0x2404);
370 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
371 : 0 : rtl_mdio_write(hw, 0x14, 0xf710);
372 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
373 : 0 : rtl_mdio_write(hw, 0x14, 0xf8ad);
374 : 0 : rtl_mdio_write(hw, 0x14, 0x2404);
375 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
376 : 0 : rtl_mdio_write(hw, 0x14, 0xf810);
377 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
378 : 0 : rtl_mdio_write(hw, 0x14, 0xf9ad);
379 : 0 : rtl_mdio_write(hw, 0x14, 0x2404);
380 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
381 : 0 : rtl_mdio_write(hw, 0x14, 0xf910);
382 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
383 : 0 : rtl_mdio_write(hw, 0x14, 0xfaad);
384 : 0 : rtl_mdio_write(hw, 0x14, 0x2704);
385 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
386 : 0 : rtl_mdio_write(hw, 0x14, 0xfa00);
387 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
388 : 0 : rtl_mdio_write(hw, 0x14, 0xfbad);
389 : 0 : rtl_mdio_write(hw, 0x14, 0x2704);
390 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
391 : 0 : rtl_mdio_write(hw, 0x14, 0xfb00);
392 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
393 : 0 : rtl_mdio_write(hw, 0x14, 0xfcad);
394 : 0 : rtl_mdio_write(hw, 0x14, 0x2704);
395 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
396 : 0 : rtl_mdio_write(hw, 0x14, 0xfc00);
397 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
398 : 0 : rtl_mdio_write(hw, 0x14, 0xfdad);
399 : 0 : rtl_mdio_write(hw, 0x14, 0x2704);
400 : 0 : rtl_mdio_write(hw, 0x14, 0xee85);
401 : 0 : rtl_mdio_write(hw, 0x14, 0xfd00);
402 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
403 : 0 : rtl_mdio_write(hw, 0x14, 0x44ad);
404 : 0 : rtl_mdio_write(hw, 0x14, 0x203f);
405 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
406 : 0 : rtl_mdio_write(hw, 0x14, 0xf6e4);
407 : 0 : rtl_mdio_write(hw, 0x14, 0x8288);
408 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
409 : 0 : rtl_mdio_write(hw, 0x14, 0xfae4);
410 : 0 : rtl_mdio_write(hw, 0x14, 0x8289);
411 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
412 : 0 : rtl_mdio_write(hw, 0x14, 0x440d);
413 : 0 : rtl_mdio_write(hw, 0x14, 0x0458);
414 : 0 : rtl_mdio_write(hw, 0x14, 0x01bf);
415 : 0 : rtl_mdio_write(hw, 0x14, 0x8264);
416 : 0 : rtl_mdio_write(hw, 0x14, 0x0215);
417 : 0 : rtl_mdio_write(hw, 0x14, 0x38bf);
418 : 0 : rtl_mdio_write(hw, 0x14, 0x824e);
419 : 0 : rtl_mdio_write(hw, 0x14, 0x0213);
420 : 0 : rtl_mdio_write(hw, 0x14, 0x06a0);
421 : 0 : rtl_mdio_write(hw, 0x14, 0x010f);
422 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
423 : 0 : rtl_mdio_write(hw, 0x14, 0x44f6);
424 : 0 : rtl_mdio_write(hw, 0x14, 0x20e4);
425 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
426 : 0 : rtl_mdio_write(hw, 0x14, 0x580f);
427 : 0 : rtl_mdio_write(hw, 0x14, 0xe582);
428 : 0 : rtl_mdio_write(hw, 0x14, 0x5aae);
429 : 0 : rtl_mdio_write(hw, 0x14, 0x0ebf);
430 : 0 : rtl_mdio_write(hw, 0x14, 0x825e);
431 : 0 : rtl_mdio_write(hw, 0x14, 0xe382);
432 : 0 : rtl_mdio_write(hw, 0x14, 0x44f7);
433 : 0 : rtl_mdio_write(hw, 0x14, 0x3ce7);
434 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
435 : 0 : rtl_mdio_write(hw, 0x14, 0x0212);
436 : 0 : rtl_mdio_write(hw, 0x14, 0xf0ad);
437 : 0 : rtl_mdio_write(hw, 0x14, 0x213f);
438 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
439 : 0 : rtl_mdio_write(hw, 0x14, 0xf7e4);
440 : 0 : rtl_mdio_write(hw, 0x14, 0x8288);
441 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
442 : 0 : rtl_mdio_write(hw, 0x14, 0xfbe4);
443 : 0 : rtl_mdio_write(hw, 0x14, 0x8289);
444 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
445 : 0 : rtl_mdio_write(hw, 0x14, 0x440d);
446 : 0 : rtl_mdio_write(hw, 0x14, 0x0558);
447 : 0 : rtl_mdio_write(hw, 0x14, 0x01bf);
448 : 0 : rtl_mdio_write(hw, 0x14, 0x826b);
449 : 0 : rtl_mdio_write(hw, 0x14, 0x0215);
450 : 0 : rtl_mdio_write(hw, 0x14, 0x38bf);
451 : 0 : rtl_mdio_write(hw, 0x14, 0x824f);
452 : 0 : rtl_mdio_write(hw, 0x14, 0x0213);
453 : 0 : rtl_mdio_write(hw, 0x14, 0x06a0);
454 : 0 : rtl_mdio_write(hw, 0x14, 0x010f);
455 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
456 : 0 : rtl_mdio_write(hw, 0x14, 0x44f6);
457 : 0 : rtl_mdio_write(hw, 0x14, 0x21e4);
458 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
459 : 0 : rtl_mdio_write(hw, 0x14, 0x580f);
460 : 0 : rtl_mdio_write(hw, 0x14, 0xe582);
461 : 0 : rtl_mdio_write(hw, 0x14, 0x5bae);
462 : 0 : rtl_mdio_write(hw, 0x14, 0x0ebf);
463 : 0 : rtl_mdio_write(hw, 0x14, 0x8265);
464 : 0 : rtl_mdio_write(hw, 0x14, 0xe382);
465 : 0 : rtl_mdio_write(hw, 0x14, 0x44f7);
466 : 0 : rtl_mdio_write(hw, 0x14, 0x3de7);
467 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
468 : 0 : rtl_mdio_write(hw, 0x14, 0x0212);
469 : 0 : rtl_mdio_write(hw, 0x14, 0xf0ad);
470 : 0 : rtl_mdio_write(hw, 0x14, 0x223f);
471 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
472 : 0 : rtl_mdio_write(hw, 0x14, 0xf8e4);
473 : 0 : rtl_mdio_write(hw, 0x14, 0x8288);
474 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
475 : 0 : rtl_mdio_write(hw, 0x14, 0xfce4);
476 : 0 : rtl_mdio_write(hw, 0x14, 0x8289);
477 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
478 : 0 : rtl_mdio_write(hw, 0x14, 0x440d);
479 : 0 : rtl_mdio_write(hw, 0x14, 0x0658);
480 : 0 : rtl_mdio_write(hw, 0x14, 0x01bf);
481 : 0 : rtl_mdio_write(hw, 0x14, 0x8272);
482 : 0 : rtl_mdio_write(hw, 0x14, 0x0215);
483 : 0 : rtl_mdio_write(hw, 0x14, 0x38bf);
484 : 0 : rtl_mdio_write(hw, 0x14, 0x8250);
485 : 0 : rtl_mdio_write(hw, 0x14, 0x0213);
486 : 0 : rtl_mdio_write(hw, 0x14, 0x06a0);
487 : 0 : rtl_mdio_write(hw, 0x14, 0x010f);
488 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
489 : 0 : rtl_mdio_write(hw, 0x14, 0x44f6);
490 : 0 : rtl_mdio_write(hw, 0x14, 0x22e4);
491 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
492 : 0 : rtl_mdio_write(hw, 0x14, 0x580f);
493 : 0 : rtl_mdio_write(hw, 0x14, 0xe582);
494 : 0 : rtl_mdio_write(hw, 0x14, 0x5cae);
495 : 0 : rtl_mdio_write(hw, 0x14, 0x0ebf);
496 : 0 : rtl_mdio_write(hw, 0x14, 0x826c);
497 : 0 : rtl_mdio_write(hw, 0x14, 0xe382);
498 : 0 : rtl_mdio_write(hw, 0x14, 0x44f7);
499 : 0 : rtl_mdio_write(hw, 0x14, 0x3ee7);
500 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
501 : 0 : rtl_mdio_write(hw, 0x14, 0x0212);
502 : 0 : rtl_mdio_write(hw, 0x14, 0xf0ad);
503 : 0 : rtl_mdio_write(hw, 0x14, 0x233f);
504 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
505 : 0 : rtl_mdio_write(hw, 0x14, 0xf9e4);
506 : 0 : rtl_mdio_write(hw, 0x14, 0x8288);
507 : 0 : rtl_mdio_write(hw, 0x14, 0xe085);
508 : 0 : rtl_mdio_write(hw, 0x14, 0xfde4);
509 : 0 : rtl_mdio_write(hw, 0x14, 0x8289);
510 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
511 : 0 : rtl_mdio_write(hw, 0x14, 0x440d);
512 : 0 : rtl_mdio_write(hw, 0x14, 0x0758);
513 : 0 : rtl_mdio_write(hw, 0x14, 0x01bf);
514 : 0 : rtl_mdio_write(hw, 0x14, 0x8279);
515 : 0 : rtl_mdio_write(hw, 0x14, 0x0215);
516 : 0 : rtl_mdio_write(hw, 0x14, 0x38bf);
517 : 0 : rtl_mdio_write(hw, 0x14, 0x8251);
518 : 0 : rtl_mdio_write(hw, 0x14, 0x0213);
519 : 0 : rtl_mdio_write(hw, 0x14, 0x06a0);
520 : 0 : rtl_mdio_write(hw, 0x14, 0x010f);
521 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
522 : 0 : rtl_mdio_write(hw, 0x14, 0x44f6);
523 : 0 : rtl_mdio_write(hw, 0x14, 0x23e4);
524 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
525 : 0 : rtl_mdio_write(hw, 0x14, 0x580f);
526 : 0 : rtl_mdio_write(hw, 0x14, 0xe582);
527 : 0 : rtl_mdio_write(hw, 0x14, 0x5dae);
528 : 0 : rtl_mdio_write(hw, 0x14, 0x0ebf);
529 : 0 : rtl_mdio_write(hw, 0x14, 0x8273);
530 : 0 : rtl_mdio_write(hw, 0x14, 0xe382);
531 : 0 : rtl_mdio_write(hw, 0x14, 0x44f7);
532 : 0 : rtl_mdio_write(hw, 0x14, 0x3fe7);
533 : 0 : rtl_mdio_write(hw, 0x14, 0x8244);
534 : 0 : rtl_mdio_write(hw, 0x14, 0x0212);
535 : 0 : rtl_mdio_write(hw, 0x14, 0xf0ee);
536 : 0 : rtl_mdio_write(hw, 0x14, 0x8288);
537 : 0 : rtl_mdio_write(hw, 0x14, 0x10ee);
538 : 0 : rtl_mdio_write(hw, 0x14, 0x8289);
539 : 0 : rtl_mdio_write(hw, 0x14, 0x00af);
540 : 0 : rtl_mdio_write(hw, 0x14, 0x14aa);
541 : 0 : rtl_mdio_write(hw, 0x13, 0xb818);
542 : 0 : rtl_mdio_write(hw, 0x14, 0x13cf);
543 : 0 : rtl_mdio_write(hw, 0x13, 0xb81a);
544 : 0 : rtl_mdio_write(hw, 0x14, 0xfffd);
545 : 0 : rtl_mdio_write(hw, 0x13, 0xb81c);
546 : 0 : rtl_mdio_write(hw, 0x14, 0xfffd);
547 : 0 : rtl_mdio_write(hw, 0x13, 0xb81e);
548 : 0 : rtl_mdio_write(hw, 0x14, 0xfffd);
549 : 0 : rtl_mdio_write(hw, 0x13, 0xb832);
550 : 0 : rtl_mdio_write(hw, 0x14, 0x0001);
551 : :
552 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
553 : 0 : rtl_mdio_write(hw, 0x13, 0x0000);
554 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
555 : 0 : rtl_mdio_write(hw, 0x1f, 0x0B82);
556 : 0 : gphy_val = rtl_mdio_read(hw, 0x17);
557 : 0 : gphy_val &= ~BIT_0;
558 : 0 : rtl_mdio_write(hw, 0x17, gphy_val);
559 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
560 : 0 : rtl_mdio_write(hw, 0x13, 0x8028);
561 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
562 : :
563 : 0 : rtl_clear_phy_mcu_patch_request(hw);
564 : 0 : }
565 : :
566 : : static void
567 : 0 : rtl8168_set_phy_mcu_8168h_3(struct rtl_hw *hw)
568 : : {
569 : : unsigned int gphy_val;
570 : :
571 : 0 : rtl_set_phy_mcu_patch_request(hw);
572 : :
573 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
574 : 0 : rtl_mdio_write(hw, 0x13, 0x8042);
575 : 0 : rtl_mdio_write(hw, 0x14, 0x3800);
576 : 0 : rtl_mdio_write(hw, 0x13, 0xB82E);
577 : 0 : rtl_mdio_write(hw, 0x14, 0x0001);
578 : :
579 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
580 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
581 : 0 : rtl_mdio_write(hw, 0x14, 0x0090);
582 : 0 : rtl_mdio_write(hw, 0x13, 0xA016);
583 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
584 : 0 : rtl_mdio_write(hw, 0x13, 0xA012);
585 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
586 : 0 : rtl_mdio_write(hw, 0x13, 0xA014);
587 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
588 : 0 : rtl_mdio_write(hw, 0x14, 0x8010);
589 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
590 : 0 : rtl_mdio_write(hw, 0x14, 0x8014);
591 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
592 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
593 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
594 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
595 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
596 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
597 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
598 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
599 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
600 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
601 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
602 : 0 : rtl_mdio_write(hw, 0x14, 0x8022);
603 : 0 : rtl_mdio_write(hw, 0x14, 0x2b5d);
604 : 0 : rtl_mdio_write(hw, 0x14, 0x0c68);
605 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
606 : 0 : rtl_mdio_write(hw, 0x14, 0x0b3c);
607 : 0 : rtl_mdio_write(hw, 0x14, 0xc2bb);
608 : 0 : rtl_mdio_write(hw, 0x14, 0xd500);
609 : 0 : rtl_mdio_write(hw, 0x14, 0xc426);
610 : 0 : rtl_mdio_write(hw, 0x14, 0xd01d);
611 : 0 : rtl_mdio_write(hw, 0x14, 0xd1c3);
612 : 0 : rtl_mdio_write(hw, 0x14, 0x401c);
613 : 0 : rtl_mdio_write(hw, 0x14, 0xd501);
614 : 0 : rtl_mdio_write(hw, 0x14, 0xc2b3);
615 : 0 : rtl_mdio_write(hw, 0x14, 0xd500);
616 : 0 : rtl_mdio_write(hw, 0x14, 0xd00b);
617 : 0 : rtl_mdio_write(hw, 0x14, 0xd1c3);
618 : 0 : rtl_mdio_write(hw, 0x14, 0x401c);
619 : 0 : rtl_mdio_write(hw, 0x14, 0x1800);
620 : 0 : rtl_mdio_write(hw, 0x14, 0x0478);
621 : 0 : rtl_mdio_write(hw, 0x13, 0xA026);
622 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
623 : 0 : rtl_mdio_write(hw, 0x13, 0xA024);
624 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
625 : 0 : rtl_mdio_write(hw, 0x13, 0xA022);
626 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
627 : 0 : rtl_mdio_write(hw, 0x13, 0xA020);
628 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
629 : 0 : rtl_mdio_write(hw, 0x13, 0xA006);
630 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
631 : 0 : rtl_mdio_write(hw, 0x13, 0xA004);
632 : 0 : rtl_mdio_write(hw, 0x14, 0x0fff);
633 : 0 : rtl_mdio_write(hw, 0x13, 0xA002);
634 : 0 : rtl_mdio_write(hw, 0x14, 0x0472);
635 : 0 : rtl_mdio_write(hw, 0x13, 0xA000);
636 : 0 : rtl_mdio_write(hw, 0x14, 0x0b3a);
637 : 0 : rtl_mdio_write(hw, 0x13, 0xA008);
638 : 0 : rtl_mdio_write(hw, 0x14, 0x0300);
639 : 0 : rtl_mdio_write(hw, 0x13, 0xB820);
640 : 0 : rtl_mdio_write(hw, 0x14, 0x0010);
641 : :
642 : 0 : rtl_mdio_write(hw, 0x13, 0x83f3);
643 : 0 : rtl_mdio_write(hw, 0x14, 0xaf84);
644 : 0 : rtl_mdio_write(hw, 0x14, 0x0baf);
645 : 0 : rtl_mdio_write(hw, 0x14, 0x8466);
646 : 0 : rtl_mdio_write(hw, 0x14, 0xaf84);
647 : 0 : rtl_mdio_write(hw, 0x14, 0xcdaf);
648 : 0 : rtl_mdio_write(hw, 0x14, 0x873c);
649 : 0 : rtl_mdio_write(hw, 0x14, 0xaf87);
650 : 0 : rtl_mdio_write(hw, 0x14, 0x3faf);
651 : 0 : rtl_mdio_write(hw, 0x14, 0x8760);
652 : 0 : rtl_mdio_write(hw, 0x14, 0xaf87);
653 : 0 : rtl_mdio_write(hw, 0x14, 0x60af);
654 : 0 : rtl_mdio_write(hw, 0x14, 0x8760);
655 : 0 : rtl_mdio_write(hw, 0x14, 0xef79);
656 : 0 : rtl_mdio_write(hw, 0x14, 0xfb89);
657 : 0 : rtl_mdio_write(hw, 0x14, 0xe987);
658 : 0 : rtl_mdio_write(hw, 0x14, 0xffd7);
659 : 0 : rtl_mdio_write(hw, 0x14, 0x0017);
660 : 0 : rtl_mdio_write(hw, 0x14, 0xd400);
661 : 0 : rtl_mdio_write(hw, 0x14, 0x051c);
662 : 0 : rtl_mdio_write(hw, 0x14, 0x421a);
663 : 0 : rtl_mdio_write(hw, 0x14, 0x741b);
664 : 0 : rtl_mdio_write(hw, 0x14, 0x97e9);
665 : 0 : rtl_mdio_write(hw, 0x14, 0x87fe);
666 : 0 : rtl_mdio_write(hw, 0x14, 0xffef);
667 : 0 : rtl_mdio_write(hw, 0x14, 0x97e0);
668 : 0 : rtl_mdio_write(hw, 0x14, 0x82aa);
669 : 0 : rtl_mdio_write(hw, 0x14, 0xa000);
670 : 0 : rtl_mdio_write(hw, 0x14, 0x08ef);
671 : 0 : rtl_mdio_write(hw, 0x14, 0x46dc);
672 : 0 : rtl_mdio_write(hw, 0x14, 0x19dd);
673 : 0 : rtl_mdio_write(hw, 0x14, 0xaf1a);
674 : 0 : rtl_mdio_write(hw, 0x14, 0x37a0);
675 : 0 : rtl_mdio_write(hw, 0x14, 0x012d);
676 : 0 : rtl_mdio_write(hw, 0x14, 0xe082);
677 : 0 : rtl_mdio_write(hw, 0x14, 0xa7ac);
678 : 0 : rtl_mdio_write(hw, 0x14, 0x2013);
679 : 0 : rtl_mdio_write(hw, 0x14, 0xe087);
680 : 0 : rtl_mdio_write(hw, 0x14, 0xffe1);
681 : 0 : rtl_mdio_write(hw, 0x14, 0x87fe);
682 : 0 : rtl_mdio_write(hw, 0x14, 0xac27);
683 : 0 : rtl_mdio_write(hw, 0x14, 0x05a1);
684 : 0 : rtl_mdio_write(hw, 0x14, 0x0807);
685 : 0 : rtl_mdio_write(hw, 0x14, 0xae0f);
686 : 0 : rtl_mdio_write(hw, 0x14, 0xa107);
687 : 0 : rtl_mdio_write(hw, 0x14, 0x02ae);
688 : 0 : rtl_mdio_write(hw, 0x14, 0x0aef);
689 : 0 : rtl_mdio_write(hw, 0x14, 0x4619);
690 : 0 : rtl_mdio_write(hw, 0x14, 0x19dc);
691 : 0 : rtl_mdio_write(hw, 0x14, 0x19dd);
692 : 0 : rtl_mdio_write(hw, 0x14, 0xaf1a);
693 : 0 : rtl_mdio_write(hw, 0x14, 0x37d8);
694 : 0 : rtl_mdio_write(hw, 0x14, 0x19d9);
695 : 0 : rtl_mdio_write(hw, 0x14, 0x19dc);
696 : 0 : rtl_mdio_write(hw, 0x14, 0x19dd);
697 : 0 : rtl_mdio_write(hw, 0x14, 0xaf1a);
698 : 0 : rtl_mdio_write(hw, 0x14, 0x3719);
699 : 0 : rtl_mdio_write(hw, 0x14, 0x19ae);
700 : 0 : rtl_mdio_write(hw, 0x14, 0xcfbf);
701 : 0 : rtl_mdio_write(hw, 0x14, 0x878a);
702 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
703 : 0 : rtl_mdio_write(hw, 0x14, 0xdc3c);
704 : 0 : rtl_mdio_write(hw, 0x14, 0x0005);
705 : 0 : rtl_mdio_write(hw, 0x14, 0xaaf5);
706 : 0 : rtl_mdio_write(hw, 0x14, 0x0249);
707 : 0 : rtl_mdio_write(hw, 0x14, 0xcaef);
708 : 0 : rtl_mdio_write(hw, 0x14, 0x67d7);
709 : 0 : rtl_mdio_write(hw, 0x14, 0x0014);
710 : 0 : rtl_mdio_write(hw, 0x14, 0x0249);
711 : 0 : rtl_mdio_write(hw, 0x14, 0xe5ad);
712 : 0 : rtl_mdio_write(hw, 0x14, 0x50f7);
713 : 0 : rtl_mdio_write(hw, 0x14, 0xd400);
714 : 0 : rtl_mdio_write(hw, 0x14, 0x01bf);
715 : 0 : rtl_mdio_write(hw, 0x14, 0x46a7);
716 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
717 : 0 : rtl_mdio_write(hw, 0x14, 0x98bf);
718 : 0 : rtl_mdio_write(hw, 0x14, 0x465c);
719 : 0 : rtl_mdio_write(hw, 0x14, 0x024a);
720 : 0 : rtl_mdio_write(hw, 0x14, 0x5fd4);
721 : 0 : rtl_mdio_write(hw, 0x14, 0x0003);
722 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
723 : 0 : rtl_mdio_write(hw, 0x14, 0x9c02);
724 : 0 : rtl_mdio_write(hw, 0x14, 0x4498);
725 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
726 : 0 : rtl_mdio_write(hw, 0x14, 0x9902);
727 : 0 : rtl_mdio_write(hw, 0x14, 0x4a5f);
728 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
729 : 0 : rtl_mdio_write(hw, 0x14, 0x8d02);
730 : 0 : rtl_mdio_write(hw, 0x14, 0x4a5f);
731 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
732 : 0 : rtl_mdio_write(hw, 0x14, 0x9002);
733 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
734 : 0 : rtl_mdio_write(hw, 0x14, 0xad28);
735 : 0 : rtl_mdio_write(hw, 0x14, 0xf7bf);
736 : 0 : rtl_mdio_write(hw, 0x14, 0x8796);
737 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
738 : 0 : rtl_mdio_write(hw, 0x14, 0xdcad);
739 : 0 : rtl_mdio_write(hw, 0x14, 0x28f7);
740 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
741 : 0 : rtl_mdio_write(hw, 0x14, 0x9302);
742 : 0 : rtl_mdio_write(hw, 0x14, 0x4a5f);
743 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
744 : 0 : rtl_mdio_write(hw, 0x14, 0x9302);
745 : 0 : rtl_mdio_write(hw, 0x14, 0x4a56);
746 : 0 : rtl_mdio_write(hw, 0x14, 0xbf46);
747 : 0 : rtl_mdio_write(hw, 0x14, 0x5c02);
748 : 0 : rtl_mdio_write(hw, 0x14, 0x4a56);
749 : 0 : rtl_mdio_write(hw, 0x14, 0xbf45);
750 : 0 : rtl_mdio_write(hw, 0x14, 0x21af);
751 : 0 : rtl_mdio_write(hw, 0x14, 0x020e);
752 : 0 : rtl_mdio_write(hw, 0x14, 0xee82);
753 : 0 : rtl_mdio_write(hw, 0x14, 0x5000);
754 : 0 : rtl_mdio_write(hw, 0x14, 0x0284);
755 : 0 : rtl_mdio_write(hw, 0x14, 0xdd02);
756 : 0 : rtl_mdio_write(hw, 0x14, 0x8521);
757 : 0 : rtl_mdio_write(hw, 0x14, 0x0285);
758 : 0 : rtl_mdio_write(hw, 0x14, 0x36af);
759 : 0 : rtl_mdio_write(hw, 0x14, 0x03d2);
760 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
761 : 0 : rtl_mdio_write(hw, 0x14, 0xfafb);
762 : 0 : rtl_mdio_write(hw, 0x14, 0xef59);
763 : 0 : rtl_mdio_write(hw, 0x14, 0xbf45);
764 : 0 : rtl_mdio_write(hw, 0x14, 0x3002);
765 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
766 : 0 : rtl_mdio_write(hw, 0x14, 0x3c00);
767 : 0 : rtl_mdio_write(hw, 0x14, 0x03aa);
768 : 0 : rtl_mdio_write(hw, 0x14, 0x2cbf);
769 : 0 : rtl_mdio_write(hw, 0x14, 0x8790);
770 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
771 : 0 : rtl_mdio_write(hw, 0x14, 0xdcad);
772 : 0 : rtl_mdio_write(hw, 0x14, 0x2823);
773 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
774 : 0 : rtl_mdio_write(hw, 0x14, 0x9602);
775 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
776 : 0 : rtl_mdio_write(hw, 0x14, 0xad28);
777 : 0 : rtl_mdio_write(hw, 0x14, 0x1a02);
778 : 0 : rtl_mdio_write(hw, 0x14, 0x49ca);
779 : 0 : rtl_mdio_write(hw, 0x14, 0xef67);
780 : 0 : rtl_mdio_write(hw, 0x14, 0xd700);
781 : 0 : rtl_mdio_write(hw, 0x14, 0x0202);
782 : 0 : rtl_mdio_write(hw, 0x14, 0x49e5);
783 : 0 : rtl_mdio_write(hw, 0x14, 0xad50);
784 : 0 : rtl_mdio_write(hw, 0x14, 0xf7bf);
785 : 0 : rtl_mdio_write(hw, 0x14, 0x8793);
786 : 0 : rtl_mdio_write(hw, 0x14, 0x024a);
787 : 0 : rtl_mdio_write(hw, 0x14, 0x5fbf);
788 : 0 : rtl_mdio_write(hw, 0x14, 0x8793);
789 : 0 : rtl_mdio_write(hw, 0x14, 0x024a);
790 : 0 : rtl_mdio_write(hw, 0x14, 0x56ef);
791 : 0 : rtl_mdio_write(hw, 0x14, 0x95ff);
792 : 0 : rtl_mdio_write(hw, 0x14, 0xfefd);
793 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
794 : 0 : rtl_mdio_write(hw, 0x14, 0xf8fa);
795 : 0 : rtl_mdio_write(hw, 0x14, 0xef69);
796 : 0 : rtl_mdio_write(hw, 0x14, 0xe080);
797 : 0 : rtl_mdio_write(hw, 0x14, 0x15ad);
798 : 0 : rtl_mdio_write(hw, 0x14, 0x2406);
799 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
800 : 0 : rtl_mdio_write(hw, 0x14, 0x8702);
801 : 0 : rtl_mdio_write(hw, 0x14, 0x4a56);
802 : 0 : rtl_mdio_write(hw, 0x14, 0xef96);
803 : 0 : rtl_mdio_write(hw, 0x14, 0xfefc);
804 : 0 : rtl_mdio_write(hw, 0x14, 0x04f8);
805 : 0 : rtl_mdio_write(hw, 0x14, 0xe087);
806 : 0 : rtl_mdio_write(hw, 0x14, 0xf9e1);
807 : 0 : rtl_mdio_write(hw, 0x14, 0x87fa);
808 : 0 : rtl_mdio_write(hw, 0x14, 0x1b10);
809 : 0 : rtl_mdio_write(hw, 0x14, 0x9f1e);
810 : 0 : rtl_mdio_write(hw, 0x14, 0xee87);
811 : 0 : rtl_mdio_write(hw, 0x14, 0xf900);
812 : 0 : rtl_mdio_write(hw, 0x14, 0xe080);
813 : 0 : rtl_mdio_write(hw, 0x14, 0x15ac);
814 : 0 : rtl_mdio_write(hw, 0x14, 0x2606);
815 : 0 : rtl_mdio_write(hw, 0x14, 0xee87);
816 : 0 : rtl_mdio_write(hw, 0x14, 0xf700);
817 : 0 : rtl_mdio_write(hw, 0x14, 0xae12);
818 : 0 : rtl_mdio_write(hw, 0x14, 0x0286);
819 : 0 : rtl_mdio_write(hw, 0x14, 0x9d02);
820 : 0 : rtl_mdio_write(hw, 0x14, 0x8565);
821 : 0 : rtl_mdio_write(hw, 0x14, 0x0285);
822 : 0 : rtl_mdio_write(hw, 0x14, 0x9d02);
823 : 0 : rtl_mdio_write(hw, 0x14, 0x8660);
824 : 0 : rtl_mdio_write(hw, 0x14, 0xae04);
825 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
826 : 0 : rtl_mdio_write(hw, 0x14, 0x87f9);
827 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
828 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
829 : 0 : rtl_mdio_write(hw, 0x14, 0xfaef);
830 : 0 : rtl_mdio_write(hw, 0x14, 0x69fa);
831 : 0 : rtl_mdio_write(hw, 0x14, 0xbf45);
832 : 0 : rtl_mdio_write(hw, 0x14, 0x3002);
833 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
834 : 0 : rtl_mdio_write(hw, 0x14, 0xa103);
835 : 0 : rtl_mdio_write(hw, 0x14, 0x22e0);
836 : 0 : rtl_mdio_write(hw, 0x14, 0x87eb);
837 : 0 : rtl_mdio_write(hw, 0x14, 0xe187);
838 : 0 : rtl_mdio_write(hw, 0x14, 0xecef);
839 : 0 : rtl_mdio_write(hw, 0x14, 0x64bf);
840 : 0 : rtl_mdio_write(hw, 0x14, 0x876f);
841 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
842 : 0 : rtl_mdio_write(hw, 0x14, 0xdc1b);
843 : 0 : rtl_mdio_write(hw, 0x14, 0x46aa);
844 : 0 : rtl_mdio_write(hw, 0x14, 0x0abf);
845 : 0 : rtl_mdio_write(hw, 0x14, 0x8772);
846 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
847 : 0 : rtl_mdio_write(hw, 0x14, 0xdc1b);
848 : 0 : rtl_mdio_write(hw, 0x14, 0x46ab);
849 : 0 : rtl_mdio_write(hw, 0x14, 0x06bf);
850 : 0 : rtl_mdio_write(hw, 0x14, 0x876c);
851 : 0 : rtl_mdio_write(hw, 0x14, 0x024a);
852 : 0 : rtl_mdio_write(hw, 0x14, 0x5ffe);
853 : 0 : rtl_mdio_write(hw, 0x14, 0xef96);
854 : 0 : rtl_mdio_write(hw, 0x14, 0xfefd);
855 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
856 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
857 : 0 : rtl_mdio_write(hw, 0x14, 0xef59);
858 : 0 : rtl_mdio_write(hw, 0x14, 0xf9bf);
859 : 0 : rtl_mdio_write(hw, 0x14, 0x4530);
860 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
861 : 0 : rtl_mdio_write(hw, 0x14, 0xdca1);
862 : 0 : rtl_mdio_write(hw, 0x14, 0x0310);
863 : 0 : rtl_mdio_write(hw, 0x14, 0xe087);
864 : 0 : rtl_mdio_write(hw, 0x14, 0xf7ac);
865 : 0 : rtl_mdio_write(hw, 0x14, 0x2605);
866 : 0 : rtl_mdio_write(hw, 0x14, 0x0285);
867 : 0 : rtl_mdio_write(hw, 0x14, 0xc9ae);
868 : 0 : rtl_mdio_write(hw, 0x14, 0x0d02);
869 : 0 : rtl_mdio_write(hw, 0x14, 0x8613);
870 : 0 : rtl_mdio_write(hw, 0x14, 0xae08);
871 : 0 : rtl_mdio_write(hw, 0x14, 0xe287);
872 : 0 : rtl_mdio_write(hw, 0x14, 0xf7f6);
873 : 0 : rtl_mdio_write(hw, 0x14, 0x36e6);
874 : 0 : rtl_mdio_write(hw, 0x14, 0x87f7);
875 : 0 : rtl_mdio_write(hw, 0x14, 0xfdef);
876 : 0 : rtl_mdio_write(hw, 0x14, 0x95fd);
877 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
878 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
879 : 0 : rtl_mdio_write(hw, 0x14, 0xfafb);
880 : 0 : rtl_mdio_write(hw, 0x14, 0xef79);
881 : 0 : rtl_mdio_write(hw, 0x14, 0xfbbf);
882 : 0 : rtl_mdio_write(hw, 0x14, 0x876f);
883 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
884 : 0 : rtl_mdio_write(hw, 0x14, 0xdcef);
885 : 0 : rtl_mdio_write(hw, 0x14, 0x64e2);
886 : 0 : rtl_mdio_write(hw, 0x14, 0x87e9);
887 : 0 : rtl_mdio_write(hw, 0x14, 0xe387);
888 : 0 : rtl_mdio_write(hw, 0x14, 0xea1b);
889 : 0 : rtl_mdio_write(hw, 0x14, 0x659e);
890 : 0 : rtl_mdio_write(hw, 0x14, 0x10e4);
891 : 0 : rtl_mdio_write(hw, 0x14, 0x87e9);
892 : 0 : rtl_mdio_write(hw, 0x14, 0xe587);
893 : 0 : rtl_mdio_write(hw, 0x14, 0xeae2);
894 : 0 : rtl_mdio_write(hw, 0x14, 0x87f7);
895 : 0 : rtl_mdio_write(hw, 0x14, 0xf636);
896 : 0 : rtl_mdio_write(hw, 0x14, 0xe687);
897 : 0 : rtl_mdio_write(hw, 0x14, 0xf7ae);
898 : 0 : rtl_mdio_write(hw, 0x14, 0x19e2);
899 : 0 : rtl_mdio_write(hw, 0x14, 0x87f7);
900 : 0 : rtl_mdio_write(hw, 0x14, 0xf736);
901 : 0 : rtl_mdio_write(hw, 0x14, 0xe687);
902 : 0 : rtl_mdio_write(hw, 0x14, 0xf700);
903 : 0 : rtl_mdio_write(hw, 0x14, 0x00ae);
904 : 0 : rtl_mdio_write(hw, 0x14, 0x0200);
905 : 0 : rtl_mdio_write(hw, 0x14, 0x0002);
906 : 0 : rtl_mdio_write(hw, 0x14, 0x49ca);
907 : 0 : rtl_mdio_write(hw, 0x14, 0xef57);
908 : 0 : rtl_mdio_write(hw, 0x14, 0xe687);
909 : 0 : rtl_mdio_write(hw, 0x14, 0xe7e7);
910 : 0 : rtl_mdio_write(hw, 0x14, 0x87e8);
911 : 0 : rtl_mdio_write(hw, 0x14, 0xffef);
912 : 0 : rtl_mdio_write(hw, 0x14, 0x97ff);
913 : 0 : rtl_mdio_write(hw, 0x14, 0xfefd);
914 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
915 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
916 : 0 : rtl_mdio_write(hw, 0x14, 0xfafb);
917 : 0 : rtl_mdio_write(hw, 0x14, 0xef79);
918 : 0 : rtl_mdio_write(hw, 0x14, 0xfbe2);
919 : 0 : rtl_mdio_write(hw, 0x14, 0x87e7);
920 : 0 : rtl_mdio_write(hw, 0x14, 0xe387);
921 : 0 : rtl_mdio_write(hw, 0x14, 0xe8ef);
922 : 0 : rtl_mdio_write(hw, 0x14, 0x65e2);
923 : 0 : rtl_mdio_write(hw, 0x14, 0x87fb);
924 : 0 : rtl_mdio_write(hw, 0x14, 0xe387);
925 : 0 : rtl_mdio_write(hw, 0x14, 0xfcef);
926 : 0 : rtl_mdio_write(hw, 0x14, 0x7502);
927 : 0 : rtl_mdio_write(hw, 0x14, 0x49e5);
928 : 0 : rtl_mdio_write(hw, 0x14, 0xac50);
929 : 0 : rtl_mdio_write(hw, 0x14, 0x1abf);
930 : 0 : rtl_mdio_write(hw, 0x14, 0x876f);
931 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
932 : 0 : rtl_mdio_write(hw, 0x14, 0xdcef);
933 : 0 : rtl_mdio_write(hw, 0x14, 0x64e2);
934 : 0 : rtl_mdio_write(hw, 0x14, 0x87e9);
935 : 0 : rtl_mdio_write(hw, 0x14, 0xe387);
936 : 0 : rtl_mdio_write(hw, 0x14, 0xea1b);
937 : 0 : rtl_mdio_write(hw, 0x14, 0x659e);
938 : 0 : rtl_mdio_write(hw, 0x14, 0x16e4);
939 : 0 : rtl_mdio_write(hw, 0x14, 0x87e9);
940 : 0 : rtl_mdio_write(hw, 0x14, 0xe587);
941 : 0 : rtl_mdio_write(hw, 0x14, 0xeaae);
942 : 0 : rtl_mdio_write(hw, 0x14, 0x06bf);
943 : 0 : rtl_mdio_write(hw, 0x14, 0x876c);
944 : 0 : rtl_mdio_write(hw, 0x14, 0x024a);
945 : 0 : rtl_mdio_write(hw, 0x14, 0x5fe2);
946 : 0 : rtl_mdio_write(hw, 0x14, 0x87f7);
947 : 0 : rtl_mdio_write(hw, 0x14, 0xf636);
948 : 0 : rtl_mdio_write(hw, 0x14, 0xe687);
949 : 0 : rtl_mdio_write(hw, 0x14, 0xf7ff);
950 : 0 : rtl_mdio_write(hw, 0x14, 0xef97);
951 : 0 : rtl_mdio_write(hw, 0x14, 0xfffe);
952 : 0 : rtl_mdio_write(hw, 0x14, 0xfdfc);
953 : 0 : rtl_mdio_write(hw, 0x14, 0x04f8);
954 : 0 : rtl_mdio_write(hw, 0x14, 0xf9fa);
955 : 0 : rtl_mdio_write(hw, 0x14, 0xef69);
956 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
957 : 0 : rtl_mdio_write(hw, 0x14, 0x6602);
958 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
959 : 0 : rtl_mdio_write(hw, 0x14, 0xad28);
960 : 0 : rtl_mdio_write(hw, 0x14, 0x29bf);
961 : 0 : rtl_mdio_write(hw, 0x14, 0x8763);
962 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
963 : 0 : rtl_mdio_write(hw, 0x14, 0xdcef);
964 : 0 : rtl_mdio_write(hw, 0x14, 0x54bf);
965 : 0 : rtl_mdio_write(hw, 0x14, 0x8760);
966 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
967 : 0 : rtl_mdio_write(hw, 0x14, 0xdcac);
968 : 0 : rtl_mdio_write(hw, 0x14, 0x290d);
969 : 0 : rtl_mdio_write(hw, 0x14, 0xac28);
970 : 0 : rtl_mdio_write(hw, 0x14, 0x05a3);
971 : 0 : rtl_mdio_write(hw, 0x14, 0x020c);
972 : 0 : rtl_mdio_write(hw, 0x14, 0xae10);
973 : 0 : rtl_mdio_write(hw, 0x14, 0xa303);
974 : 0 : rtl_mdio_write(hw, 0x14, 0x07ae);
975 : 0 : rtl_mdio_write(hw, 0x14, 0x0ba3);
976 : 0 : rtl_mdio_write(hw, 0x14, 0x0402);
977 : 0 : rtl_mdio_write(hw, 0x14, 0xae06);
978 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
979 : 0 : rtl_mdio_write(hw, 0x14, 0x6c02);
980 : 0 : rtl_mdio_write(hw, 0x14, 0x4a5f);
981 : 0 : rtl_mdio_write(hw, 0x14, 0xef96);
982 : 0 : rtl_mdio_write(hw, 0x14, 0xfefd);
983 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
984 : 0 : rtl_mdio_write(hw, 0x14, 0xf8f9);
985 : 0 : rtl_mdio_write(hw, 0x14, 0xfafb);
986 : 0 : rtl_mdio_write(hw, 0x14, 0xef69);
987 : 0 : rtl_mdio_write(hw, 0x14, 0xfae0);
988 : 0 : rtl_mdio_write(hw, 0x14, 0x8015);
989 : 0 : rtl_mdio_write(hw, 0x14, 0xad25);
990 : 0 : rtl_mdio_write(hw, 0x14, 0x41d2);
991 : 0 : rtl_mdio_write(hw, 0x14, 0x0002);
992 : 0 : rtl_mdio_write(hw, 0x14, 0x86f3);
993 : 0 : rtl_mdio_write(hw, 0x14, 0xe087);
994 : 0 : rtl_mdio_write(hw, 0x14, 0xebe1);
995 : 0 : rtl_mdio_write(hw, 0x14, 0x87ec);
996 : 0 : rtl_mdio_write(hw, 0x14, 0x1b46);
997 : 0 : rtl_mdio_write(hw, 0x14, 0xab26);
998 : 0 : rtl_mdio_write(hw, 0x14, 0xd40b);
999 : 0 : rtl_mdio_write(hw, 0x14, 0xff1b);
1000 : 0 : rtl_mdio_write(hw, 0x14, 0x46aa);
1001 : 0 : rtl_mdio_write(hw, 0x14, 0x1fac);
1002 : 0 : rtl_mdio_write(hw, 0x14, 0x3204);
1003 : 0 : rtl_mdio_write(hw, 0x14, 0xef32);
1004 : 0 : rtl_mdio_write(hw, 0x14, 0xae02);
1005 : 0 : rtl_mdio_write(hw, 0x14, 0xd304);
1006 : 0 : rtl_mdio_write(hw, 0x14, 0x0c31);
1007 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
1008 : 0 : rtl_mdio_write(hw, 0x14, 0xeb1a);
1009 : 0 : rtl_mdio_write(hw, 0x14, 0x93d8);
1010 : 0 : rtl_mdio_write(hw, 0x14, 0x19d9);
1011 : 0 : rtl_mdio_write(hw, 0x14, 0x1b46);
1012 : 0 : rtl_mdio_write(hw, 0x14, 0xab0e);
1013 : 0 : rtl_mdio_write(hw, 0x14, 0x19d8);
1014 : 0 : rtl_mdio_write(hw, 0x14, 0x19d9);
1015 : 0 : rtl_mdio_write(hw, 0x14, 0x1b46);
1016 : 0 : rtl_mdio_write(hw, 0x14, 0xaa06);
1017 : 0 : rtl_mdio_write(hw, 0x14, 0x12a2);
1018 : 0 : rtl_mdio_write(hw, 0x14, 0x08c9);
1019 : 0 : rtl_mdio_write(hw, 0x14, 0xae06);
1020 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
1021 : 0 : rtl_mdio_write(hw, 0x14, 0x6902);
1022 : 0 : rtl_mdio_write(hw, 0x14, 0x4a5f);
1023 : 0 : rtl_mdio_write(hw, 0x14, 0xfeef);
1024 : 0 : rtl_mdio_write(hw, 0x14, 0x96ff);
1025 : 0 : rtl_mdio_write(hw, 0x14, 0xfefd);
1026 : 0 : rtl_mdio_write(hw, 0x14, 0xfc04);
1027 : 0 : rtl_mdio_write(hw, 0x14, 0xf8fb);
1028 : 0 : rtl_mdio_write(hw, 0x14, 0xef79);
1029 : 0 : rtl_mdio_write(hw, 0x14, 0xa200);
1030 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1031 : 0 : rtl_mdio_write(hw, 0x14, 0x876f);
1032 : 0 : rtl_mdio_write(hw, 0x14, 0xae33);
1033 : 0 : rtl_mdio_write(hw, 0x14, 0xa201);
1034 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1035 : 0 : rtl_mdio_write(hw, 0x14, 0x8772);
1036 : 0 : rtl_mdio_write(hw, 0x14, 0xae2b);
1037 : 0 : rtl_mdio_write(hw, 0x14, 0xa202);
1038 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1039 : 0 : rtl_mdio_write(hw, 0x14, 0x8775);
1040 : 0 : rtl_mdio_write(hw, 0x14, 0xae23);
1041 : 0 : rtl_mdio_write(hw, 0x14, 0xa203);
1042 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1043 : 0 : rtl_mdio_write(hw, 0x14, 0x8778);
1044 : 0 : rtl_mdio_write(hw, 0x14, 0xae1b);
1045 : 0 : rtl_mdio_write(hw, 0x14, 0xa204);
1046 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1047 : 0 : rtl_mdio_write(hw, 0x14, 0x877b);
1048 : 0 : rtl_mdio_write(hw, 0x14, 0xae13);
1049 : 0 : rtl_mdio_write(hw, 0x14, 0xa205);
1050 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1051 : 0 : rtl_mdio_write(hw, 0x14, 0x877e);
1052 : 0 : rtl_mdio_write(hw, 0x14, 0xae0b);
1053 : 0 : rtl_mdio_write(hw, 0x14, 0xa206);
1054 : 0 : rtl_mdio_write(hw, 0x14, 0x05bf);
1055 : 0 : rtl_mdio_write(hw, 0x14, 0x8781);
1056 : 0 : rtl_mdio_write(hw, 0x14, 0xae03);
1057 : 0 : rtl_mdio_write(hw, 0x14, 0xbf87);
1058 : 0 : rtl_mdio_write(hw, 0x14, 0x8402);
1059 : 0 : rtl_mdio_write(hw, 0x14, 0x44dc);
1060 : 0 : rtl_mdio_write(hw, 0x14, 0xef64);
1061 : 0 : rtl_mdio_write(hw, 0x14, 0xef97);
1062 : 0 : rtl_mdio_write(hw, 0x14, 0xfffc);
1063 : 0 : rtl_mdio_write(hw, 0x14, 0x04af);
1064 : 0 : rtl_mdio_write(hw, 0x14, 0x00ed);
1065 : 0 : rtl_mdio_write(hw, 0x14, 0x0220);
1066 : 0 : rtl_mdio_write(hw, 0x14, 0xa5f8);
1067 : 0 : rtl_mdio_write(hw, 0x14, 0xfaef);
1068 : 0 : rtl_mdio_write(hw, 0x14, 0x69bf);
1069 : 0 : rtl_mdio_write(hw, 0x14, 0x4554);
1070 : 0 : rtl_mdio_write(hw, 0x14, 0x0244);
1071 : 0 : rtl_mdio_write(hw, 0x14, 0xdce0);
1072 : 0 : rtl_mdio_write(hw, 0x14, 0x87ff);
1073 : 0 : rtl_mdio_write(hw, 0x14, 0x1f01);
1074 : 0 : rtl_mdio_write(hw, 0x14, 0x9e06);
1075 : 0 : rtl_mdio_write(hw, 0x14, 0xe587);
1076 : 0 : rtl_mdio_write(hw, 0x14, 0xff02);
1077 : 0 : rtl_mdio_write(hw, 0x14, 0x4b05);
1078 : 0 : rtl_mdio_write(hw, 0x14, 0xef96);
1079 : 0 : rtl_mdio_write(hw, 0x14, 0xfefc);
1080 : 0 : rtl_mdio_write(hw, 0x14, 0xaf03);
1081 : 0 : rtl_mdio_write(hw, 0x14, 0x8c54);
1082 : 0 : rtl_mdio_write(hw, 0x14, 0xa434);
1083 : 0 : rtl_mdio_write(hw, 0x14, 0x74a6);
1084 : 0 : rtl_mdio_write(hw, 0x14, 0x0022);
1085 : 0 : rtl_mdio_write(hw, 0x14, 0xa434);
1086 : 0 : rtl_mdio_write(hw, 0x14, 0x11b8);
1087 : 0 : rtl_mdio_write(hw, 0x14, 0x4222);
1088 : 0 : rtl_mdio_write(hw, 0x14, 0xb842);
1089 : 0 : rtl_mdio_write(hw, 0x14, 0xf0a2);
1090 : 0 : rtl_mdio_write(hw, 0x14, 0x00f0);
1091 : 0 : rtl_mdio_write(hw, 0x14, 0xa202);
1092 : 0 : rtl_mdio_write(hw, 0x14, 0xf0a2);
1093 : 0 : rtl_mdio_write(hw, 0x14, 0x04f0);
1094 : 0 : rtl_mdio_write(hw, 0x14, 0xa206);
1095 : 0 : rtl_mdio_write(hw, 0x14, 0xf0a2);
1096 : 0 : rtl_mdio_write(hw, 0x14, 0x08f0);
1097 : 0 : rtl_mdio_write(hw, 0x14, 0xa20a);
1098 : 0 : rtl_mdio_write(hw, 0x14, 0xf0a2);
1099 : 0 : rtl_mdio_write(hw, 0x14, 0x0cf0);
1100 : 0 : rtl_mdio_write(hw, 0x14, 0xa20e);
1101 : 0 : rtl_mdio_write(hw, 0x14, 0x55b8);
1102 : 0 : rtl_mdio_write(hw, 0x14, 0x20d9);
1103 : 0 : rtl_mdio_write(hw, 0x14, 0xc608);
1104 : 0 : rtl_mdio_write(hw, 0x14, 0xaac4);
1105 : 0 : rtl_mdio_write(hw, 0x14, 0x3000);
1106 : 0 : rtl_mdio_write(hw, 0x14, 0xc614);
1107 : 0 : rtl_mdio_write(hw, 0x14, 0x33c4);
1108 : 0 : rtl_mdio_write(hw, 0x14, 0x1a88);
1109 : 0 : rtl_mdio_write(hw, 0x14, 0xc42e);
1110 : 0 : rtl_mdio_write(hw, 0x14, 0x22c4);
1111 : 0 : rtl_mdio_write(hw, 0x14, 0x2e54);
1112 : 0 : rtl_mdio_write(hw, 0x14, 0xc41a);
1113 : 0 : rtl_mdio_write(hw, 0x13, 0xb818);
1114 : 0 : rtl_mdio_write(hw, 0x14, 0x1a01);
1115 : 0 : rtl_mdio_write(hw, 0x13, 0xb81a);
1116 : 0 : rtl_mdio_write(hw, 0x14, 0x020b);
1117 : 0 : rtl_mdio_write(hw, 0x13, 0xb81c);
1118 : 0 : rtl_mdio_write(hw, 0x14, 0x03ce);
1119 : 0 : rtl_mdio_write(hw, 0x13, 0xb81e);
1120 : 0 : rtl_mdio_write(hw, 0x14, 0x00e7);
1121 : 0 : rtl_mdio_write(hw, 0x13, 0xb846);
1122 : 0 : rtl_mdio_write(hw, 0x14, 0x0389);
1123 : 0 : rtl_mdio_write(hw, 0x13, 0xb848);
1124 : 0 : rtl_mdio_write(hw, 0x14, 0xffff);
1125 : 0 : rtl_mdio_write(hw, 0x13, 0xb84a);
1126 : 0 : rtl_mdio_write(hw, 0x14, 0xffff);
1127 : 0 : rtl_mdio_write(hw, 0x13, 0xb84c);
1128 : 0 : rtl_mdio_write(hw, 0x14, 0xffff);
1129 : 0 : rtl_mdio_write(hw, 0x13, 0xb832);
1130 : 0 : rtl_mdio_write(hw, 0x14, 0x001f);
1131 : :
1132 : 0 : rtl_mdio_write(hw, 0x1F, 0x0A43);
1133 : 0 : rtl_mdio_write(hw, 0x13, 0x0000);
1134 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
1135 : 0 : rtl_mdio_write(hw, 0x1f, 0x0B82);
1136 : 0 : gphy_val = rtl_mdio_read(hw, 0x17);
1137 : 0 : gphy_val &= ~BIT_0;
1138 : 0 : rtl_mdio_write(hw, 0x17, gphy_val);
1139 : 0 : rtl_mdio_write(hw, 0x1f, 0x0A43);
1140 : 0 : rtl_mdio_write(hw, 0x13, 0x8042);
1141 : 0 : rtl_mdio_write(hw, 0x14, 0x0000);
1142 : :
1143 : 0 : rtl_clear_phy_mcu_patch_request(hw);
1144 : 0 : }
1145 : :
1146 : : void
1147 : 0 : hw_mac_mcu_config_8168h(struct rtl_hw *hw)
1148 : : {
1149 [ # # ]: 0 : if (hw->NotWrMcuPatchCode)
1150 : : return;
1151 : :
1152 [ # # # # : 0 : switch (hw->mcfg) {
# ]
1153 : : case CFG_METHOD_29:
1154 : : rtl8168_set_mac_mcu_8168h_1(hw);
1155 : : break;
1156 : 0 : case CFG_METHOD_30:
1157 : : case CFG_METHOD_37:
1158 : 0 : rtl8168_set_mac_mcu_8168h_2(hw);
1159 : 0 : break;
1160 : 0 : case CFG_METHOD_35:
1161 : 0 : rtl8168_set_mac_mcu_8168h_3(hw);
1162 : 0 : break;
1163 : : case CFG_METHOD_36:
1164 : : rtl8168_set_mac_mcu_8168h_4(hw);
1165 : : break;
1166 : : }
1167 : : }
1168 : :
1169 : : void
1170 : 0 : hw_phy_mcu_config_8168h(struct rtl_hw *hw)
1171 : : {
1172 [ # # # # ]: 0 : switch (hw->mcfg) {
1173 : 0 : case CFG_METHOD_29:
1174 : 0 : rtl8168_set_phy_mcu_8168h_1(hw);
1175 : 0 : break;
1176 : 0 : case CFG_METHOD_30:
1177 : : case CFG_METHOD_37:
1178 : 0 : rtl8168_set_phy_mcu_8168h_2(hw);
1179 : 0 : break;
1180 : 0 : case CFG_METHOD_35:
1181 : 0 : rtl8168_set_phy_mcu_8168h_3(hw);
1182 : 0 : break;
1183 : : case CFG_METHOD_36:
1184 : : break;
1185 : : }
1186 : 0 : }
|