Lines Matching +full:0 +full:x349
66 #define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */
75 #define OCP_STD_PHY_BASE 0xa400
155 { PCI_VDEVICE(REALTEK, 0x0000) },
156 { PCI_VDEVICE(REALTEK, 0x2502) },
157 { PCI_VDEVICE(REALTEK, 0x2600) },
158 { PCI_VDEVICE(REALTEK, 0x8129) },
159 { PCI_VDEVICE(REALTEK, 0x8136), RTL_CFG_NO_GBIT },
160 { PCI_VDEVICE(REALTEK, 0x8161) },
161 { PCI_VDEVICE(REALTEK, 0x8162) },
162 { PCI_VDEVICE(REALTEK, 0x8167) },
163 { PCI_VDEVICE(REALTEK, 0x8168) },
164 { PCI_VDEVICE(NCUBE, 0x8168) },
165 { PCI_VDEVICE(REALTEK, 0x8169) },
166 { PCI_VENDOR_ID_DLINK, 0x4300,
167 PCI_VENDOR_ID_DLINK, 0x4b10, 0, 0 },
168 { PCI_VDEVICE(DLINK, 0x4300) },
169 { PCI_VDEVICE(DLINK, 0x4302) },
170 { PCI_VDEVICE(AT, 0xc107) },
171 { PCI_VDEVICE(USR, 0x0116) },
172 { PCI_VENDOR_ID_LINKSYS, 0x1032, PCI_ANY_ID, 0x0024 },
173 { 0x0001, 0x8168, PCI_ANY_ID, 0x2410 },
174 { PCI_VDEVICE(REALTEK, 0x8125) },
175 { PCI_VDEVICE(REALTEK, 0x3000) },
182 MAC0 = 0, /* Ethernet hardware address. */
185 CounterAddrLow = 0x10,
186 CounterAddrHigh = 0x14,
187 TxDescStartAddrLow = 0x20,
188 TxDescStartAddrHigh = 0x24,
189 TxHDescStartAddrLow = 0x28,
190 TxHDescStartAddrHigh = 0x2c,
191 FLASH = 0x30,
192 ERSR = 0x36,
193 ChipCmd = 0x37,
194 TxPoll = 0x38,
195 IntrMask = 0x3c,
196 IntrStatus = 0x3e,
198 TxConfig = 0x40,
202 RxConfig = 0x44,
213 Cfg9346 = 0x50,
214 Config0 = 0x51,
215 Config1 = 0x52,
216 Config2 = 0x53,
219 Config3 = 0x54,
220 Config4 = 0x55,
221 Config5 = 0x56,
222 PHYAR = 0x60,
223 PHYstatus = 0x6c,
224 RxMaxSize = 0xda,
225 CPlusCmd = 0xe0,
226 IntrMitigate = 0xe2,
231 #define RTL_COALESCE_RX_FRAMES GENMASK(3, 0)
233 #define RTL_COALESCE_T_MAX 0x0fU
236 RxDescAddrLow = 0xe4,
237 RxDescAddrHigh = 0xe8,
238 EarlyTxThres = 0xec, /* 8169. Unit of 32 bytes. */
240 #define NoEarlyTx 0x3f /* Max value : no early transmit. */
242 MaxTxPacketSize = 0xec, /* 8101/8168. Unit of 128 bytes. */
245 #define EarlySize 0x27
247 FuncEvent = 0xf0,
248 FuncEventMask = 0xf4,
249 FuncPresetState = 0xf8,
250 IBCR0 = 0xf8,
251 IBCR2 = 0xf9,
252 IBIMR0 = 0xfa,
253 IBISR0 = 0xfb,
254 FuncForceEvent = 0xfc,
258 CSIDR = 0x64,
259 CSIAR = 0x68,
260 #define CSIAR_FLAG 0x80000000
261 #define CSIAR_WRITE_CMD 0x80000000
262 #define CSIAR_BYTE_ENABLE 0x0000f000
263 #define CSIAR_ADDR_MASK 0x00000fff
264 PMCH = 0x6f,
265 EPHYAR = 0x80,
266 #define EPHYAR_FLAG 0x80000000
267 #define EPHYAR_WRITE_CMD 0x80000000
268 #define EPHYAR_REG_MASK 0x1f
270 #define EPHYAR_DATA_MASK 0xffff
271 DLLPR = 0xd0,
274 DBG_REG = 0xd1,
277 TWSI = 0xd2,
278 MCU = 0xd3,
286 EFUSEAR = 0xdc,
287 #define EFUSEAR_FLAG 0x80000000
288 #define EFUSEAR_WRITE_CMD 0x80000000
289 #define EFUSEAR_READ_CMD 0x00000000
290 #define EFUSEAR_REG_MASK 0x03ff
292 #define EFUSEAR_DATA_MASK 0xff
293 MISC_1 = 0xf2,
298 LED_FREQ = 0x1a,
299 EEE_LED = 0x1b,
300 ERIDR = 0x70,
301 ERIAR = 0x74,
302 #define ERIAR_FLAG 0x80000000
303 #define ERIAR_WRITE_CMD 0x80000000
304 #define ERIAR_READ_CMD 0x00000000
307 #define ERIAR_EXGMAC (0x00 << ERIAR_TYPE_SHIFT)
308 #define ERIAR_MSIX (0x01 << ERIAR_TYPE_SHIFT)
309 #define ERIAR_ASF (0x02 << ERIAR_TYPE_SHIFT)
310 #define ERIAR_OOB (0x02 << ERIAR_TYPE_SHIFT)
312 #define ERIAR_MASK_0001 (0x1 << ERIAR_MASK_SHIFT)
313 #define ERIAR_MASK_0011 (0x3 << ERIAR_MASK_SHIFT)
314 #define ERIAR_MASK_0100 (0x4 << ERIAR_MASK_SHIFT)
315 #define ERIAR_MASK_0101 (0x5 << ERIAR_MASK_SHIFT)
316 #define ERIAR_MASK_1111 (0xf << ERIAR_MASK_SHIFT)
317 EPHY_RXER_NUM = 0x7c,
318 OCPDR = 0xb0, /* OCP GPHY access */
319 #define OCPDR_WRITE_CMD 0x80000000
320 #define OCPDR_READ_CMD 0x00000000
321 #define OCPDR_REG_MASK 0x7f
323 #define OCPDR_DATA_MASK 0xffff
324 OCPAR = 0xb4,
325 #define OCPAR_FLAG 0x80000000
326 #define OCPAR_GPHY_WRITE_CMD 0x8000f060
327 #define OCPAR_GPHY_READ_CMD 0x0000f060
328 GPHY_OCP = 0xb8,
329 RDSAR1 = 0xd0, /* 8168c only. Undocumented on 8168dp */
330 MISC = 0xf0, /* 8168e only. */
339 IntrMask_8125 = 0x38,
340 IntrStatus_8125 = 0x3c,
341 TxPoll_8125 = 0x90,
342 MAC0_BKP = 0x19e0,
343 EEE_TXIDLE_TIMER_8125 = 0x6048,
354 SYSErr = 0x8000,
355 PCSTimeout = 0x4000,
356 SWInt = 0x0100,
357 TxDescUnavail = 0x0080,
358 RxFIFOOver = 0x0040,
359 LinkChg = 0x0020,
360 RxOverflow = 0x0010,
361 TxErr = 0x0008,
362 TxOK = 0x0004,
363 RxErr = 0x0002,
364 RxOK = 0x0001,
373 StopReq = 0x80,
374 CmdReset = 0x10,
375 CmdRxEnb = 0x08,
376 CmdTxEnb = 0x04,
377 RxBufEmpty = 0x01,
380 HPQ = 0x80, /* Poll cmd on the high prio queue */
381 NPQ = 0x40, /* Poll cmd on the low prio queue */
382 FSWInt = 0x01, /* Forced software interrupt */
385 Cfg9346_Lock = 0x00,
386 Cfg9346_Unlock = 0xc0,
389 AcceptErr = 0x20,
390 AcceptRunt = 0x10,
391 #define RX_CONFIG_ACCEPT_ERR_MASK 0x30
392 AcceptBroadcast = 0x08,
393 AcceptMulticast = 0x04,
394 AcceptMyPhys = 0x02,
395 AcceptAllPhys = 0x01,
396 #define RX_CONFIG_ACCEPT_OK_MASK 0x0f
397 #define RX_CONFIG_ACCEPT_MASK 0x3f
401 TxDMAShift = 8, /* DMA burst value (0-7) is shift this many bits */
410 PMEnable = (1 << 0), /* Power Management Enable */
415 PCI_Clock_66MHz = 0x01,
416 PCI_Clock_33MHz = 0x00,
423 Beacon_en = (1 << 0), /* 8168 only. Reserved in the 8168b */
434 PMEStatus = (1 << 0), /* PME status can be reset by PCI RST# */
435 ASPM_en = (1 << 0), /* ASPM enable */
448 Mac_dbgo_sel = 0x001c, // 8168
453 #define INTT_MASK GENMASK(1, 0)
457 TBI_Enable = 0x80,
458 TxFlowCtrl = 0x40,
459 RxFlowCtrl = 0x20,
460 _1000bpsF = 0x10,
461 _100bps = 0x08,
462 _10bps = 0x04,
463 LinkStatus = 0x02,
464 FullDup = 0x01,
467 CounterReset = 0x1,
470 CounterDump = 0x8,
488 #define TD_MSS_MAX 0x07ffu /* MSS value */
509 #define GTTCPHO_MAX 0x7f
513 #define TCPHO_MAX 0x3ff
524 PID0 = (1 << 17), /* Protocol ID bit 0/2 */
584 RTL_FLAG_TASK_ENABLED = 0,
730 for (i = 0; i < ETH_ALEN; i++) in rtl_read_mac_from_reg()
744 for (i = 0; i < n; i++) { in rtl_loop_wait()
782 if (reg & 0xffff0001) { in rtl_ocp_reg_failure()
808 return 0; in r8168_phy_ocp_read()
813 (RTL_R32(tp, GPHY_OCP) & 0xffff) : -ETIMEDOUT; in r8168_phy_ocp_read()
827 return 0; in r8168_mac_ocp_read()
844 if (reg == 0x1f) { in r8168g_mdio_write()
850 reg -= 0x10; in r8168g_mdio_write()
857 if (reg == 0x1f) in r8168g_mdio_read()
858 return tp->ocp_base == OCP_STD_PHY_BASE ? 0 : tp->ocp_base >> 4; in r8168g_mdio_read()
861 reg -= 0x10; in r8168g_mdio_read()
868 if (reg == 0x1f) { in mac_mcu_write()
883 return RTL_R32(tp, PHYAR) & 0x80000000; in DECLARE_RTL_COND()
888 RTL_W32(tp, PHYAR, 0x80000000 | (reg & 0x1f) << 16 | (value & 0xffff)); in r8169_mdio_write()
902 RTL_W32(tp, PHYAR, 0x0 | (reg & 0x1f) << 16); in r8169_mdio_read()
905 RTL_R32(tp, PHYAR) & 0xffff : -ETIMEDOUT; in r8169_mdio_read()
925 RTL_W32(tp, EPHY_RXER_NUM, 0); in r8168dp_1_mdio_access()
942 RTL_W32(tp, EPHY_RXER_NUM, 0); in r8168dp_1_mdio_read()
948 #define R8168DP_1_MDIO_ACCESS_BIT 0x00020000
952 RTL_W32(tp, 0xd0, RTL_R32(tp, 0xd0) & ~R8168DP_1_MDIO_ACCESS_BIT); in r8168dp_2_mdio_start()
957 RTL_W32(tp, 0xd0, RTL_R32(tp, 0xd0) | R8168DP_1_MDIO_ACCESS_BIT); in r8168dp_2_mdio_stop()
975 return 0xc912; in r8168dp_2_mdio_read()
1040 RTL_R32(tp, EPHYAR) & EPHYAR_DATA_MASK : ~0; in rtl_ephy_read()
1047 *cmd |= 0xf70 << 18; in r8168fp_adjust_ocp_cmd()
1060 BUG_ON((addr & 3) || (mask == 0)); in _rtl_eri_write()
1082 RTL_R32(tp, ERIDR) : ~0; in _rtl_eri_read()
1099 rtl_w0w1_eri(tp, addr, p, 0); in rtl_eri_set_bits()
1104 rtl_w0w1_eri(tp, addr, 0, m); in rtl_eri_clear_bits()
1109 RTL_W32(tp, OCPAR, 0x0fu << 12 | (reg & 0x0fff)); in r8168dp_ocp_read()
1111 RTL_R32(tp, OCPDR) : ~0; in r8168dp_ocp_read()
1123 RTL_W32(tp, OCPAR, OCPAR_FLAG | ((u32)mask & 0x0f) << 12 | (reg & 0x0fff)); in r8168dp_ocp_write()
1130 _rtl_eri_write(tp, reg, ((u32)mask & 0x0f) << ERIAR_MASK_SHIFT, in r8168ep_ocp_write()
1136 rtl_eri_write(tp, 0xe8, ERIAR_MASK_0001, cmd); in r8168dp_oob_notify()
1138 r8168dp_ocp_write(tp, 0x1, 0x30, 0x00000001); in r8168dp_oob_notify()
1141 #define OOB_CMD_RESET 0x00
1142 #define OOB_CMD_DRIVER_START 0x05
1143 #define OOB_CMD_DRIVER_STOP 0x06
1147 return (tp->mac_version == RTL_GIGA_MAC_VER_31) ? 0xb8 : 0x10; in rtl8168_get_ocp_reg()
1156 return r8168dp_ocp_read(tp, reg) & 0x00000800; in DECLARE_RTL_COND()
1161 return r8168ep_ocp_read(tp, 0x124) & 0x00000001; in DECLARE_RTL_COND()
1166 return RTL_R8(tp, IBISR0) & 0x20; in DECLARE_RTL_COND()
1171 RTL_W8(tp, IBCR2, RTL_R8(tp, IBCR2) & ~0x01); in rtl8168ep_stop_cmac()
1173 RTL_W8(tp, IBISR0, RTL_R8(tp, IBISR0) | 0x20); in rtl8168ep_stop_cmac()
1174 RTL_W8(tp, IBCR0, RTL_R8(tp, IBCR0) & ~0x01); in rtl8168ep_stop_cmac()
1185 r8168ep_ocp_write(tp, 0x01, 0x180, OOB_CMD_DRIVER_START); in rtl8168ep_driver_start()
1186 r8168ep_ocp_write(tp, 0x01, 0x30, r8168ep_ocp_read(tp, 0x30) | 0x01); in rtl8168ep_driver_start()
1216 r8168ep_ocp_write(tp, 0x01, 0x180, OOB_CMD_DRIVER_STOP); in rtl8168ep_driver_stop()
1217 r8168ep_ocp_write(tp, 0x01, 0x30, r8168ep_ocp_read(tp, 0x30) | 0x01); in rtl8168ep_driver_stop()
1242 return !!(r8168dp_ocp_read(tp, reg) & 0x00008000); in r8168dp_check_dash()
1247 return r8168ep_ocp_read(tp, 0x128) & 0x00000001; in r8168ep_check_dash()
1266 rtl_eri_clear_bits(tp, 0xdc, BIT(0)); in rtl_reset_packet_filter()
1267 rtl_eri_set_bits(tp, 0xdc, BIT(0)); in rtl_reset_packet_filter()
1280 RTL_R32(tp, EFUSEAR) & EFUSEAR_DATA_MASK : ~0; in rtl8168d_efuse_read()
1302 RTL_W32(tp, IntrMask_8125, 0); in rtl_irq_disable()
1304 RTL_W16(tp, IntrMask, 0); in rtl_irq_disable()
1318 rtl_ack_events(tp, 0xffffffff); in rtl8169_irq_mask_and_ack()
1329 rtl_eri_write(tp, 0x1bc, ERIAR_MASK_1111, 0x00000011); in rtl_link_chg_patch()
1330 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_1111, 0x00000005); in rtl_link_chg_patch()
1332 rtl_eri_write(tp, 0x1bc, ERIAR_MASK_1111, 0x0000001f); in rtl_link_chg_patch()
1333 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_1111, 0x00000005); in rtl_link_chg_patch()
1335 rtl_eri_write(tp, 0x1bc, ERIAR_MASK_1111, 0x0000001f); in rtl_link_chg_patch()
1336 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_1111, 0x0000003f); in rtl_link_chg_patch()
1342 rtl_eri_write(tp, 0x1bc, ERIAR_MASK_1111, 0x00000011); in rtl_link_chg_patch()
1343 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_1111, 0x00000005); in rtl_link_chg_patch()
1345 rtl_eri_write(tp, 0x1bc, ERIAR_MASK_1111, 0x0000001f); in rtl_link_chg_patch()
1346 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_1111, 0x0000003f); in rtl_link_chg_patch()
1350 rtl_eri_write(tp, 0x1d0, ERIAR_MASK_0011, 0x4d02); in rtl_link_chg_patch()
1351 rtl_eri_write(tp, 0x1dc, ERIAR_MASK_0011, 0x0060a); in rtl_link_chg_patch()
1353 rtl_eri_write(tp, 0x1d0, ERIAR_MASK_0011, 0x0000); in rtl_link_chg_patch()
1390 rtl_eri_set_bits(tp, 0x0dc, MagicPacket_v2); in __rtl8169_set_wol()
1392 rtl_eri_clear_bits(tp, 0x0dc, MagicPacket_v2); in __rtl8169_set_wol()
1396 r8168_mac_ocp_modify(tp, 0xc0b6, 0, BIT(0)); in __rtl8169_set_wol()
1398 r8168_mac_ocp_modify(tp, 0xc0b6, BIT(0), 0); in __rtl8169_set_wol()
1401 for (i = 0; i < tmp; i++) { in __rtl8169_set_wol()
1430 tp->dev->wol_enabled = wolopts ? 1 : 0; in __rtl8169_set_wol()
1443 return 0; in rtl8169_set_wol()
1522 return 0; in rtl8169_set_features()
1528 TxVlanTag | swab16(skb_vlan_tag_get(skb)) : 0x00; in rtl8169_tx_vlan_tag()
1536 __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), swab16(opts2 & 0xffff)); in rtl8169_rx_vlan_tag()
1547 for (i = 0; i < R8169_REGS_SIZE; i += 4) in rtl8169_get_regs()
1612 * is disabled. If 0xff chip may be in a PCI power-save state. in rtl8169_update_counters()
1614 if (val & CmdRxEnb && val != 0xff) in rtl8169_update_counters()
1659 data[0] = le64_to_cpu(counters->tx_packets); in rtl8169_get_ethtool_stats()
1686 * > 1 - the availability of the IntrMitigate (0xe2) register through the
1694 * (0xe0) bit 1 and bit 0.
1697 * bit[1:0] \ speed 1000M 100M 10M
1698 * 0 0 320ns 2.56us 40.96us
1699 * 0 1 2.56us 20.48us 327.7us
1700 * 1 0 5.12us 40.96us 655.4us
1704 * bit[1:0] \ speed 1000M 100M 10M
1705 * 0 0 5us 2.56us 40.96us
1706 * 0 1 40us 20.48us 327.7us
1707 * 1 0 80us 40.96us 655.4us
1711 /* rx/tx scale factors for all CPlusCmd[0:1] cases */
1724 { 0 },
1731 { 0 },
1768 memset(ec, 0, sizeof(*ec)); in rtl_get_coalesce()
1770 /* get rx/tx scale corresponding to current speed and CPlusCmd[0:1] */ in rtl_get_coalesce()
1783 /* ethtool_coalesce states usecs and max_frames must not both be 0 */ in rtl_get_coalesce()
1792 return 0; in rtl_get_coalesce()
1795 /* choose appropriate scale factor and CPlusCmd[0:1] for (speed, usec) */
1806 for (i = 0; i < 4; i++) { in rtl_coalesce_choose_scale()
1822 u16 w = 0, cp01 = 0; in rtl_set_coalesce()
1833 if (scale < 0) in rtl_set_coalesce()
1837 * not only when usecs=0 because of e.g. the following scenario: in rtl_set_coalesce()
1839 * - both rx_usecs=0 & rx_frames=0 in hardware (no delay on RX) in rtl_set_coalesce()
1840 * - rtl_get_coalesce returns rx_usecs=0, rx_frames=1 in rtl_set_coalesce()
1844 * if we want to ignore rx_frames then it has to be set to 0. in rtl_set_coalesce()
1847 rx_fr = 0; in rtl_set_coalesce()
1849 tx_fr = 0; in rtl_set_coalesce()
1879 return 0; in rtl_set_coalesce()
1936 if (tp->eee_adv >= 0) in rtl_enable_eee()
1941 if (adv >= 0) in rtl_enable_eee()
1952 * (RTL_R32(tp, TxConfig) & 0x700000) == 0x500000 ? 8168Bf : 8168Be in rtl8169_get_mac_version()
1956 * (RTL_R32(tp, TxConfig) & 0x700000) == 0x200000 ? 8101Eb : 8101Ec in rtl8169_get_mac_version()
1964 { 0x7cf, 0x641, RTL_GIGA_MAC_VER_63 }, in rtl8169_get_mac_version()
1967 { 0x7cf, 0x608, RTL_GIGA_MAC_VER_60 }, in rtl8169_get_mac_version()
1968 { 0x7c8, 0x608, RTL_GIGA_MAC_VER_61 }, in rtl8169_get_mac_version()
1971 { 0x7cf, 0x54a, RTL_GIGA_MAC_VER_52 }, in rtl8169_get_mac_version()
1974 { 0x7cf, 0x502, RTL_GIGA_MAC_VER_51 }, in rtl8169_get_mac_version()
1975 { 0x7cf, 0x501, RTL_GIGA_MAC_VER_50 }, in rtl8169_get_mac_version()
1976 { 0x7cf, 0x500, RTL_GIGA_MAC_VER_49 }, in rtl8169_get_mac_version()
1979 { 0x7cf, 0x541, RTL_GIGA_MAC_VER_46 }, in rtl8169_get_mac_version()
1980 { 0x7cf, 0x540, RTL_GIGA_MAC_VER_45 }, in rtl8169_get_mac_version()
1983 { 0x7cf, 0x5c8, RTL_GIGA_MAC_VER_44 }, in rtl8169_get_mac_version()
1984 { 0x7cf, 0x509, RTL_GIGA_MAC_VER_42 }, in rtl8169_get_mac_version()
1985 { 0x7cf, 0x4c1, RTL_GIGA_MAC_VER_41 }, in rtl8169_get_mac_version()
1986 { 0x7cf, 0x4c0, RTL_GIGA_MAC_VER_40 }, in rtl8169_get_mac_version()
1989 { 0x7c8, 0x488, RTL_GIGA_MAC_VER_38 }, in rtl8169_get_mac_version()
1990 { 0x7cf, 0x481, RTL_GIGA_MAC_VER_36 }, in rtl8169_get_mac_version()
1991 { 0x7cf, 0x480, RTL_GIGA_MAC_VER_35 }, in rtl8169_get_mac_version()
1994 { 0x7c8, 0x2c8, RTL_GIGA_MAC_VER_34 }, in rtl8169_get_mac_version()
1995 { 0x7cf, 0x2c1, RTL_GIGA_MAC_VER_32 }, in rtl8169_get_mac_version()
1996 { 0x7c8, 0x2c0, RTL_GIGA_MAC_VER_33 }, in rtl8169_get_mac_version()
1999 { 0x7cf, 0x281, RTL_GIGA_MAC_VER_25 }, in rtl8169_get_mac_version()
2000 { 0x7c8, 0x280, RTL_GIGA_MAC_VER_26 }, in rtl8169_get_mac_version()
2003 { 0x7cf, 0x288, RTL_GIGA_MAC_VER_27 }, in rtl8169_get_mac_version()
2004 { 0x7cf, 0x28a, RTL_GIGA_MAC_VER_28 }, in rtl8169_get_mac_version()
2005 { 0x7cf, 0x28b, RTL_GIGA_MAC_VER_31 }, in rtl8169_get_mac_version()
2008 { 0x7cf, 0x3c9, RTL_GIGA_MAC_VER_23 }, in rtl8169_get_mac_version()
2009 { 0x7cf, 0x3c8, RTL_GIGA_MAC_VER_18 }, in rtl8169_get_mac_version()
2010 { 0x7c8, 0x3c8, RTL_GIGA_MAC_VER_24 }, in rtl8169_get_mac_version()
2011 { 0x7cf, 0x3c0, RTL_GIGA_MAC_VER_19 }, in rtl8169_get_mac_version()
2012 { 0x7cf, 0x3c2, RTL_GIGA_MAC_VER_20 }, in rtl8169_get_mac_version()
2013 { 0x7cf, 0x3c3, RTL_GIGA_MAC_VER_21 }, in rtl8169_get_mac_version()
2014 { 0x7c8, 0x3c0, RTL_GIGA_MAC_VER_22 }, in rtl8169_get_mac_version()
2017 { 0x7cf, 0x380, RTL_GIGA_MAC_VER_12 }, in rtl8169_get_mac_version()
2018 { 0x7c8, 0x380, RTL_GIGA_MAC_VER_17 }, in rtl8169_get_mac_version()
2019 { 0x7c8, 0x300, RTL_GIGA_MAC_VER_11 }, in rtl8169_get_mac_version()
2022 { 0x7c8, 0x448, RTL_GIGA_MAC_VER_39 }, in rtl8169_get_mac_version()
2023 { 0x7c8, 0x440, RTL_GIGA_MAC_VER_37 }, in rtl8169_get_mac_version()
2024 { 0x7cf, 0x409, RTL_GIGA_MAC_VER_29 }, in rtl8169_get_mac_version()
2025 { 0x7c8, 0x408, RTL_GIGA_MAC_VER_30 }, in rtl8169_get_mac_version()
2026 { 0x7cf, 0x349, RTL_GIGA_MAC_VER_08 }, in rtl8169_get_mac_version()
2027 { 0x7cf, 0x249, RTL_GIGA_MAC_VER_08 }, in rtl8169_get_mac_version()
2028 { 0x7cf, 0x348, RTL_GIGA_MAC_VER_07 }, in rtl8169_get_mac_version()
2029 { 0x7cf, 0x248, RTL_GIGA_MAC_VER_07 }, in rtl8169_get_mac_version()
2030 { 0x7cf, 0x340, RTL_GIGA_MAC_VER_13 }, in rtl8169_get_mac_version()
2031 { 0x7cf, 0x240, RTL_GIGA_MAC_VER_14 }, in rtl8169_get_mac_version()
2032 { 0x7cf, 0x343, RTL_GIGA_MAC_VER_10 }, in rtl8169_get_mac_version()
2033 { 0x7cf, 0x342, RTL_GIGA_MAC_VER_16 }, in rtl8169_get_mac_version()
2034 { 0x7c8, 0x348, RTL_GIGA_MAC_VER_09 }, in rtl8169_get_mac_version()
2035 { 0x7c8, 0x248, RTL_GIGA_MAC_VER_09 }, in rtl8169_get_mac_version()
2036 { 0x7c8, 0x340, RTL_GIGA_MAC_VER_16 }, in rtl8169_get_mac_version()
2038 { 0xfc8, 0x388, RTL_GIGA_MAC_VER_13 }, in rtl8169_get_mac_version()
2039 { 0xfc8, 0x308, RTL_GIGA_MAC_VER_13 }, in rtl8169_get_mac_version()
2042 { 0xfc8, 0x980, RTL_GIGA_MAC_VER_06 }, in rtl8169_get_mac_version()
2043 { 0xfc8, 0x180, RTL_GIGA_MAC_VER_05 }, in rtl8169_get_mac_version()
2044 { 0xfc8, 0x100, RTL_GIGA_MAC_VER_04 }, in rtl8169_get_mac_version()
2045 { 0xfc8, 0x040, RTL_GIGA_MAC_VER_03 }, in rtl8169_get_mac_version()
2046 { 0xfc8, 0x008, RTL_GIGA_MAC_VER_02 }, in rtl8169_get_mac_version()
2049 { 0x000, 0x000, RTL_GIGA_MAC_NONE } in rtl8169_get_mac_version()
2100 RTL_W8(tp, EEE_LED, RTL_R8(tp, EEE_LED) & ~0x07); in rtl8168_config_eee_mac()
2102 rtl_eri_set_bits(tp, 0x1b0, 0x0003); in rtl8168_config_eee_mac()
2107 r8168_mac_ocp_modify(tp, 0xe040, 0, BIT(1) | BIT(0)); in rtl8125a_config_eee_mac()
2108 r8168_mac_ocp_modify(tp, 0xeb62, 0, BIT(2) | BIT(1)); in rtl8125a_config_eee_mac()
2113 RTL_W16(tp, EEE_TXIDLE_TIMER_8125, tp->dev->mtu + ETH_HLEN + 0x20); in rtl8125_set_eee_txidle_timer()
2119 r8168_mac_ocp_modify(tp, 0xe040, 0, BIT(1) | BIT(0)); in rtl8125b_config_eee_mac()
2125 addr[0] | (addr[1] << 8), in rtl_rar_exgmac_set()
2130 rtl_eri_write(tp, 0xe0, ERIAR_MASK_1111, w[0] | (w[1] << 16)); in rtl_rar_exgmac_set()
2131 rtl_eri_write(tp, 0xe4, ERIAR_MASK_1111, w[2]); in rtl_rar_exgmac_set()
2132 rtl_eri_write(tp, 0xf0, ERIAR_MASK_1111, w[0] << 16); in rtl_rar_exgmac_set()
2133 rtl_eri_write(tp, 0xf4, ERIAR_MASK_1111, w[1] | (w[2] << 16)); in rtl_rar_exgmac_set()
2140 r8168_mac_ocp_write(tp, 0xdd02, 0x807d); in rtl8168h_2_get_adc_bias_ioffset()
2141 data1 = r8168_mac_ocp_read(tp, 0xdd02); in rtl8168h_2_get_adc_bias_ioffset()
2142 data2 = r8168_mac_ocp_read(tp, 0xdd00); in rtl8168h_2_get_adc_bias_ioffset()
2144 ioffset = (data2 >> 1) & 0x7ff8; in rtl8168h_2_get_adc_bias_ioffset()
2145 ioffset |= data2 & 0x0007; in rtl8168h_2_get_adc_bias_ioffset()
2163 pci_write_config_byte(tp->pci_dev, PCI_LATENCY_TIMER, 0x40); in rtl8169_init_phy()
2164 pci_write_config_byte(tp->pci_dev, PCI_CACHE_LINE_SIZE, 0x08); in rtl8169_init_phy()
2165 /* set undocumented MAC Reg C+CR Offset 0x82h */ in rtl8169_init_phy()
2166 RTL_W8(tp, 0x82, 0x01); in rtl8169_init_phy()
2171 tp->pci_dev->subsystem_device == 0xe000) in rtl8169_init_phy()
2172 phy_write_paged(tp->phydev, 0x0001, 0x10, 0xf01b); in rtl8169_init_phy()
2190 RTL_W32(tp, MAC0, addr[0] | addr[1] << 8 | addr[2] << 16 | addr[3] << 24); in rtl_rar_set()
2210 return 0; in rtl_set_mac_address()
2239 rtl_ephy_write(tp, 0x19, 0xff64); in rtl_pll_power_down()
2260 RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) & ~0x80); in rtl_pll_power_down()
2265 rtl_eri_clear_bits(tp, 0x1a8, 0xfc000000); in rtl_pll_power_down()
2266 RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) & ~0x80); in rtl_pll_power_down()
2282 RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) | 0x80); in rtl_pll_power_up()
2290 RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) | 0xc0); in rtl_pll_power_up()
2295 RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) | 0xc0); in rtl_pll_power_up()
2296 rtl_eri_set_bits(tp, 0x1a8, 0xfc000000); in rtl_pll_power_up()
2331 tp->dirty_tx = tp->cur_tx = tp->cur_rx = 0; in rtl8169_init_ring_indexes()
2358 RTL_W8(tp, MaxTxPacketSize, 0x24); in r8168e_hw_jumbo_enable()
2360 RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01); in r8168e_hw_jumbo_enable()
2365 RTL_W8(tp, MaxTxPacketSize, 0x3f); in r8168e_hw_jumbo_disable()
2367 RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01); in r8168e_hw_jumbo_disable()
2372 RTL_W8(tp, Config4, RTL_R8(tp, Config4) | (1 << 0)); in r8168b_1_hw_jumbo_enable()
2377 RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~(1 << 0)); in r8168b_1_hw_jumbo_disable()
2494 return (RTL_R16(tp, IntrMitigate) & 0x0103) == 0x0103; in DECLARE_RTL_COND()
2559 val = 0x000fff00; in rtl8169_set_magic_reg()
2561 val = 0x00ffff00; in rtl8169_set_magic_reg()
2566 val |= 0xff; in rtl8169_set_magic_reg()
2568 RTL_W32(tp, 0x7c, val); in rtl8169_set_magic_reg()
2575 u32 mc_filter[2] = { 0xffffffff, 0xffffffff }; in rtl_set_rx_mode()
2590 mc_filter[1] = mc_filter[0] = 0; in rtl_set_rx_mode()
2597 tmp = mc_filter[0]; in rtl_set_rx_mode()
2598 mc_filter[0] = swab32(mc_filter[1]); in rtl_set_rx_mode()
2604 RTL_W32(tp, MAR0 + 0, mc_filter[0]); in rtl_set_rx_mode()
2634 RTL_R32(tp, CSIDR) : ~0; in rtl_csi_read()
2642 /* According to Realtek the value at config space address 0x070f in rtl_csi_access_enable()
2646 if (pdev->cfg_size > 0x070f && in rtl_csi_access_enable()
2647 pci_write_config_byte(pdev, 0x070f, val) == PCIBIOS_SUCCESSFUL) in rtl_csi_access_enable()
2652 csi = rtl_csi_read(tp, 0x070c) & 0x00ffffff; in rtl_csi_access_enable()
2653 rtl_csi_write(tp, 0x070c, csi | val << 24); in rtl_csi_access_enable()
2658 rtl_csi_access_enable(tp, 0x27); in rtl_set_def_aspm_entry_latency()
2672 while (len-- > 0) { in __rtl_ephy_init()
2719 rtl_eri_write(tp, 0xc8, ERIAR_MASK_1111, (rx_stat << 16) | rx_dyn); in rtl_set_fifo_size()
2720 rtl_eri_write(tp, 0xe8, ERIAR_MASK_1111, (tx_stat << 16) | tx_dyn); in rtl_set_fifo_size()
2727 rtl_eri_write(tp, 0xcc, ERIAR_MASK_0001, low); in rtl8168g_set_pause_thresholds()
2728 rtl_eri_write(tp, 0xd0, ERIAR_MASK_0001, high); in rtl8168g_set_pause_thresholds()
2748 { 0x01, 0, 0x0001 }, in rtl_hw_start_8168cp_1()
2749 { 0x02, 0x0800, 0x1000 }, in rtl_hw_start_8168cp_1()
2750 { 0x03, 0, 0x0042 }, in rtl_hw_start_8168cp_1()
2751 { 0x06, 0x0080, 0x0000 }, in rtl_hw_start_8168cp_1()
2752 { 0x07, 0, 0x2000 } in rtl_hw_start_8168cp_1()
2776 RTL_W8(tp, DBG_REG, 0x20); in rtl_hw_start_8168cp_3()
2782 { 0x02, 0x0800, 0x1000 }, in rtl_hw_start_8168c_1()
2783 { 0x03, 0, 0x0002 }, in rtl_hw_start_8168c_1()
2784 { 0x06, 0x0080, 0x0000 } in rtl_hw_start_8168c_1()
2789 RTL_W8(tp, DBG_REG, 0x06 | FIX_NAK_1 | FIX_NAK_2); in rtl_hw_start_8168c_1()
2799 { 0x01, 0, 0x0001 }, in rtl_hw_start_8168c_2()
2800 { 0x03, 0x0400, 0x0020 } in rtl_hw_start_8168c_2()
2832 { 0x0b, 0x0000, 0x0048 }, in rtl_hw_start_8168d_4()
2833 { 0x19, 0x0020, 0x0050 }, in rtl_hw_start_8168d_4()
2834 { 0x0c, 0x0100, 0x0020 }, in rtl_hw_start_8168d_4()
2835 { 0x10, 0x0004, 0x0000 }, in rtl_hw_start_8168d_4()
2848 { 0x00, 0x0200, 0x0100 }, in rtl_hw_start_8168e_1()
2849 { 0x00, 0x0000, 0x0004 }, in rtl_hw_start_8168e_1()
2850 { 0x06, 0x0002, 0x0001 }, in rtl_hw_start_8168e_1()
2851 { 0x06, 0x0000, 0x0030 }, in rtl_hw_start_8168e_1()
2852 { 0x07, 0x0000, 0x2000 }, in rtl_hw_start_8168e_1()
2853 { 0x00, 0x0000, 0x0020 }, in rtl_hw_start_8168e_1()
2854 { 0x03, 0x5800, 0x2000 }, in rtl_hw_start_8168e_1()
2855 { 0x03, 0x0000, 0x0001 }, in rtl_hw_start_8168e_1()
2856 { 0x01, 0x0800, 0x1000 }, in rtl_hw_start_8168e_1()
2857 { 0x07, 0x0000, 0x4000 }, in rtl_hw_start_8168e_1()
2858 { 0x1e, 0x0000, 0x2000 }, in rtl_hw_start_8168e_1()
2859 { 0x19, 0xffff, 0xfe6c }, in rtl_hw_start_8168e_1()
2860 { 0x0a, 0x0000, 0x0040 } in rtl_hw_start_8168e_1()
2879 { 0x09, 0x0000, 0x0080 }, in rtl_hw_start_8168e_2()
2880 { 0x19, 0x0000, 0x0224 }, in rtl_hw_start_8168e_2()
2881 { 0x00, 0x0000, 0x0004 }, in rtl_hw_start_8168e_2()
2882 { 0x0c, 0x3df0, 0x0200 }, in rtl_hw_start_8168e_2()
2889 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168e_2()
2890 rtl_eri_write(tp, 0xb8, ERIAR_MASK_1111, 0x0000); in rtl_hw_start_8168e_2()
2891 rtl_set_fifo_size(tp, 0x10, 0x10, 0x02, 0x06); in rtl_hw_start_8168e_2()
2892 rtl_eri_set_bits(tp, 0x0d4, 0x1f00); in rtl_hw_start_8168e_2()
2893 rtl_eri_set_bits(tp, 0x1d0, BIT(1)); in rtl_hw_start_8168e_2()
2895 rtl_eri_set_bits(tp, 0x1b0, BIT(4)); in rtl_hw_start_8168e_2()
2896 rtl_eri_write(tp, 0xcc, ERIAR_MASK_1111, 0x00000050); in rtl_hw_start_8168e_2()
2897 rtl_eri_write(tp, 0xd0, ERIAR_MASK_1111, 0x07ff0060); in rtl_hw_start_8168e_2()
2916 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168f()
2917 rtl_eri_write(tp, 0xb8, ERIAR_MASK_1111, 0x0000); in rtl_hw_start_8168f()
2918 rtl_set_fifo_size(tp, 0x10, 0x10, 0x02, 0x06); in rtl_hw_start_8168f()
2920 rtl_eri_set_bits(tp, 0x1b0, BIT(4)); in rtl_hw_start_8168f()
2921 rtl_eri_set_bits(tp, 0x1d0, BIT(4) | BIT(1)); in rtl_hw_start_8168f()
2922 rtl_eri_write(tp, 0xcc, ERIAR_MASK_1111, 0x00000050); in rtl_hw_start_8168f()
2923 rtl_eri_write(tp, 0xd0, ERIAR_MASK_1111, 0x00000060); in rtl_hw_start_8168f()
2938 { 0x06, 0x00c0, 0x0020 }, in rtl_hw_start_8168f_1()
2939 { 0x08, 0x0001, 0x0002 }, in rtl_hw_start_8168f_1()
2940 { 0x09, 0x0000, 0x0080 }, in rtl_hw_start_8168f_1()
2941 { 0x19, 0x0000, 0x0224 }, in rtl_hw_start_8168f_1()
2942 { 0x00, 0x0000, 0x0008 }, in rtl_hw_start_8168f_1()
2943 { 0x0c, 0x3df0, 0x0200 }, in rtl_hw_start_8168f_1()
2950 rtl_eri_set_bits(tp, 0x0d4, 0x1f00); in rtl_hw_start_8168f_1()
2956 { 0x06, 0x00c0, 0x0020 }, in rtl_hw_start_8411()
2957 { 0x0f, 0xffff, 0x5200 }, in rtl_hw_start_8411()
2958 { 0x19, 0x0000, 0x0224 }, in rtl_hw_start_8411()
2959 { 0x00, 0x0000, 0x0008 }, in rtl_hw_start_8411()
2960 { 0x0c, 0x3df0, 0x0200 }, in rtl_hw_start_8411()
2968 rtl_eri_set_bits(tp, 0x0d4, 0x0c00); in rtl_hw_start_8411()
2973 rtl_set_fifo_size(tp, 0x08, 0x10, 0x02, 0x06); in rtl_hw_start_8168g()
2974 rtl8168g_set_pause_thresholds(tp, 0x38, 0x48); in rtl_hw_start_8168g()
2979 rtl_eri_write(tp, 0x2f8, ERIAR_MASK_0011, 0x1d8f); in rtl_hw_start_8168g()
2983 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168g()
2984 rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168g()
2985 rtl_eri_set_bits(tp, 0x0d4, 0x1f80); in rtl_hw_start_8168g()
2989 rtl_w0w1_eri(tp, 0x2fc, 0x01, 0x06); in rtl_hw_start_8168g()
2990 rtl_eri_clear_bits(tp, 0x1b0, BIT(12)); in rtl_hw_start_8168g()
2998 { 0x00, 0x0008, 0x0000 }, in rtl_hw_start_8168g_1()
2999 { 0x0c, 0x3ff0, 0x0820 }, in rtl_hw_start_8168g_1()
3000 { 0x1e, 0x0000, 0x0001 }, in rtl_hw_start_8168g_1()
3001 { 0x19, 0x8000, 0x0000 } in rtl_hw_start_8168g_1()
3015 { 0x00, 0x0008, 0x0000 }, in rtl_hw_start_8168g_2()
3016 { 0x0c, 0x3ff0, 0x0820 }, in rtl_hw_start_8168g_2()
3017 { 0x19, 0xffff, 0x7c00 }, in rtl_hw_start_8168g_2()
3018 { 0x1e, 0xffff, 0x20eb }, in rtl_hw_start_8168g_2()
3019 { 0x0d, 0xffff, 0x1666 }, in rtl_hw_start_8168g_2()
3020 { 0x00, 0xffff, 0x10a3 }, in rtl_hw_start_8168g_2()
3021 { 0x06, 0xffff, 0xf050 }, in rtl_hw_start_8168g_2()
3022 { 0x04, 0x0000, 0x0010 }, in rtl_hw_start_8168g_2()
3023 { 0x1d, 0x4000, 0x0000 }, in rtl_hw_start_8168g_2()
3036 { 0x00, 0x0008, 0x0000 }, in rtl_hw_start_8411_2()
3037 { 0x0c, 0x37d0, 0x0820 }, in rtl_hw_start_8411_2()
3038 { 0x1e, 0x0000, 0x0001 }, in rtl_hw_start_8411_2()
3039 { 0x19, 0x8021, 0x0000 }, in rtl_hw_start_8411_2()
3040 { 0x1e, 0x0000, 0x2000 }, in rtl_hw_start_8411_2()
3041 { 0x0d, 0x0100, 0x0200 }, in rtl_hw_start_8411_2()
3042 { 0x00, 0x0000, 0x0080 }, in rtl_hw_start_8411_2()
3043 { 0x06, 0x0000, 0x0010 }, in rtl_hw_start_8411_2()
3044 { 0x04, 0x0000, 0x0010 }, in rtl_hw_start_8411_2()
3045 { 0x1d, 0x0000, 0x4000 }, in rtl_hw_start_8411_2()
3057 r8168_mac_ocp_write(tp, 0xFC28, 0x0000); in rtl_hw_start_8411_2()
3058 r8168_mac_ocp_write(tp, 0xFC2A, 0x0000); in rtl_hw_start_8411_2()
3059 r8168_mac_ocp_write(tp, 0xFC2C, 0x0000); in rtl_hw_start_8411_2()
3060 r8168_mac_ocp_write(tp, 0xFC2E, 0x0000); in rtl_hw_start_8411_2()
3061 r8168_mac_ocp_write(tp, 0xFC30, 0x0000); in rtl_hw_start_8411_2()
3062 r8168_mac_ocp_write(tp, 0xFC32, 0x0000); in rtl_hw_start_8411_2()
3063 r8168_mac_ocp_write(tp, 0xFC34, 0x0000); in rtl_hw_start_8411_2()
3064 r8168_mac_ocp_write(tp, 0xFC36, 0x0000); in rtl_hw_start_8411_2()
3066 r8168_mac_ocp_write(tp, 0xFC26, 0x0000); in rtl_hw_start_8411_2()
3068 r8168_mac_ocp_write(tp, 0xF800, 0xE008); in rtl_hw_start_8411_2()
3069 r8168_mac_ocp_write(tp, 0xF802, 0xE00A); in rtl_hw_start_8411_2()
3070 r8168_mac_ocp_write(tp, 0xF804, 0xE00C); in rtl_hw_start_8411_2()
3071 r8168_mac_ocp_write(tp, 0xF806, 0xE00E); in rtl_hw_start_8411_2()
3072 r8168_mac_ocp_write(tp, 0xF808, 0xE027); in rtl_hw_start_8411_2()
3073 r8168_mac_ocp_write(tp, 0xF80A, 0xE04F); in rtl_hw_start_8411_2()
3074 r8168_mac_ocp_write(tp, 0xF80C, 0xE05E); in rtl_hw_start_8411_2()
3075 r8168_mac_ocp_write(tp, 0xF80E, 0xE065); in rtl_hw_start_8411_2()
3076 r8168_mac_ocp_write(tp, 0xF810, 0xC602); in rtl_hw_start_8411_2()
3077 r8168_mac_ocp_write(tp, 0xF812, 0xBE00); in rtl_hw_start_8411_2()
3078 r8168_mac_ocp_write(tp, 0xF814, 0x0000); in rtl_hw_start_8411_2()
3079 r8168_mac_ocp_write(tp, 0xF816, 0xC502); in rtl_hw_start_8411_2()
3080 r8168_mac_ocp_write(tp, 0xF818, 0xBD00); in rtl_hw_start_8411_2()
3081 r8168_mac_ocp_write(tp, 0xF81A, 0x074C); in rtl_hw_start_8411_2()
3082 r8168_mac_ocp_write(tp, 0xF81C, 0xC302); in rtl_hw_start_8411_2()
3083 r8168_mac_ocp_write(tp, 0xF81E, 0xBB00); in rtl_hw_start_8411_2()
3084 r8168_mac_ocp_write(tp, 0xF820, 0x080A); in rtl_hw_start_8411_2()
3085 r8168_mac_ocp_write(tp, 0xF822, 0x6420); in rtl_hw_start_8411_2()
3086 r8168_mac_ocp_write(tp, 0xF824, 0x48C2); in rtl_hw_start_8411_2()
3087 r8168_mac_ocp_write(tp, 0xF826, 0x8C20); in rtl_hw_start_8411_2()
3088 r8168_mac_ocp_write(tp, 0xF828, 0xC516); in rtl_hw_start_8411_2()
3089 r8168_mac_ocp_write(tp, 0xF82A, 0x64A4); in rtl_hw_start_8411_2()
3090 r8168_mac_ocp_write(tp, 0xF82C, 0x49C0); in rtl_hw_start_8411_2()
3091 r8168_mac_ocp_write(tp, 0xF82E, 0xF009); in rtl_hw_start_8411_2()
3092 r8168_mac_ocp_write(tp, 0xF830, 0x74A2); in rtl_hw_start_8411_2()
3093 r8168_mac_ocp_write(tp, 0xF832, 0x8CA5); in rtl_hw_start_8411_2()
3094 r8168_mac_ocp_write(tp, 0xF834, 0x74A0); in rtl_hw_start_8411_2()
3095 r8168_mac_ocp_write(tp, 0xF836, 0xC50E); in rtl_hw_start_8411_2()
3096 r8168_mac_ocp_write(tp, 0xF838, 0x9CA2); in rtl_hw_start_8411_2()
3097 r8168_mac_ocp_write(tp, 0xF83A, 0x1C11); in rtl_hw_start_8411_2()
3098 r8168_mac_ocp_write(tp, 0xF83C, 0x9CA0); in rtl_hw_start_8411_2()
3099 r8168_mac_ocp_write(tp, 0xF83E, 0xE006); in rtl_hw_start_8411_2()
3100 r8168_mac_ocp_write(tp, 0xF840, 0x74F8); in rtl_hw_start_8411_2()
3101 r8168_mac_ocp_write(tp, 0xF842, 0x48C4); in rtl_hw_start_8411_2()
3102 r8168_mac_ocp_write(tp, 0xF844, 0x8CF8); in rtl_hw_start_8411_2()
3103 r8168_mac_ocp_write(tp, 0xF846, 0xC404); in rtl_hw_start_8411_2()
3104 r8168_mac_ocp_write(tp, 0xF848, 0xBC00); in rtl_hw_start_8411_2()
3105 r8168_mac_ocp_write(tp, 0xF84A, 0xC403); in rtl_hw_start_8411_2()
3106 r8168_mac_ocp_write(tp, 0xF84C, 0xBC00); in rtl_hw_start_8411_2()
3107 r8168_mac_ocp_write(tp, 0xF84E, 0x0BF2); in rtl_hw_start_8411_2()
3108 r8168_mac_ocp_write(tp, 0xF850, 0x0C0A); in rtl_hw_start_8411_2()
3109 r8168_mac_ocp_write(tp, 0xF852, 0xE434); in rtl_hw_start_8411_2()
3110 r8168_mac_ocp_write(tp, 0xF854, 0xD3C0); in rtl_hw_start_8411_2()
3111 r8168_mac_ocp_write(tp, 0xF856, 0x49D9); in rtl_hw_start_8411_2()
3112 r8168_mac_ocp_write(tp, 0xF858, 0xF01F); in rtl_hw_start_8411_2()
3113 r8168_mac_ocp_write(tp, 0xF85A, 0xC526); in rtl_hw_start_8411_2()
3114 r8168_mac_ocp_write(tp, 0xF85C, 0x64A5); in rtl_hw_start_8411_2()
3115 r8168_mac_ocp_write(tp, 0xF85E, 0x1400); in rtl_hw_start_8411_2()
3116 r8168_mac_ocp_write(tp, 0xF860, 0xF007); in rtl_hw_start_8411_2()
3117 r8168_mac_ocp_write(tp, 0xF862, 0x0C01); in rtl_hw_start_8411_2()
3118 r8168_mac_ocp_write(tp, 0xF864, 0x8CA5); in rtl_hw_start_8411_2()
3119 r8168_mac_ocp_write(tp, 0xF866, 0x1C15); in rtl_hw_start_8411_2()
3120 r8168_mac_ocp_write(tp, 0xF868, 0xC51B); in rtl_hw_start_8411_2()
3121 r8168_mac_ocp_write(tp, 0xF86A, 0x9CA0); in rtl_hw_start_8411_2()
3122 r8168_mac_ocp_write(tp, 0xF86C, 0xE013); in rtl_hw_start_8411_2()
3123 r8168_mac_ocp_write(tp, 0xF86E, 0xC519); in rtl_hw_start_8411_2()
3124 r8168_mac_ocp_write(tp, 0xF870, 0x74A0); in rtl_hw_start_8411_2()
3125 r8168_mac_ocp_write(tp, 0xF872, 0x48C4); in rtl_hw_start_8411_2()
3126 r8168_mac_ocp_write(tp, 0xF874, 0x8CA0); in rtl_hw_start_8411_2()
3127 r8168_mac_ocp_write(tp, 0xF876, 0xC516); in rtl_hw_start_8411_2()
3128 r8168_mac_ocp_write(tp, 0xF878, 0x74A4); in rtl_hw_start_8411_2()
3129 r8168_mac_ocp_write(tp, 0xF87A, 0x48C8); in rtl_hw_start_8411_2()
3130 r8168_mac_ocp_write(tp, 0xF87C, 0x48CA); in rtl_hw_start_8411_2()
3131 r8168_mac_ocp_write(tp, 0xF87E, 0x9CA4); in rtl_hw_start_8411_2()
3132 r8168_mac_ocp_write(tp, 0xF880, 0xC512); in rtl_hw_start_8411_2()
3133 r8168_mac_ocp_write(tp, 0xF882, 0x1B00); in rtl_hw_start_8411_2()
3134 r8168_mac_ocp_write(tp, 0xF884, 0x9BA0); in rtl_hw_start_8411_2()
3135 r8168_mac_ocp_write(tp, 0xF886, 0x1B1C); in rtl_hw_start_8411_2()
3136 r8168_mac_ocp_write(tp, 0xF888, 0x483F); in rtl_hw_start_8411_2()
3137 r8168_mac_ocp_write(tp, 0xF88A, 0x9BA2); in rtl_hw_start_8411_2()
3138 r8168_mac_ocp_write(tp, 0xF88C, 0x1B04); in rtl_hw_start_8411_2()
3139 r8168_mac_ocp_write(tp, 0xF88E, 0xC508); in rtl_hw_start_8411_2()
3140 r8168_mac_ocp_write(tp, 0xF890, 0x9BA0); in rtl_hw_start_8411_2()
3141 r8168_mac_ocp_write(tp, 0xF892, 0xC505); in rtl_hw_start_8411_2()
3142 r8168_mac_ocp_write(tp, 0xF894, 0xBD00); in rtl_hw_start_8411_2()
3143 r8168_mac_ocp_write(tp, 0xF896, 0xC502); in rtl_hw_start_8411_2()
3144 r8168_mac_ocp_write(tp, 0xF898, 0xBD00); in rtl_hw_start_8411_2()
3145 r8168_mac_ocp_write(tp, 0xF89A, 0x0300); in rtl_hw_start_8411_2()
3146 r8168_mac_ocp_write(tp, 0xF89C, 0x051E); in rtl_hw_start_8411_2()
3147 r8168_mac_ocp_write(tp, 0xF89E, 0xE434); in rtl_hw_start_8411_2()
3148 r8168_mac_ocp_write(tp, 0xF8A0, 0xE018); in rtl_hw_start_8411_2()
3149 r8168_mac_ocp_write(tp, 0xF8A2, 0xE092); in rtl_hw_start_8411_2()
3150 r8168_mac_ocp_write(tp, 0xF8A4, 0xDE20); in rtl_hw_start_8411_2()
3151 r8168_mac_ocp_write(tp, 0xF8A6, 0xD3C0); in rtl_hw_start_8411_2()
3152 r8168_mac_ocp_write(tp, 0xF8A8, 0xC50F); in rtl_hw_start_8411_2()
3153 r8168_mac_ocp_write(tp, 0xF8AA, 0x76A4); in rtl_hw_start_8411_2()
3154 r8168_mac_ocp_write(tp, 0xF8AC, 0x49E3); in rtl_hw_start_8411_2()
3155 r8168_mac_ocp_write(tp, 0xF8AE, 0xF007); in rtl_hw_start_8411_2()
3156 r8168_mac_ocp_write(tp, 0xF8B0, 0x49C0); in rtl_hw_start_8411_2()
3157 r8168_mac_ocp_write(tp, 0xF8B2, 0xF103); in rtl_hw_start_8411_2()
3158 r8168_mac_ocp_write(tp, 0xF8B4, 0xC607); in rtl_hw_start_8411_2()
3159 r8168_mac_ocp_write(tp, 0xF8B6, 0xBE00); in rtl_hw_start_8411_2()
3160 r8168_mac_ocp_write(tp, 0xF8B8, 0xC606); in rtl_hw_start_8411_2()
3161 r8168_mac_ocp_write(tp, 0xF8BA, 0xBE00); in rtl_hw_start_8411_2()
3162 r8168_mac_ocp_write(tp, 0xF8BC, 0xC602); in rtl_hw_start_8411_2()
3163 r8168_mac_ocp_write(tp, 0xF8BE, 0xBE00); in rtl_hw_start_8411_2()
3164 r8168_mac_ocp_write(tp, 0xF8C0, 0x0C4C); in rtl_hw_start_8411_2()
3165 r8168_mac_ocp_write(tp, 0xF8C2, 0x0C28); in rtl_hw_start_8411_2()
3166 r8168_mac_ocp_write(tp, 0xF8C4, 0x0C2C); in rtl_hw_start_8411_2()
3167 r8168_mac_ocp_write(tp, 0xF8C6, 0xDC00); in rtl_hw_start_8411_2()
3168 r8168_mac_ocp_write(tp, 0xF8C8, 0xC707); in rtl_hw_start_8411_2()
3169 r8168_mac_ocp_write(tp, 0xF8CA, 0x1D00); in rtl_hw_start_8411_2()
3170 r8168_mac_ocp_write(tp, 0xF8CC, 0x8DE2); in rtl_hw_start_8411_2()
3171 r8168_mac_ocp_write(tp, 0xF8CE, 0x48C1); in rtl_hw_start_8411_2()
3172 r8168_mac_ocp_write(tp, 0xF8D0, 0xC502); in rtl_hw_start_8411_2()
3173 r8168_mac_ocp_write(tp, 0xF8D2, 0xBD00); in rtl_hw_start_8411_2()
3174 r8168_mac_ocp_write(tp, 0xF8D4, 0x00AA); in rtl_hw_start_8411_2()
3175 r8168_mac_ocp_write(tp, 0xF8D6, 0xE0C0); in rtl_hw_start_8411_2()
3176 r8168_mac_ocp_write(tp, 0xF8D8, 0xC502); in rtl_hw_start_8411_2()
3177 r8168_mac_ocp_write(tp, 0xF8DA, 0xBD00); in rtl_hw_start_8411_2()
3178 r8168_mac_ocp_write(tp, 0xF8DC, 0x0132); in rtl_hw_start_8411_2()
3180 r8168_mac_ocp_write(tp, 0xFC26, 0x8000); in rtl_hw_start_8411_2()
3182 r8168_mac_ocp_write(tp, 0xFC2A, 0x0743); in rtl_hw_start_8411_2()
3183 r8168_mac_ocp_write(tp, 0xFC2C, 0x0801); in rtl_hw_start_8411_2()
3184 r8168_mac_ocp_write(tp, 0xFC2E, 0x0BE9); in rtl_hw_start_8411_2()
3185 r8168_mac_ocp_write(tp, 0xFC30, 0x02FD); in rtl_hw_start_8411_2()
3186 r8168_mac_ocp_write(tp, 0xFC32, 0x0C25); in rtl_hw_start_8411_2()
3187 r8168_mac_ocp_write(tp, 0xFC34, 0x00A9); in rtl_hw_start_8411_2()
3188 r8168_mac_ocp_write(tp, 0xFC36, 0x012D); in rtl_hw_start_8411_2()
3196 { 0x1e, 0x0800, 0x0001 }, in rtl_hw_start_8168h_1()
3197 { 0x1d, 0x0000, 0x0800 }, in rtl_hw_start_8168h_1()
3198 { 0x05, 0xffff, 0x2089 }, in rtl_hw_start_8168h_1()
3199 { 0x06, 0xffff, 0x5881 }, in rtl_hw_start_8168h_1()
3200 { 0x04, 0xffff, 0x854a }, in rtl_hw_start_8168h_1()
3201 { 0x01, 0xffff, 0x068b } in rtl_hw_start_8168h_1()
3209 rtl_set_fifo_size(tp, 0x08, 0x10, 0x02, 0x06); in rtl_hw_start_8168h_1()
3210 rtl8168g_set_pause_thresholds(tp, 0x38, 0x48); in rtl_hw_start_8168h_1()
3216 rtl_eri_set_bits(tp, 0xd4, 0x1f00); in rtl_hw_start_8168h_1()
3217 rtl_eri_set_bits(tp, 0xdc, 0x001c); in rtl_hw_start_8168h_1()
3219 rtl_eri_write(tp, 0x5f0, ERIAR_MASK_0011, 0x4f87); in rtl_hw_start_8168h_1()
3223 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168h_1()
3224 rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168h_1()
3233 rtl_eri_clear_bits(tp, 0x1b0, BIT(12)); in rtl_hw_start_8168h_1()
3237 rg_saw_cnt = phy_read_paged(tp->phydev, 0x0c42, 0x13) & 0x3fff; in rtl_hw_start_8168h_1()
3238 if (rg_saw_cnt > 0) { in rtl_hw_start_8168h_1()
3242 sw_cnt_1ms_ini &= 0x0fff; in rtl_hw_start_8168h_1()
3243 r8168_mac_ocp_modify(tp, 0xd412, 0x0fff, sw_cnt_1ms_ini); in rtl_hw_start_8168h_1()
3246 r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0070); in rtl_hw_start_8168h_1()
3247 r8168_mac_ocp_modify(tp, 0xe052, 0x6000, 0x8008); in rtl_hw_start_8168h_1()
3248 r8168_mac_ocp_modify(tp, 0xe0d6, 0x01ff, 0x017f); in rtl_hw_start_8168h_1()
3249 r8168_mac_ocp_modify(tp, 0xd420, 0x0fff, 0x047f); in rtl_hw_start_8168h_1()
3251 r8168_mac_ocp_write(tp, 0xe63e, 0x0001); in rtl_hw_start_8168h_1()
3252 r8168_mac_ocp_write(tp, 0xe63e, 0x0000); in rtl_hw_start_8168h_1()
3253 r8168_mac_ocp_write(tp, 0xc094, 0x0000); in rtl_hw_start_8168h_1()
3254 r8168_mac_ocp_write(tp, 0xc09e, 0x0000); in rtl_hw_start_8168h_1()
3263 rtl_set_fifo_size(tp, 0x08, 0x10, 0x02, 0x06); in rtl_hw_start_8168ep()
3264 rtl8168g_set_pause_thresholds(tp, 0x2f, 0x5f); in rtl_hw_start_8168ep()
3270 rtl_eri_set_bits(tp, 0xd4, 0x1f80); in rtl_hw_start_8168ep()
3272 rtl_eri_write(tp, 0x5f0, ERIAR_MASK_0011, 0x4f87); in rtl_hw_start_8168ep()
3276 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168ep()
3277 rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8168ep()
3281 rtl_w0w1_eri(tp, 0x2fc, 0x01, 0x06); in rtl_hw_start_8168ep()
3291 { 0x00, 0xffff, 0x10ab }, in rtl_hw_start_8168ep_1()
3292 { 0x06, 0xffff, 0xf030 }, in rtl_hw_start_8168ep_1()
3293 { 0x08, 0xffff, 0x2006 }, in rtl_hw_start_8168ep_1()
3294 { 0x0d, 0xffff, 0x1666 }, in rtl_hw_start_8168ep_1()
3295 { 0x0c, 0x3ff0, 0x0000 } in rtl_hw_start_8168ep_1()
3310 { 0x00, 0xffff, 0x10a3 }, in rtl_hw_start_8168ep_2()
3311 { 0x19, 0xffff, 0xfc00 }, in rtl_hw_start_8168ep_2()
3312 { 0x1e, 0xffff, 0x20ea } in rtl_hw_start_8168ep_2()
3330 { 0x00, 0x0000, 0x0080 }, in rtl_hw_start_8168ep_3()
3331 { 0x0d, 0x0100, 0x0200 }, in rtl_hw_start_8168ep_3()
3332 { 0x19, 0x8021, 0x0000 }, in rtl_hw_start_8168ep_3()
3333 { 0x1e, 0x0000, 0x2000 }, in rtl_hw_start_8168ep_3()
3345 r8168_mac_ocp_modify(tp, 0xd3e2, 0x0fff, 0x0271); in rtl_hw_start_8168ep_3()
3346 r8168_mac_ocp_modify(tp, 0xd3e4, 0x00ff, 0x0000); in rtl_hw_start_8168ep_3()
3347 r8168_mac_ocp_modify(tp, 0xe860, 0x0000, 0x0080); in rtl_hw_start_8168ep_3()
3355 { 0x19, 0x0040, 0x1100 }, in rtl_hw_start_8117()
3356 { 0x59, 0x0040, 0x1100 }, in rtl_hw_start_8117()
3366 rtl_set_fifo_size(tp, 0x08, 0x10, 0x02, 0x06); in rtl_hw_start_8117()
3367 rtl8168g_set_pause_thresholds(tp, 0x2f, 0x5f); in rtl_hw_start_8117()
3373 rtl_eri_set_bits(tp, 0xd4, 0x1f90); in rtl_hw_start_8117()
3375 rtl_eri_write(tp, 0x5f0, ERIAR_MASK_0011, 0x4f87); in rtl_hw_start_8117()
3379 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8117()
3380 rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8117()
3389 rtl_eri_clear_bits(tp, 0x1b0, BIT(12)); in rtl_hw_start_8117()
3393 rg_saw_cnt = phy_read_paged(tp->phydev, 0x0c42, 0x13) & 0x3fff; in rtl_hw_start_8117()
3394 if (rg_saw_cnt > 0) { in rtl_hw_start_8117()
3397 sw_cnt_1ms_ini = (16000000 / rg_saw_cnt) & 0x0fff; in rtl_hw_start_8117()
3398 r8168_mac_ocp_modify(tp, 0xd412, 0x0fff, sw_cnt_1ms_ini); in rtl_hw_start_8117()
3401 r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0070); in rtl_hw_start_8117()
3402 r8168_mac_ocp_write(tp, 0xea80, 0x0003); in rtl_hw_start_8117()
3403 r8168_mac_ocp_modify(tp, 0xe052, 0x0000, 0x0009); in rtl_hw_start_8117()
3404 r8168_mac_ocp_modify(tp, 0xd420, 0x0fff, 0x047f); in rtl_hw_start_8117()
3406 r8168_mac_ocp_write(tp, 0xe63e, 0x0001); in rtl_hw_start_8117()
3407 r8168_mac_ocp_write(tp, 0xe63e, 0x0000); in rtl_hw_start_8117()
3408 r8168_mac_ocp_write(tp, 0xc094, 0x0000); in rtl_hw_start_8117()
3409 r8168_mac_ocp_write(tp, 0xc09e, 0x0000); in rtl_hw_start_8117()
3420 { 0x01, 0, 0x6e65 }, in rtl_hw_start_8102e_1()
3421 { 0x02, 0, 0x091f }, in rtl_hw_start_8102e_1()
3422 { 0x03, 0, 0xc2f9 }, in rtl_hw_start_8102e_1()
3423 { 0x06, 0, 0xafb5 }, in rtl_hw_start_8102e_1()
3424 { 0x07, 0, 0x0e00 }, in rtl_hw_start_8102e_1()
3425 { 0x19, 0, 0xec80 }, in rtl_hw_start_8102e_1()
3426 { 0x01, 0, 0x2e65 }, in rtl_hw_start_8102e_1()
3427 { 0x01, 0, 0x6e65 } in rtl_hw_start_8102e_1()
3458 rtl_ephy_write(tp, 0x03, 0xc2f9); in rtl_hw_start_8102e_3()
3464 { 0x01, 0xffff, 0x6fe5 }, in rtl_hw_start_8401()
3465 { 0x03, 0xffff, 0x0599 }, in rtl_hw_start_8401()
3466 { 0x06, 0xffff, 0xaf25 }, in rtl_hw_start_8401()
3467 { 0x07, 0xffff, 0x8e68 }, in rtl_hw_start_8401()
3477 { 0x07, 0, 0x4000 }, in rtl_hw_start_8105e_1()
3478 { 0x19, 0, 0x0200 }, in rtl_hw_start_8105e_1()
3479 { 0x19, 0, 0x0020 }, in rtl_hw_start_8105e_1()
3480 { 0x1e, 0, 0x2000 }, in rtl_hw_start_8105e_1()
3481 { 0x03, 0, 0x0001 }, in rtl_hw_start_8105e_1()
3482 { 0x19, 0, 0x0100 }, in rtl_hw_start_8105e_1()
3483 { 0x19, 0, 0x0004 }, in rtl_hw_start_8105e_1()
3484 { 0x0a, 0, 0x0020 } in rtl_hw_start_8105e_1()
3488 RTL_W32(tp, FuncEvent, RTL_R32(tp, FuncEvent) | 0x002800); in rtl_hw_start_8105e_1()
3491 RTL_W32(tp, FuncEvent, RTL_R32(tp, FuncEvent) & ~0x010000); in rtl_hw_start_8105e_1()
3504 rtl_ephy_write(tp, 0x1e, rtl_ephy_read(tp, 0x1e) | 0x8000); in rtl_hw_start_8105e_2()
3510 { 0x19, 0xffff, 0xff64 }, in rtl_hw_start_8402()
3511 { 0x1e, 0, 0x4000 } in rtl_hw_start_8402()
3517 RTL_W32(tp, FuncEvent, RTL_R32(tp, FuncEvent) | 0x002800); in rtl_hw_start_8402()
3523 rtl_set_fifo_size(tp, 0x00, 0x00, 0x02, 0x06); in rtl_hw_start_8402()
3525 rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8402()
3526 rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8402()
3527 rtl_w0w1_eri(tp, 0x0d4, 0x0e00, 0xff00); in rtl_hw_start_8402()
3530 rtl_eri_write(tp, 0x1b0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8402()
3540 RTL_W32(tp, FuncEvent, RTL_R32(tp, FuncEvent) | 0x002800); in rtl_hw_start_8106()
3546 rtl_eri_write(tp, 0x1d0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8106()
3549 rtl_eri_write(tp, 0x1b0, ERIAR_MASK_0011, 0x0000); in rtl_hw_start_8106()
3557 return r8168_mac_ocp_read(tp, 0xe00e) & BIT(13); in DECLARE_RTL_COND()
3564 RTL_W16(tp, 0x382, 0x221b); in rtl_hw_start_8125_common()
3565 RTL_W8(tp, 0x4500, 0); in rtl_hw_start_8125_common()
3566 RTL_W16(tp, 0x4800, 0); in rtl_hw_start_8125_common()
3569 r8168_mac_ocp_modify(tp, 0xd40a, 0x0010, 0x0000); in rtl_hw_start_8125_common()
3571 RTL_W8(tp, Config1, RTL_R8(tp, Config1) & ~0x10); in rtl_hw_start_8125_common()
3573 r8168_mac_ocp_write(tp, 0xc140, 0xffff); in rtl_hw_start_8125_common()
3574 r8168_mac_ocp_write(tp, 0xc142, 0xffff); in rtl_hw_start_8125_common()
3576 r8168_mac_ocp_modify(tp, 0xd3e2, 0x0fff, 0x03a9); in rtl_hw_start_8125_common()
3577 r8168_mac_ocp_modify(tp, 0xd3e4, 0x00ff, 0x0000); in rtl_hw_start_8125_common()
3578 r8168_mac_ocp_modify(tp, 0xe860, 0x0000, 0x0080); in rtl_hw_start_8125_common()
3581 r8168_mac_ocp_modify(tp, 0xeb58, 0x0001, 0x0000); in rtl_hw_start_8125_common()
3584 r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200); in rtl_hw_start_8125_common()
3586 r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0400); in rtl_hw_start_8125_common()
3589 r8168_mac_ocp_modify(tp, 0xe63e, 0x0c30, 0x0000); in rtl_hw_start_8125_common()
3591 r8168_mac_ocp_modify(tp, 0xe63e, 0x0c30, 0x0020); in rtl_hw_start_8125_common()
3593 r8168_mac_ocp_modify(tp, 0xc0b4, 0x0000, 0x000c); in rtl_hw_start_8125_common()
3594 r8168_mac_ocp_modify(tp, 0xeb6a, 0x00ff, 0x0033); in rtl_hw_start_8125_common()
3595 r8168_mac_ocp_modify(tp, 0xeb50, 0x03e0, 0x0040); in rtl_hw_start_8125_common()
3596 r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030); in rtl_hw_start_8125_common()
3597 r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000); in rtl_hw_start_8125_common()
3598 r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001); in rtl_hw_start_8125_common()
3599 r8168_mac_ocp_modify(tp, 0xe0c0, 0x4f0f, 0x4403); in rtl_hw_start_8125_common()
3600 r8168_mac_ocp_modify(tp, 0xe052, 0x0080, 0x0068); in rtl_hw_start_8125_common()
3601 r8168_mac_ocp_modify(tp, 0xc0ac, 0x0080, 0x1f00); in rtl_hw_start_8125_common()
3602 r8168_mac_ocp_modify(tp, 0xd430, 0x0fff, 0x047f); in rtl_hw_start_8125_common()
3604 r8168_mac_ocp_modify(tp, 0xea1c, 0x0004, 0x0000); in rtl_hw_start_8125_common()
3605 r8168_mac_ocp_modify(tp, 0xeb54, 0x0000, 0x0001); in rtl_hw_start_8125_common()
3607 r8168_mac_ocp_modify(tp, 0xeb54, 0x0001, 0x0000); in rtl_hw_start_8125_common()
3608 RTL_W16(tp, 0x1880, RTL_R16(tp, 0x1880) & ~0x0030); in rtl_hw_start_8125_common()
3610 r8168_mac_ocp_write(tp, 0xe098, 0xc302); in rtl_hw_start_8125_common()
3626 { 0x01, 0xffff, 0xa812 }, in rtl_hw_start_8125a_1()
3627 { 0x09, 0xffff, 0x520c }, in rtl_hw_start_8125a_1()
3628 { 0x04, 0xffff, 0xd000 }, in rtl_hw_start_8125a_1()
3629 { 0x0d, 0xffff, 0xf702 }, in rtl_hw_start_8125a_1()
3630 { 0x0a, 0xffff, 0x8653 }, in rtl_hw_start_8125a_1()
3631 { 0x06, 0xffff, 0x001e }, in rtl_hw_start_8125a_1()
3632 { 0x08, 0xffff, 0x3595 }, in rtl_hw_start_8125a_1()
3633 { 0x20, 0xffff, 0x9455 }, in rtl_hw_start_8125a_1()
3634 { 0x21, 0xffff, 0x99ff }, in rtl_hw_start_8125a_1()
3635 { 0x02, 0xffff, 0x6046 }, in rtl_hw_start_8125a_1()
3636 { 0x29, 0xffff, 0xfe00 }, in rtl_hw_start_8125a_1()
3637 { 0x23, 0xffff, 0xab62 }, in rtl_hw_start_8125a_1()
3639 { 0x41, 0xffff, 0xa80c }, in rtl_hw_start_8125a_1()
3640 { 0x49, 0xffff, 0x520c }, in rtl_hw_start_8125a_1()
3641 { 0x44, 0xffff, 0xd000 }, in rtl_hw_start_8125a_1()
3642 { 0x4d, 0xffff, 0xf702 }, in rtl_hw_start_8125a_1()
3643 { 0x4a, 0xffff, 0x8653 }, in rtl_hw_start_8125a_1()
3644 { 0x46, 0xffff, 0x001e }, in rtl_hw_start_8125a_1()
3645 { 0x48, 0xffff, 0x3595 }, in rtl_hw_start_8125a_1()
3646 { 0x60, 0xffff, 0x9455 }, in rtl_hw_start_8125a_1()
3647 { 0x61, 0xffff, 0x99ff }, in rtl_hw_start_8125a_1()
3648 { 0x42, 0xffff, 0x6046 }, in rtl_hw_start_8125a_1()
3649 { 0x69, 0xffff, 0xfe00 }, in rtl_hw_start_8125a_1()
3650 { 0x63, 0xffff, 0xab62 }, in rtl_hw_start_8125a_1()
3666 { 0x04, 0xffff, 0xd000 }, in rtl_hw_start_8125a_2()
3667 { 0x0a, 0xffff, 0x8653 }, in rtl_hw_start_8125a_2()
3668 { 0x23, 0xffff, 0xab66 }, in rtl_hw_start_8125a_2()
3669 { 0x20, 0xffff, 0x9455 }, in rtl_hw_start_8125a_2()
3670 { 0x21, 0xffff, 0x99ff }, in rtl_hw_start_8125a_2()
3671 { 0x29, 0xffff, 0xfe04 }, in rtl_hw_start_8125a_2()
3673 { 0x44, 0xffff, 0xd000 }, in rtl_hw_start_8125a_2()
3674 { 0x4a, 0xffff, 0x8653 }, in rtl_hw_start_8125a_2()
3675 { 0x63, 0xffff, 0xab66 }, in rtl_hw_start_8125a_2()
3676 { 0x60, 0xffff, 0x9455 }, in rtl_hw_start_8125a_2()
3677 { 0x61, 0xffff, 0x99ff }, in rtl_hw_start_8125a_2()
3678 { 0x69, 0xffff, 0xfe04 }, in rtl_hw_start_8125a_2()
3694 { 0x0b, 0xffff, 0xa908 }, in rtl_hw_start_8125b()
3695 { 0x1e, 0xffff, 0x20eb }, in rtl_hw_start_8125b()
3696 { 0x4b, 0xffff, 0xa908 }, in rtl_hw_start_8125b()
3697 { 0x5e, 0xffff, 0x20eb }, in rtl_hw_start_8125b()
3698 { 0x22, 0x0030, 0x0020 }, in rtl_hw_start_8125b()
3699 { 0x62, 0x0030, 0x0020 }, in rtl_hw_start_8125b()
3773 for (i = 0xa00; i < 0xb00; i += 4) in rtl_hw_start_8125()
3774 RTL_W32(tp, i, 0); in rtl_hw_start_8125()
3789 RTL_W16(tp, IntrMitigate, 0x0000); in rtl_hw_start_8168()
3807 RTL_W16(tp, IntrMitigate, 0x0000); in rtl_hw_start_8169()
3857 return 0; in rtl8169_change_mtu()
3864 desc->opts2 = 0; in rtl8169_mark_to_asic()
3882 mapping = dma_map_page(d, data, 0, R8169_RX_BUF_SIZE, DMA_FROM_DEVICE); in rtl8169_alloc_rx_data()
3899 for (i = 0; i < NUM_RX_DESC && tp->Rx_databuff[i]; i++) { in rtl8169_rx_clear()
3905 tp->RxDescArray[i].addr = 0; in rtl8169_rx_clear()
3906 tp->RxDescArray[i].opts1 = 0; in rtl8169_rx_clear()
3914 for (i = 0; i < NUM_RX_DESC; i++) { in rtl8169_rx_fill()
3928 return 0; in rtl8169_rx_fill()
3935 memset(tp->tx_skb, 0, sizeof(tp->tx_skb)); in rtl8169_init_ring()
3936 memset(tp->Rx_databuff, 0, sizeof(tp->Rx_databuff)); in rtl8169_init_ring()
3948 memset(desc, 0, sizeof(*desc)); in rtl8169_unmap_tx_skb()
3949 memset(tx_skb, 0, sizeof(*tx_skb)); in rtl8169_unmap_tx_skb()
3957 for (i = 0; i < n; i++) { in rtl8169_tx_clear_range()
4027 for (i = 0; i < NUM_RX_DESC; i++) in rtl_reset_work()
4061 opts1 = opts[0] | len; in rtl8169_tx_map()
4070 return 0; in rtl8169_tx_map()
4079 for (cur_frag = 0; cur_frag < info->nr_frags; cur_frag++) { in rtl8169_xmit_frags()
4090 return 0; in rtl8169_xmit_frags()
4121 unsigned int padto = 0, len = skb->len; in rtl8125_quirk_udp_padto()
4170 opts[0] |= TD_LSO; in rtl8169_tso_csum_v1()
4171 opts[0] |= mss << TD0_MSS_SHIFT; in rtl8169_tso_csum_v1()
4176 opts[0] |= TD0_IP_CS | TD0_TCP_CS; in rtl8169_tso_csum_v1()
4178 opts[0] |= TD0_IP_CS | TD0_UDP_CS; in rtl8169_tso_csum_v1()
4192 opts[0] |= TD1_GTSENV4; in rtl8169_tso_csum_v2()
4194 if (skb_cow_head(skb, 0)) in rtl8169_tso_csum_v2()
4198 opts[0] |= TD1_GTSENV6; in rtl8169_tso_csum_v2()
4203 opts[0] |= skb_transport_offset(skb) << GTTCPHO_SHIFT; in rtl8169_tso_csum_v2()
4266 RTL_W16(tp, TxPoll_8125, BIT(0)); in rtl8169_doorbell()
4293 opts[0] = 0; in rtl8169_start_xmit()
4441 netdev_err(dev, "PCI error (cmd = 0x%04x, status_errs = 0x%04x)\n", in rtl8169_pcierr_interrupt()
4464 unsigned int dirty_tx, tx_left, bytes_compl = 0, pkts_compl = 0; in rtl_tx()
4469 for (tx_left = tp->cur_tx - dirty_tx; tx_left > 0; tx_left--) { in rtl_tx()
4540 for (rx_left = min(budget, NUM_RX_DESC); rx_left > 0; rx_left--, cur_rx++) { in rtl_rx()
4574 pkt_size = status & GENMASK(13, 0); in rtl_rx()
4629 if ((status & 0xffff) == 0xffff || !(status & tp->irq_mask)) in rtl8169_interrupt()
4723 return 0; in r8169_phy_connect()
4768 free_irq(pci_irq_vector(pdev, 0), tp); in rtl8169_close()
4781 return 0; in rtl8169_close()
4789 rtl8169_interrupt(pci_irq_vector(tp->pci_dev, 0), tp); in rtl8169_netpoll()
4816 if (retval < 0) in rtl_open()
4821 retval = request_irq(pci_irq_vector(pdev, 0), rtl8169_interrupt, in rtl_open()
4823 if (retval < 0) in rtl_open()
4839 free_irq(pci_irq_vector(pdev, 0), tp); in rtl_open()
4912 return 0; in rtl8169_net_resume()
4925 return 0; in rtl8169_suspend()
4948 return 0; in rtl8169_runtime_suspend()
4956 return 0; in rtl8169_runtime_suspend()
5102 u32 value = rtl_eri_read(tp, 0xe0); in rtl_read_mac_address()
5104 mac_addr[0] = (value >> 0) & 0xff; in rtl_read_mac_address()
5105 mac_addr[1] = (value >> 8) & 0xff; in rtl_read_mac_address()
5106 mac_addr[2] = (value >> 16) & 0xff; in rtl_read_mac_address()
5107 mac_addr[3] = (value >> 24) & 0xff; in rtl_read_mac_address()
5109 value = rtl_eri_read(tp, 0xe4); in rtl_read_mac_address()
5110 mac_addr[4] = (value >> 0) & 0xff; in rtl_read_mac_address()
5111 mac_addr[5] = (value >> 8) & 0xff; in rtl_read_mac_address()
5131 if (phyaddr > 0) in r8169_mdio_read_reg()
5142 if (phyaddr > 0) in r8169_mdio_write_reg()
5147 return 0; in r8169_mdio_write_reg()
5163 new_bus->irq[0] = PHY_IGNORE_INTERRUPT; in r8169_mdio_register()
5174 tp->phydev = mdiobus_get_phy(new_bus, 0); in r8169_mdio_register()
5181 …dev_err(&pdev->dev, "no dedicated PHY driver found for PHY ID 0x%08x, maybe realtek.ko needs to be… in r8169_mdio_register()
5189 return 0; in r8169_mdio_register()
5200 r8168_mac_ocp_modify(tp, 0xe8de, BIT(14), 0); in rtl_hw_init_8168g()
5203 r8168_mac_ocp_modify(tp, 0xe8de, 0, BIT(15)); in rtl_hw_init_8168g()
5215 r8168_mac_ocp_modify(tp, 0xe8de, BIT(14), 0); in rtl_hw_init_8125()
5218 r8168_mac_ocp_write(tp, 0xc0aa, 0x07d0); in rtl_hw_init_8125()
5219 r8168_mac_ocp_write(tp, 0xc0a6, 0x0150); in rtl_hw_init_8125()
5220 r8168_mac_ocp_write(tp, 0xc01e, 0x5555); in rtl_hw_init_8125()
5245 return 0; in rtl_jumbo_max()
5280 rc = 0; in rtl_get_ether_clk()
5336 tp->supports_gmii = ent->driver_data == RTL_CFG_NO_GBIT ? 0 : 1; in rtl_init_one()
5354 if (rc < 0) { in rtl_init_one()
5359 if (pcim_set_mwi(pdev) < 0) in rtl_init_one()
5364 if (region < 0) { in rtl_init_one()
5376 if (rc < 0) { in rtl_init_one()
5383 xid = (RTL_R32(tp, TxConfig) >> 20) & 0xfcf; in rtl_init_one()
5409 if (rc < 0) { in rtl_init_one()
5492 pci_irq_vector(pdev, 0)); in rtl_init_one()
5507 return 0; in rtl_init_one()