Lines Matching +full:tp +full:- +full:link

1 // SPDX-License-Identifier: GPL-2.0
46 /* TP-LINK */
71 int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data) in get_registers() argument
76 ret = usb_control_msg(tp->udev, usb_rcvctrlpipe(tp->udev, 0), in get_registers()
84 int set_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data) in set_registers() argument
89 return usb_control_msg(tp->udev, usb_sndctrlpipe(tp->udev, 0), in set_registers()
94 int generic_ocp_read(struct r8152 *tp, u16 index, u16 size, in generic_ocp_read() argument
103 return -EINVAL; in generic_ocp_read()
106 return -EINVAL; in generic_ocp_read()
110 ret = get_registers(tp, index, type, txsize, data); in generic_ocp_read()
116 size -= txsize; in generic_ocp_read()
122 int generic_ocp_write(struct r8152 *tp, u16 index, u16 byteen, in generic_ocp_write() argument
132 return -EINVAL; in generic_ocp_write()
135 return -EINVAL; in generic_ocp_write()
141 ret = set_registers(tp, index, type | byte_en_to_hw, 4, data); in generic_ocp_write()
147 size -= 4; in generic_ocp_write()
150 size -= 4; in generic_ocp_write()
155 ret = set_registers(tp, index, in generic_ocp_write()
163 size -= txsize; in generic_ocp_write()
167 ret = set_registers(tp, index, type | byte_en_to_hw, 4, data); in generic_ocp_write()
175 int pla_ocp_read(struct r8152 *tp, u16 index, u16 size, void *data) in pla_ocp_read() argument
177 return generic_ocp_read(tp, index, size, data, MCU_TYPE_PLA); in pla_ocp_read()
180 int pla_ocp_write(struct r8152 *tp, u16 index, u16 byteen, u16 size, void *data) in pla_ocp_write() argument
182 return generic_ocp_write(tp, index, byteen, size, data, MCU_TYPE_PLA); in pla_ocp_write()
185 int usb_ocp_read(struct r8152 *tp, u16 index, u16 size, void *data) in usb_ocp_read() argument
187 return generic_ocp_read(tp, index, size, data, MCU_TYPE_USB); in usb_ocp_read()
190 int usb_ocp_write(struct r8152 *tp, u16 index, u16 byteen, u16 size, void *data) in usb_ocp_write() argument
192 return generic_ocp_write(tp, index, byteen, size, data, MCU_TYPE_USB); in usb_ocp_write()
195 u32 ocp_read_dword(struct r8152 *tp, u16 type, u16 index) in ocp_read_dword() argument
199 generic_ocp_read(tp, index, sizeof(data), &data, type); in ocp_read_dword()
204 void ocp_write_dword(struct r8152 *tp, u16 type, u16 index, u32 data) in ocp_write_dword() argument
208 generic_ocp_write(tp, index, BYTE_EN_DWORD, sizeof(tmp), &tmp, type); in ocp_write_dword()
211 u16 ocp_read_word(struct r8152 *tp, u16 type, u16 index) in ocp_read_word() argument
219 generic_ocp_read(tp, index, sizeof(tmp), &tmp, type); in ocp_read_word()
228 void ocp_write_word(struct r8152 *tp, u16 type, u16 index, u32 data) in ocp_write_word() argument
246 generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); in ocp_write_word()
249 u8 ocp_read_byte(struct r8152 *tp, u16 type, u16 index) in ocp_read_byte() argument
257 generic_ocp_read(tp, index, sizeof(tmp), &tmp, type); in ocp_read_byte()
266 void ocp_write_byte(struct r8152 *tp, u16 type, u16 index, u32 data) in ocp_write_byte() argument
284 generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); in ocp_write_byte()
287 u16 ocp_reg_read(struct r8152 *tp, u16 addr) in ocp_reg_read() argument
292 if (ocp_base != tp->ocp_base) { in ocp_reg_read()
293 ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, ocp_base); in ocp_reg_read()
294 tp->ocp_base = ocp_base; in ocp_reg_read()
298 return ocp_read_word(tp, MCU_TYPE_PLA, ocp_index); in ocp_reg_read()
301 void ocp_reg_write(struct r8152 *tp, u16 addr, u16 data) in ocp_reg_write() argument
306 if (ocp_base != tp->ocp_base) { in ocp_reg_write()
307 ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, ocp_base); in ocp_reg_write()
308 tp->ocp_base = ocp_base; in ocp_reg_write()
312 ocp_write_word(tp, MCU_TYPE_PLA, ocp_index, data); in ocp_reg_write()
315 static void r8152_mdio_write(struct r8152 *tp, u32 reg_addr, u32 value) in r8152_mdio_write() argument
317 ocp_reg_write(tp, OCP_BASE_MII + reg_addr * 2, value); in r8152_mdio_write()
320 static int r8152_mdio_read(struct r8152 *tp, u32 reg_addr) in r8152_mdio_read() argument
322 return ocp_reg_read(tp, OCP_BASE_MII + reg_addr * 2); in r8152_mdio_read()
325 void sram_write(struct r8152 *tp, u16 addr, u16 data) in sram_write() argument
327 ocp_reg_write(tp, OCP_SRAM_ADDR, addr); in sram_write()
328 ocp_reg_write(tp, OCP_SRAM_DATA, data); in sram_write()
331 int r8152_wait_for_bit(struct r8152 *tp, bool ocp_reg, u16 type, u16 index, in r8152_wait_for_bit() argument
336 while (--timeout) { in r8152_wait_for_bit()
338 val = ocp_reg_read(tp, index); in r8152_wait_for_bit()
340 val = ocp_read_dword(tp, type, index); in r8152_wait_for_bit()
354 return -ETIMEDOUT; in r8152_wait_for_bit()
357 static void r8152b_reset_packet_filter(struct r8152 *tp) in r8152b_reset_packet_filter() argument
361 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_FMC); in r8152b_reset_packet_filter()
363 ocp_write_word(tp, MCU_TYPE_PLA, PLA_FMC, ocp_data); in r8152b_reset_packet_filter()
365 ocp_write_word(tp, MCU_TYPE_PLA, PLA_FMC, ocp_data); in r8152b_reset_packet_filter()
368 static void rtl8152_wait_fifo_empty(struct r8152 *tp) in rtl8152_wait_fifo_empty() argument
372 ret = r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, PLA_PHY_PWR, in rtl8152_wait_fifo_empty()
377 ret = r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, PLA_TCR0, in rtl8152_wait_fifo_empty()
383 static void rtl8152_nic_reset(struct r8152 *tp) in rtl8152_nic_reset() argument
388 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, BIST_CTRL); in rtl8152_nic_reset()
390 ocp_write_dword(tp, MCU_TYPE_PLA, BIST_CTRL, ocp_data); in rtl8152_nic_reset()
392 ret = r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, BIST_CTRL, in rtl8152_nic_reset()
398 static u8 rtl8152_get_speed(struct r8152 *tp) in rtl8152_get_speed() argument
400 return ocp_read_byte(tp, MCU_TYPE_PLA, PLA_PHYSTATUS); in rtl8152_get_speed()
403 static void rtl_set_eee_plus(struct r8152 *tp) in rtl_set_eee_plus() argument
407 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_EEEP_CR); in rtl_set_eee_plus()
409 ocp_write_word(tp, MCU_TYPE_PLA, PLA_EEEP_CR, ocp_data); in rtl_set_eee_plus()
412 static void rxdy_gated_en(struct r8152 *tp, bool enable) in rxdy_gated_en() argument
416 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MISC_1); in rxdy_gated_en()
421 ocp_write_word(tp, MCU_TYPE_PLA, PLA_MISC_1, ocp_data); in rxdy_gated_en()
424 static void rtl8152_set_rx_mode(struct r8152 *tp) in rtl8152_set_rx_mode() argument
432 pla_ocp_write(tp, PLA_MAR, BYTE_EN_DWORD, sizeof(tmp), tmp); in rtl8152_set_rx_mode()
434 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in rtl8152_set_rx_mode()
436 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in rtl8152_set_rx_mode()
439 static int rtl_enable(struct r8152 *tp) in rtl_enable() argument
443 r8152b_reset_packet_filter(tp); in rtl_enable()
445 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_CR); in rtl_enable()
447 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CR, ocp_data); in rtl_enable()
449 rxdy_gated_en(tp, false); in rtl_enable()
451 rtl8152_set_rx_mode(tp); in rtl_enable()
456 static int rtl8152_enable(struct r8152 *tp) in rtl8152_enable() argument
458 rtl_set_eee_plus(tp); in rtl8152_enable()
460 return rtl_enable(tp); in rtl8152_enable()
463 static void r8153_set_rx_early_timeout(struct r8152 *tp) in r8153_set_rx_early_timeout() argument
465 u32 ocp_data = tp->coalesce / 8; in r8153_set_rx_early_timeout()
467 ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_TIMEOUT, ocp_data); in r8153_set_rx_early_timeout()
470 static void r8153_set_rx_early_size(struct r8152 *tp) in r8153_set_rx_early_size() argument
472 u32 ocp_data = (RTL8152_AGG_BUF_SZ - RTL8153_RMS) / 4; in r8153_set_rx_early_size()
474 ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_SIZE, ocp_data); in r8153_set_rx_early_size()
477 static int rtl8153_enable(struct r8152 *tp) in rtl8153_enable() argument
479 rtl_set_eee_plus(tp); in rtl8153_enable()
480 r8153_set_rx_early_timeout(tp); in rtl8153_enable()
481 r8153_set_rx_early_size(tp); in rtl8153_enable()
483 return rtl_enable(tp); in rtl8153_enable()
486 static void rtl_disable(struct r8152 *tp) in rtl_disable() argument
490 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in rtl_disable()
492 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in rtl_disable()
494 rxdy_gated_en(tp, true); in rtl_disable()
496 rtl8152_wait_fifo_empty(tp); in rtl_disable()
497 rtl8152_nic_reset(tp); in rtl_disable()
500 static void r8152_power_cut_en(struct r8152 *tp, bool enable) in r8152_power_cut_en() argument
504 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_UPS_CTRL); in r8152_power_cut_en()
509 ocp_write_word(tp, MCU_TYPE_USB, USB_UPS_CTRL, ocp_data); in r8152_power_cut_en()
511 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_PM_CTRL_STATUS); in r8152_power_cut_en()
513 ocp_write_word(tp, MCU_TYPE_USB, USB_PM_CTRL_STATUS, ocp_data); in r8152_power_cut_en()
516 static void rtl_rx_vlan_en(struct r8152 *tp, bool enable) in rtl_rx_vlan_en() argument
520 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_CPCR); in rtl_rx_vlan_en()
525 ocp_write_word(tp, MCU_TYPE_PLA, PLA_CPCR, ocp_data); in rtl_rx_vlan_en()
528 static void r8153_u1u2en(struct r8152 *tp, bool enable) in r8153_u1u2en() argument
537 usb_ocp_write(tp, USB_TOLERANCE, BYTE_EN_SIX_BYTES, sizeof(u1u2), u1u2); in r8153_u1u2en()
540 static void r8153_u2p3en(struct r8152 *tp, bool enable) in r8153_u2p3en() argument
544 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_U2P3_CTRL); in r8153_u2p3en()
545 if (enable && tp->version != RTL_VER_03 && tp->version != RTL_VER_04) in r8153_u2p3en()
549 ocp_write_word(tp, MCU_TYPE_USB, USB_U2P3_CTRL, ocp_data); in r8153_u2p3en()
552 static void r8153_power_cut_en(struct r8152 *tp, bool enable) in r8153_power_cut_en() argument
556 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_POWER_CUT); in r8153_power_cut_en()
561 ocp_write_word(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data); in r8153_power_cut_en()
563 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0); in r8153_power_cut_en()
565 ocp_write_word(tp, MCU_TYPE_USB, USB_MISC_0, ocp_data); in r8153_power_cut_en()
568 static int r8152_read_mac(struct r8152 *tp, unsigned char *macaddr) in r8152_read_mac() argument
573 ret = pla_ocp_read(tp, PLA_IDR, 8, enetaddr); in r8152_read_mac()
581 static void r8152b_disable_aldps(struct r8152 *tp) in r8152b_disable_aldps() argument
583 ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE); in r8152b_disable_aldps()
587 static void r8152b_enable_aldps(struct r8152 *tp) in r8152b_enable_aldps() argument
589 ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPWRSAVE | ENPDNPS | in r8152b_enable_aldps()
593 static void rtl8152_disable(struct r8152 *tp) in rtl8152_disable() argument
595 r8152b_disable_aldps(tp); in rtl8152_disable()
596 rtl_disable(tp); in rtl8152_disable()
597 r8152b_enable_aldps(tp); in rtl8152_disable()
600 static void r8152b_hw_phy_cfg(struct r8152 *tp) in r8152b_hw_phy_cfg() argument
604 data = r8152_mdio_read(tp, MII_BMCR); in r8152b_hw_phy_cfg()
607 r8152_mdio_write(tp, MII_BMCR, data); in r8152b_hw_phy_cfg()
610 r8152b_firmware(tp); in r8152b_hw_phy_cfg()
613 static void rtl8152_reinit_ll(struct r8152 *tp) in rtl8152_reinit_ll() argument
618 ret = r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, PLA_PHY_PWR, in rtl8152_reinit_ll()
621 debug("Timeout waiting for link list ready\n"); in rtl8152_reinit_ll()
623 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7); in rtl8152_reinit_ll()
625 ocp_write_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7, ocp_data); in rtl8152_reinit_ll()
627 ret = r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, PLA_PHY_PWR, in rtl8152_reinit_ll()
630 debug("Timeout waiting for link list ready\n"); in rtl8152_reinit_ll()
633 static void r8152b_exit_oob(struct r8152 *tp) in r8152b_exit_oob() argument
637 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in r8152b_exit_oob()
639 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in r8152b_exit_oob()
641 rxdy_gated_en(tp, true); in r8152b_exit_oob()
642 r8152b_hw_phy_cfg(tp); in r8152b_exit_oob()
644 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_NORAML); in r8152b_exit_oob()
645 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CR, 0x00); in r8152b_exit_oob()
647 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8152b_exit_oob()
649 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8152b_exit_oob()
651 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7); in r8152b_exit_oob()
653 ocp_write_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7, ocp_data); in r8152b_exit_oob()
655 rtl8152_reinit_ll(tp); in r8152b_exit_oob()
656 rtl8152_nic_reset(tp); in r8152b_exit_oob()
659 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_NORMAL); in r8152b_exit_oob()
661 if (tp->udev->speed == USB_SPEED_FULL || in r8152b_exit_oob()
662 tp->udev->speed == USB_SPEED_LOW) { in r8152b_exit_oob()
664 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, in r8152b_exit_oob()
666 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL2, in r8152b_exit_oob()
670 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, in r8152b_exit_oob()
672 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL2, in r8152b_exit_oob()
677 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TXFIFO_CTRL, TXFIFO_THR_NORMAL); in r8152b_exit_oob()
679 ocp_write_byte(tp, MCU_TYPE_USB, USB_TX_AGG, TX_AGG_MAX_THRESHOLD); in r8152b_exit_oob()
680 ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_HIGH); in r8152b_exit_oob()
681 ocp_write_dword(tp, MCU_TYPE_USB, USB_TX_DMA, in r8152b_exit_oob()
684 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, RTL8152_RMS); in r8152b_exit_oob()
686 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0); in r8152b_exit_oob()
688 ocp_write_word(tp, MCU_TYPE_PLA, PLA_TCR0, ocp_data); in r8152b_exit_oob()
691 static void r8152b_enter_oob(struct r8152 *tp) in r8152b_enter_oob() argument
695 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8152b_enter_oob()
697 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8152b_enter_oob()
699 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_OOB); in r8152b_enter_oob()
700 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, RXFIFO_THR2_OOB); in r8152b_enter_oob()
701 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL2, RXFIFO_THR3_OOB); in r8152b_enter_oob()
703 rtl_disable(tp); in r8152b_enter_oob()
705 rtl8152_reinit_ll(tp); in r8152b_enter_oob()
707 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, RTL8152_RMS); in r8152b_enter_oob()
709 rtl_rx_vlan_en(tp, false); in r8152b_enter_oob()
711 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PAL_BDC_CR); in r8152b_enter_oob()
713 ocp_write_word(tp, MCU_TYPE_PLA, PAL_BDC_CR, ocp_data); in r8152b_enter_oob()
715 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8152b_enter_oob()
717 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8152b_enter_oob()
719 rxdy_gated_en(tp, false); in r8152b_enter_oob()
721 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in r8152b_enter_oob()
723 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in r8152b_enter_oob()
726 static void r8153_hw_phy_cfg(struct r8152 *tp) in r8153_hw_phy_cfg() argument
731 if (tp->version == RTL_VER_03 || tp->version == RTL_VER_04 || in r8153_hw_phy_cfg()
732 tp->version == RTL_VER_05) in r8153_hw_phy_cfg()
733 ocp_reg_write(tp, OCP_ADC_CFG, CKADSEL_L | ADC_EN | EN_EMI_L); in r8153_hw_phy_cfg()
735 data = r8152_mdio_read(tp, MII_BMCR); in r8153_hw_phy_cfg()
738 r8152_mdio_write(tp, MII_BMCR, data); in r8153_hw_phy_cfg()
741 r8153_firmware(tp); in r8153_hw_phy_cfg()
743 if (tp->version == RTL_VER_03) { in r8153_hw_phy_cfg()
744 data = ocp_reg_read(tp, OCP_EEE_CFG); in r8153_hw_phy_cfg()
746 ocp_reg_write(tp, OCP_EEE_CFG, data); in r8153_hw_phy_cfg()
749 data = ocp_reg_read(tp, OCP_POWER_CFG); in r8153_hw_phy_cfg()
751 ocp_reg_write(tp, OCP_POWER_CFG, data); in r8153_hw_phy_cfg()
753 data = ocp_reg_read(tp, OCP_DOWN_SPEED); in r8153_hw_phy_cfg()
755 ocp_reg_write(tp, OCP_DOWN_SPEED, data); in r8153_hw_phy_cfg()
756 data = ocp_reg_read(tp, OCP_POWER_CFG); in r8153_hw_phy_cfg()
758 ocp_reg_write(tp, OCP_POWER_CFG, data); in r8153_hw_phy_cfg()
759 sram_write(tp, SRAM_IMPEDANCE, 0x0b13); in r8153_hw_phy_cfg()
761 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR); in r8153_hw_phy_cfg()
763 ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); in r8153_hw_phy_cfg()
766 sram_write(tp, SRAM_LPF_CFG, 0xf70f); in r8153_hw_phy_cfg()
769 sram_write(tp, SRAM_10M_AMP1, 0x00af); in r8153_hw_phy_cfg()
770 sram_write(tp, SRAM_10M_AMP2, 0x0208); in r8153_hw_phy_cfg()
773 static void r8153_first_init(struct r8152 *tp) in r8153_first_init() argument
777 rxdy_gated_en(tp, true); in r8153_first_init()
779 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in r8153_first_init()
781 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in r8153_first_init()
783 r8153_hw_phy_cfg(tp); in r8153_first_init()
785 rtl8152_nic_reset(tp); in r8153_first_init()
787 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8153_first_init()
789 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8153_first_init()
791 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7); in r8153_first_init()
793 ocp_write_word(tp, MCU_TYPE_PLA, PLA_SFF_STS_7, ocp_data); in r8153_first_init()
795 rtl8152_reinit_ll(tp); in r8153_first_init()
797 rtl_rx_vlan_en(tp, false); in r8153_first_init()
800 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, ocp_data); in r8153_first_init()
801 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_MTPS, MTPS_JUMBO); in r8153_first_init()
803 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0); in r8153_first_init()
805 ocp_write_word(tp, MCU_TYPE_PLA, PLA_TCR0, ocp_data); in r8153_first_init()
807 rtl8152_nic_reset(tp); in r8153_first_init()
810 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_NORMAL); in r8153_first_init()
811 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, RXFIFO_THR2_NORMAL); in r8153_first_init()
812 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL2, RXFIFO_THR3_NORMAL); in r8153_first_init()
814 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TXFIFO_CTRL, TXFIFO_THR_NORMAL2); in r8153_first_init()
817 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); in r8153_first_init()
820 ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); in r8153_first_init()
823 static void r8153_enter_oob(struct r8152 *tp) in r8153_enter_oob() argument
827 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8153_enter_oob()
829 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8153_enter_oob()
831 rtl_disable(tp); in r8153_enter_oob()
833 rtl8152_reinit_ll(tp); in r8153_enter_oob()
836 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, ocp_data); in r8153_enter_oob()
838 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TEREDO_CFG); in r8153_enter_oob()
840 ocp_write_word(tp, MCU_TYPE_PLA, PLA_TEREDO_CFG, ocp_data); in r8153_enter_oob()
842 rtl_rx_vlan_en(tp, false); in r8153_enter_oob()
844 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PAL_BDC_CR); in r8153_enter_oob()
846 ocp_write_word(tp, MCU_TYPE_PLA, PAL_BDC_CR, ocp_data); in r8153_enter_oob()
848 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); in r8153_enter_oob()
850 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); in r8153_enter_oob()
852 rxdy_gated_en(tp, false); in r8153_enter_oob()
854 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); in r8153_enter_oob()
856 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); in r8153_enter_oob()
859 static void r8153_disable_aldps(struct r8152 *tp) in r8153_disable_aldps() argument
863 data = ocp_reg_read(tp, OCP_POWER_CFG); in r8153_disable_aldps()
865 ocp_reg_write(tp, OCP_POWER_CFG, data); in r8153_disable_aldps()
869 static void rtl8153_disable(struct r8152 *tp) in rtl8153_disable() argument
871 r8153_disable_aldps(tp); in rtl8153_disable()
872 rtl_disable(tp); in rtl8153_disable()
875 static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u16 speed, u8 duplex) in rtl8152_set_speed() argument
879 anar = r8152_mdio_read(tp, MII_ADVERTISE); in rtl8152_set_speed()
882 if (tp->supports_gmii) { in rtl8152_set_speed()
883 gbcr = r8152_mdio_read(tp, MII_CTRL1000); in rtl8152_set_speed()
896 } else if (speed == SPEED_1000 && tp->supports_gmii) { in rtl8152_set_speed()
900 return -EINVAL; in rtl8152_set_speed()
919 } else if (speed == SPEED_1000 && tp->supports_gmii) { in rtl8152_set_speed()
930 return -EINVAL; in rtl8152_set_speed()
936 if (tp->supports_gmii) in rtl8152_set_speed()
937 r8152_mdio_write(tp, MII_CTRL1000, gbcr); in rtl8152_set_speed()
939 r8152_mdio_write(tp, MII_ADVERTISE, anar); in rtl8152_set_speed()
940 r8152_mdio_write(tp, MII_BMCR, bmcr); in rtl8152_set_speed()
945 static void rtl8152_up(struct r8152 *tp) in rtl8152_up() argument
947 r8152b_disable_aldps(tp); in rtl8152_up()
948 r8152b_exit_oob(tp); in rtl8152_up()
949 r8152b_enable_aldps(tp); in rtl8152_up()
952 static void rtl8152_down(struct r8152 *tp) in rtl8152_down() argument
954 r8152_power_cut_en(tp, false); in rtl8152_down()
955 r8152b_disable_aldps(tp); in rtl8152_down()
956 r8152b_enter_oob(tp); in rtl8152_down()
957 r8152b_enable_aldps(tp); in rtl8152_down()
960 static void rtl8153_up(struct r8152 *tp) in rtl8153_up() argument
962 r8153_u1u2en(tp, false); in rtl8153_up()
963 r8153_disable_aldps(tp); in rtl8153_up()
964 r8153_first_init(tp); in rtl8153_up()
965 r8153_u2p3en(tp, false); in rtl8153_up()
968 static void rtl8153_down(struct r8152 *tp) in rtl8153_down() argument
970 r8153_u1u2en(tp, false); in rtl8153_down()
971 r8153_u2p3en(tp, false); in rtl8153_down()
972 r8153_power_cut_en(tp, false); in rtl8153_down()
973 r8153_disable_aldps(tp); in rtl8153_down()
974 r8153_enter_oob(tp); in rtl8153_down()
977 static void r8152b_get_version(struct r8152 *tp) in r8152b_get_version() argument
983 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR1); in r8152b_get_version()
989 tp->version = r8152_versions[i].version; in r8152b_get_version()
990 tp->supports_gmii = r8152_versions[i].gmii; in r8152b_get_version()
995 if (tp->version == RTL_VER_UNKNOWN) in r8152b_get_version()
999 static void r8152b_enable_fc(struct r8152 *tp) in r8152b_enable_fc() argument
1002 anar = r8152_mdio_read(tp, MII_ADVERTISE); in r8152b_enable_fc()
1004 r8152_mdio_write(tp, MII_ADVERTISE, anar); in r8152b_enable_fc()
1007 static void rtl_tally_reset(struct r8152 *tp) in rtl_tally_reset() argument
1011 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY); in rtl_tally_reset()
1013 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); in rtl_tally_reset()
1016 static void r8152b_init(struct r8152 *tp) in r8152b_init() argument
1020 r8152b_disable_aldps(tp); in r8152b_init()
1022 if (tp->version == RTL_VER_01) { in r8152b_init()
1023 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE); in r8152b_init()
1025 ocp_write_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE, ocp_data); in r8152b_init()
1028 r8152_power_cut_en(tp, false); in r8152b_init()
1030 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR); in r8152b_init()
1032 ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); in r8152b_init()
1033 ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL); in r8152b_init()
1036 ocp_write_dword(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL, ocp_data); in r8152b_init()
1039 ocp_write_word(tp, MCU_TYPE_PLA, PLA_GPHY_INTR_IMR, ocp_data); in r8152b_init()
1041 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_TIMER); in r8152b_init()
1043 ocp_write_word(tp, MCU_TYPE_USB, USB_USB_TIMER, ocp_data); in r8152b_init()
1044 ocp_write_word(tp, MCU_TYPE_USB, 0xcbfc, 0x03e8); in r8152b_init()
1046 ocp_write_word(tp, MCU_TYPE_USB, USB_USB_TIMER, ocp_data); in r8152b_init()
1048 r8152b_enable_fc(tp); in r8152b_init()
1049 rtl_tally_reset(tp); in r8152b_init()
1052 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); in r8152b_init()
1055 ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); in r8152b_init()
1058 static void r8153_init(struct r8152 *tp) in r8153_init() argument
1063 r8153_disable_aldps(tp); in r8153_init()
1064 r8153_u1u2en(tp, false); in r8153_init()
1066 r8152_wait_for_bit(tp, 0, MCU_TYPE_PLA, PLA_BOOT_CTRL, in r8153_init()
1070 ocp_data = ocp_reg_read(tp, OCP_PHY_STATUS) & PHY_STAT_MASK; in r8153_init()
1077 r8153_u2p3en(tp, false); in r8153_init()
1079 if (tp->version == RTL_VER_04) { in r8153_init()
1080 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_SSPHYLINK2); in r8153_init()
1083 ocp_write_word(tp, MCU_TYPE_USB, USB_SSPHYLINK2, ocp_data); in r8153_init()
1085 ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_USB2PHY); in r8153_init()
1087 ocp_write_byte(tp, MCU_TYPE_USB, USB_USB2PHY, ocp_data); in r8153_init()
1088 } else if (tp->version == RTL_VER_05) { in r8153_init()
1089 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_DMY_REG0); in r8153_init()
1091 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_DMY_REG0, ocp_data); in r8153_init()
1093 ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY1); in r8153_init()
1094 if (ocp_read_word(tp, MCU_TYPE_USB, USB_BURST_SIZE) == 0) in r8153_init()
1098 ocp_write_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY1, ocp_data); in r8153_init()
1099 } else if (tp->version == RTL_VER_06) { in r8153_init()
1100 ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY1); in r8153_init()
1101 if (ocp_read_word(tp, MCU_TYPE_USB, USB_BURST_SIZE) == 0) in r8153_init()
1105 ocp_write_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY1, ocp_data); in r8153_init()
1108 ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY2); in r8153_init()
1110 ocp_write_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY2, ocp_data); in r8153_init()
1112 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_WDT11_CTRL); in r8153_init()
1114 ocp_write_word(tp, MCU_TYPE_USB, USB_WDT11_CTRL, ocp_data); in r8153_init()
1116 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE); in r8153_init()
1118 ocp_write_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE, ocp_data); in r8153_init()
1121 if (tp->version == RTL_VER_04 && tp->udev->speed != USB_SPEED_SUPER) in r8153_init()
1125 ocp_write_byte(tp, MCU_TYPE_USB, USB_LPM_CTRL, ocp_data); in r8153_init()
1127 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_AFE_CTRL2); in r8153_init()
1130 ocp_write_word(tp, MCU_TYPE_USB, USB_AFE_CTRL2, ocp_data); in r8153_init()
1132 ocp_write_word(tp, MCU_TYPE_USB, USB_CONNECT_TIMER, 0x0001); in r8153_init()
1134 r8153_power_cut_en(tp, false); in r8153_init()
1136 r8152b_enable_fc(tp); in r8153_init()
1137 rtl_tally_reset(tp); in r8153_init()
1140 static void rtl8152_unload(struct r8152 *tp) in rtl8152_unload() argument
1142 if (tp->version != RTL_VER_01) in rtl8152_unload()
1143 r8152_power_cut_en(tp, true); in rtl8152_unload()
1146 static void rtl8153_unload(struct r8152 *tp) in rtl8153_unload() argument
1148 r8153_power_cut_en(tp, false); in rtl8153_unload()
1151 static int rtl_ops_init(struct r8152 *tp) in rtl_ops_init() argument
1153 struct rtl_ops *ops = &tp->rtl_ops; in rtl_ops_init()
1156 switch (tp->version) { in rtl_ops_init()
1160 ops->init = r8152b_init; in rtl_ops_init()
1161 ops->enable = rtl8152_enable; in rtl_ops_init()
1162 ops->disable = rtl8152_disable; in rtl_ops_init()
1163 ops->up = rtl8152_up; in rtl_ops_init()
1164 ops->down = rtl8152_down; in rtl_ops_init()
1165 ops->unload = rtl8152_unload; in rtl_ops_init()
1172 ops->init = r8153_init; in rtl_ops_init()
1173 ops->enable = rtl8153_enable; in rtl_ops_init()
1174 ops->disable = rtl8153_disable; in rtl_ops_init()
1175 ops->up = rtl8153_up; in rtl_ops_init()
1176 ops->down = rtl8153_down; in rtl_ops_init()
1177 ops->unload = rtl8153_unload; in rtl_ops_init()
1181 ret = -ENODEV; in rtl_ops_init()
1189 static int r8152_init_common(struct r8152 *tp) in r8152_init_common() argument
1198 speed = rtl8152_get_speed(tp); in r8152_init_common()
1209 tp->rtl_ops.enable(tp); in r8152_init_common()
1222 struct usb_device *udev = ueth->pusb_dev; in r8152_send_common()
1234 tx_desc->opts2 = cpu_to_le32(opts2); in r8152_send_common()
1235 tx_desc->opts1 = cpu_to_le32(opts1); in r8152_send_common()
1239 err = usb_bulk_msg(udev, usb_sndbulkpipe(udev, ueth->ep_out), in r8152_send_common()
1251 struct ueth_data *dev = (struct ueth_data *)eth->priv; in r8152_init()
1252 struct r8152 *tp = (struct r8152 *)dev->dev_priv; in r8152_init() local
1254 return r8152_init_common(tp); in r8152_init()
1259 struct ueth_data *dev = (struct ueth_data *)eth->priv; in r8152_send()
1266 struct ueth_data *dev = (struct ueth_data *)eth->priv; in r8152_recv()
1279 err = usb_bulk_msg(dev->pusb_dev, in r8152_recv()
1280 usb_rcvbulkpipe(dev->pusb_dev, dev->ep_in), in r8152_recv()
1289 return -1; in r8152_recv()
1293 return -1; in r8152_recv()
1300 packet_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK; in r8152_recv()
1301 packet_len -= CRC_SIZE; in r8152_recv()
1309 bytes_process = bytes_process + 8 - (bytes_process % 8); in r8152_recv()
1317 struct ueth_data *dev = (struct ueth_data *)eth->priv; in r8152_halt()
1318 struct r8152 *tp = (struct r8152 *)dev->dev_priv; in r8152_halt() local
1322 tp->rtl_ops.disable(tp); in r8152_halt()
1327 struct ueth_data *dev = (struct ueth_data *)eth->priv; in r8152_write_hwaddr()
1328 struct r8152 *tp = (struct r8152 *)dev->dev_priv; in r8152_write_hwaddr() local
1332 memcpy(enetaddr, eth->enetaddr, ETH_ALEN); in r8152_write_hwaddr()
1334 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_CONFIG); in r8152_write_hwaddr()
1335 pla_ocp_write(tp, PLA_IDR, BYTE_EN_SIX_BYTES, 8, enetaddr); in r8152_write_hwaddr()
1336 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_NORAML); in r8152_write_hwaddr()
1338 debug("MAC %pM\n", eth->enetaddr); in r8152_write_hwaddr()
1356 struct r8152 *tp; in r8152_eth_probe() local
1359 iface = &dev->config.if_desc[ifnum]; in r8152_eth_probe()
1360 iface_desc = &dev->config.if_desc[ifnum].desc; in r8152_eth_probe()
1363 if (dev->descriptor.idVendor == r8152_dongles[i].vendor && in r8152_eth_probe()
1364 dev->descriptor.idProduct == r8152_dongles[i].product) in r8152_eth_probe()
1376 dev->descriptor.idVendor, dev->descriptor.idProduct); in r8152_eth_probe()
1379 ss->ifnum = ifnum; in r8152_eth_probe()
1380 ss->pusb_dev = dev; in r8152_eth_probe()
1381 ss->subclass = iface_desc->bInterfaceSubClass; in r8152_eth_probe()
1382 ss->protocol = iface_desc->bInterfaceProtocol; in r8152_eth_probe()
1385 ss->dev_priv = calloc(1, sizeof(struct r8152)); in r8152_eth_probe()
1387 if (!ss->dev_priv) in r8152_eth_probe()
1391 * We are expecting a minimum of 3 endpoints - in, out (bulk), and in r8152_eth_probe()
1394 for (i = 0; i < iface_desc->bNumEndpoints; i++) { in r8152_eth_probe()
1396 if ((iface->ep_desc[i].bmAttributes & in r8152_eth_probe()
1398 u8 ep_addr = iface->ep_desc[i].bEndpointAddress; in r8152_eth_probe()
1400 ss->ep_in = ep_addr & in r8152_eth_probe()
1405 ss->ep_out = ep_addr & in r8152_eth_probe()
1413 if ((iface->ep_desc[i].bmAttributes & in r8152_eth_probe()
1415 ss->ep_int = iface->ep_desc[i].bEndpointAddress & in r8152_eth_probe()
1417 ss->irqinterval = iface->ep_desc[i].bInterval; in r8152_eth_probe()
1422 ss->ep_in, ss->ep_out, ss->ep_int); in r8152_eth_probe()
1425 if (usb_set_interface(dev, iface_desc->bInterfaceNumber, 0) || in r8152_eth_probe()
1426 !ss->ep_in || !ss->ep_out || !ss->ep_int) { in r8152_eth_probe()
1431 dev->privptr = (void *)ss; in r8152_eth_probe()
1433 tp = ss->dev_priv; in r8152_eth_probe()
1434 tp->udev = dev; in r8152_eth_probe()
1435 tp->intf = iface; in r8152_eth_probe()
1437 r8152b_get_version(tp); in r8152_eth_probe()
1439 if (rtl_ops_init(tp)) in r8152_eth_probe()
1442 tp->rtl_ops.init(tp); in r8152_eth_probe()
1443 tp->rtl_ops.up(tp); in r8152_eth_probe()
1445 rtl8152_set_speed(tp, AUTONEG_ENABLE, in r8152_eth_probe()
1446 tp->supports_gmii ? SPEED_1000 : SPEED_100, in r8152_eth_probe()
1460 sprintf(eth->name, "%s#%d", R8152_BASE_NAME, curr_eth_dev++); in r8152_eth_get_info()
1461 eth->init = r8152_init; in r8152_eth_get_info()
1462 eth->send = r8152_send; in r8152_eth_get_info()
1463 eth->recv = r8152_recv; in r8152_eth_get_info()
1464 eth->halt = r8152_halt; in r8152_eth_get_info()
1465 eth->write_hwaddr = r8152_write_hwaddr; in r8152_eth_get_info()
1466 eth->priv = ss; in r8152_eth_get_info()
1469 if (r8152_read_mac(ss->dev_priv, eth->enetaddr) < 0) in r8152_eth_get_info()
1472 debug("MAC %pM\n", eth->enetaddr); in r8152_eth_get_info()
1480 struct r8152 *tp = dev_get_priv(dev); in r8152_eth_start() local
1484 return r8152_init_common(tp); in r8152_eth_start()
1489 struct r8152 *tp = dev_get_priv(dev); in r8152_eth_stop() local
1493 tp->rtl_ops.disable(tp); in r8152_eth_stop()
1498 struct r8152 *tp = dev_get_priv(dev); in r8152_eth_send() local
1500 return r8152_send_common(&tp->ueth, packet, length); in r8152_eth_send()
1505 struct r8152 *tp = dev_get_priv(dev); in r8152_eth_recv() local
1506 struct ueth_data *ueth = &tp->ueth; in r8152_eth_recv()
1516 return -EAGAIN; in r8152_eth_recv()
1526 packet_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK; in r8152_eth_recv()
1527 packet_len -= CRC_SIZE; in r8152_eth_recv()
1529 if (packet_len > len - (sizeof(struct rx_desc) + CRC_SIZE)) { in r8152_eth_recv()
1538 usb_ether_advance_rxbuf(ueth, -1); in r8152_eth_recv()
1539 return -ENOSPC; in r8152_eth_recv()
1544 struct r8152 *tp = dev_get_priv(dev); in r8152_free_pkt() local
1548 usb_ether_advance_rxbuf(&tp->ueth, packet_len); in r8152_free_pkt()
1556 struct r8152 *tp = dev_get_priv(dev); in r8152_write_hwaddr() local
1561 memcpy(enetaddr, pdata->enetaddr, ETH_ALEN); in r8152_write_hwaddr()
1563 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_CONFIG); in r8152_write_hwaddr()
1564 pla_ocp_write(tp, PLA_IDR, BYTE_EN_SIX_BYTES, 8, enetaddr); in r8152_write_hwaddr()
1565 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_NORAML); in r8152_write_hwaddr()
1567 debug("MAC %pM\n", pdata->enetaddr); in r8152_write_hwaddr()
1574 struct r8152 *tp = dev_get_priv(dev); in r8152_read_rom_hwaddr() local
1577 r8152_read_mac(tp, pdata->enetaddr); in r8152_read_rom_hwaddr()
1585 struct r8152 *tp = dev_get_priv(dev); in r8152_eth_probe() local
1586 struct ueth_data *ueth = &tp->ueth; in r8152_eth_probe()
1589 tp->udev = udev; in r8152_eth_probe()
1590 r8152_read_mac(tp, pdata->enetaddr); in r8152_eth_probe()
1592 r8152b_get_version(tp); in r8152_eth_probe()
1594 ret = rtl_ops_init(tp); in r8152_eth_probe()
1598 tp->rtl_ops.init(tp); in r8152_eth_probe()
1599 tp->rtl_ops.up(tp); in r8152_eth_probe()
1601 rtl8152_set_speed(tp, AUTONEG_ENABLE, in r8152_eth_probe()
1602 tp->supports_gmii ? SPEED_1000 : SPEED_100, in r8152_eth_probe()
1646 /* TP-LINK */