Lines Matching +full:0 +full:x3d00

50 #define FLOW_THRESHOLD(n)		((((n) + 511) / 512) & 0x7F)
51 #define FLOW_CTRL_THRESHOLD(on, off) ((FLOW_THRESHOLD(on) << 0) | \
63 #define DEFAULT_BULK_IN_DELAY (0x0800)
73 #define LAN78XX_USB_VENDOR_ID (0x0424)
74 #define LAN7800_USB_PRODUCT_ID (0x7800)
75 #define LAN7850_USB_PRODUCT_ID (0x7850)
76 #define LAN7801_USB_PRODUCT_ID (0x7801)
77 #define LAN78XX_EEPROM_MAGIC (0x78A5)
78 #define LAN78XX_OTP_MAGIC (0x78F3)
81 #define MII_WRITE 0
83 #define EEPROM_INDICATOR (0xA5)
84 #define EEPROM_MAC_OFFSET (0x01)
86 #define OTP_INDICATOR_1 (0xF3)
87 #define OTP_INDICATOR_2 (0xF7)
139 #define INT_EP_GPIO_0 (0)
331 illegal = 0,
353 #define EVENT_TX_HALT 0
438 #define PHY_LAN8835 (0x0007C130)
439 #define PHY_KSZ9031RNX (0x00221620)
443 module_param(msg_level, int, 0);
458 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), in lan78xx_read_reg()
461 0, index, buf, 4, USB_CTRL_GET_TIMEOUT); in lan78xx_read_reg()
462 if (likely(ret >= 0)) { in lan78xx_read_reg()
467 "Failed to read register index 0x%08x. ret = %d", in lan78xx_read_reg()
491 ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), in lan78xx_write_reg()
494 0, index, buf, 4, USB_CTRL_SET_TIMEOUT); in lan78xx_write_reg()
495 if (unlikely(ret < 0) && in lan78xx_write_reg()
498 "Failed to write register index 0x%08x. ret = %d", in lan78xx_write_reg()
514 if (ret < 0) in lan78xx_update_reg()
521 if (ret < 0) in lan78xx_update_reg()
524 return 0; in lan78xx_update_reg()
530 int ret = 0; in lan78xx_read_stats()
541 usb_rcvctrlpipe(dev->udev, 0), in lan78xx_read_stats()
544 0, in lan78xx_read_stats()
545 0, in lan78xx_read_stats()
549 if (likely(ret >= 0)) { in lan78xx_read_stats()
552 for (i = 0; i < sizeof(*stats) / sizeof(u32); i++) { in lan78xx_read_stats()
570 } while (0)
633 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_update_stats()
643 if (lan78xx_read_stats(dev, &lan78xx_stats) > 0) in lan78xx_update_stats()
646 for (i = 0; i < (sizeof(lan78xx_stats) / (sizeof(u32))); i++) in lan78xx_update_stats()
663 if (unlikely(ret < 0)) in lan78xx_phy_wait_not_busy()
667 return 0; in lan78xx_phy_wait_not_busy()
696 if (unlikely(ret < 0)) in lan78xx_wait_eeprom()
710 return 0; in lan78xx_wait_eeprom()
721 if (unlikely(ret < 0)) in lan78xx_eeprom_confirm_not_busy()
725 return 0; in lan78xx_eeprom_confirm_not_busy()
756 for (i = 0; i < length; i++) { in lan78xx_read_raw_eeprom()
760 if (unlikely(ret < 0)) { in lan78xx_read_raw_eeprom()
766 if (retval < 0) in lan78xx_read_raw_eeprom()
770 if (unlikely(ret < 0)) { in lan78xx_read_raw_eeprom()
775 data[i] = val & 0xFF; in lan78xx_read_raw_eeprom()
779 retval = 0; in lan78xx_read_raw_eeprom()
793 ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig); in lan78xx_read_eeprom()
794 if ((ret == 0) && (sig == EEPROM_INDICATOR)) in lan78xx_read_eeprom()
827 if (unlikely(ret < 0)) { in lan78xx_write_raw_eeprom()
833 if (retval < 0) in lan78xx_write_raw_eeprom()
836 for (i = 0; i < length; i++) { in lan78xx_write_raw_eeprom()
840 if (ret < 0) { in lan78xx_write_raw_eeprom()
849 if (ret < 0) { in lan78xx_write_raw_eeprom()
855 if (retval < 0) in lan78xx_write_raw_eeprom()
861 retval = 0; in lan78xx_write_raw_eeprom()
880 lan78xx_write_reg(dev, OTP_PWR_DN, 0); in lan78xx_read_raw_otp()
894 for (i = 0; i < length; i++) { in lan78xx_read_raw_otp()
916 data[i] = (u8)(buf & 0xFF); in lan78xx_read_raw_otp()
919 return 0; in lan78xx_read_raw_otp()
933 lan78xx_write_reg(dev, OTP_PWR_DN, 0); in lan78xx_write_raw_otp()
950 for (i = 0; i < length; i++) { in lan78xx_write_raw_otp()
971 return 0; in lan78xx_write_raw_otp()
980 ret = lan78xx_read_raw_otp(dev, 0, 1, &sig); in lan78xx_read_otp()
982 if (ret == 0) { in lan78xx_read_otp()
984 offset += 0x100; in lan78xx_read_otp()
998 for (i = 0; i < 100; i++) { in lan78xx_dataport_wait_not_busy()
1002 if (unlikely(ret < 0)) in lan78xx_dataport_wait_not_busy()
1006 return 0; in lan78xx_dataport_wait_not_busy()
1019 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_dataport_write()
1023 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_dataport_write()
1024 return 0; in lan78xx_dataport_write()
1029 if (ret < 0) in lan78xx_dataport_write()
1038 for (i = 0; i < length; i++) { in lan78xx_dataport_write()
1046 if (ret < 0) in lan78xx_dataport_write()
1062 if ((pdata) && (index > 0) && (index < NUM_OF_MAF)) { in lan78xx_set_addr_filter()
1066 temp = addr[0] | (temp << 8); in lan78xx_set_addr_filter()
1071 pdata->pfilter_table[index][0] = temp; in lan78xx_set_addr_filter()
1078 return (ether_crc(ETH_ALEN, addr) >> 23) & 0x1ff; in lan78xx_hash()
1088 netif_dbg(dev, drv, dev->net, "deferred multicast write 0x%08x\n", in lan78xx_deferred_multicast_write()
1095 lan78xx_write_reg(dev, MAF_HI(i), 0); in lan78xx_deferred_multicast_write()
1099 pdata->pfilter_table[i][0]); in lan78xx_deferred_multicast_write()
1108 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_multicast()
1117 for (i = 0; i < DP_SEL_VHF_HASH_LEN; i++) in lan78xx_set_multicast()
1118 pdata->mchash_table[i] = 0; in lan78xx_set_multicast()
1120 /* pfilter_table[0] has own HW address */ in lan78xx_set_multicast()
1122 pdata->pfilter_table[i][0] = 0; in lan78xx_set_multicast()
1123 pdata->pfilter_table[i][1] = 0; in lan78xx_set_multicast()
1172 u32 flow = 0, fct_flow = 0; in lan78xx_update_flowcontrol()
1181 flow |= (FLOW_CR_TX_FCEN_ | 0xFFFF); in lan78xx_update_flowcontrol()
1200 return 0; in lan78xx_update_flowcontrol()
1216 if (ret < 0) in lan78xx_mac_reset()
1220 if (ret < 0) in lan78xx_mac_reset()
1225 if (ret < 0) in lan78xx_mac_reset()
1233 if (ret < 0) in lan78xx_mac_reset()
1237 ret = 0; in lan78xx_mac_reset()
1258 if (unlikely(ret < 0)) in lan78xx_link_reset()
1271 if (ret < 0) in lan78xx_link_reset()
1284 if (ret < 0) in lan78xx_link_reset()
1288 if (ret < 0) in lan78xx_link_reset()
1292 if (ret < 0) in lan78xx_link_reset()
1296 if (ret < 0) in lan78xx_link_reset()
1301 if (ret < 0) in lan78xx_link_reset()
1306 if (ret < 0) in lan78xx_link_reset()
1312 if (ladv < 0) in lan78xx_link_reset()
1316 if (radv < 0) in lan78xx_link_reset()
1320 "speed: %u duplex: %d anadv: 0x%04x anlpa: 0x%04x", in lan78xx_link_reset()
1325 if (ret < 0) in lan78xx_link_reset()
1337 return 0; in lan78xx_link_reset()
1348 if (!schedule_delayed_work(&dev->wq, 0)) in lan78xx_defer_kevent()
1365 netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata); in lan78xx_status()
1368 if (dev->domain_data.phyirq > 0) { in lan78xx_status()
1375 "unexpected interrupt: 0x%08x\n", intdata); in lan78xx_status()
1419 (ee->offset == 0) && in lan78xx_ethtool_set_eeprom()
1421 (data[0] == OTP_INDICATOR_1)) in lan78xx_ethtool_set_eeprom()
1462 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_get_wol()
1464 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_get_wol()
1468 if (unlikely(ret < 0)) { in lan78xx_get_wol()
1469 wol->supported = 0; in lan78xx_get_wol()
1470 wol->wolopts = 0; in lan78xx_get_wol()
1476 wol->supported = 0; in lan78xx_get_wol()
1477 wol->wolopts = 0; in lan78xx_get_wol()
1488 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_wol()
1492 if (ret < 0) in lan78xx_set_wol()
1517 if (ret < 0) in lan78xx_get_eee()
1521 if (ret < 0) in lan78xx_get_eee()
1537 edata->tx_lpi_timer = 0; in lan78xx_get_eee()
1540 ret = 0; in lan78xx_get_eee()
1554 if (ret < 0) in lan78xx_set_eee()
1574 return 0; in lan78xx_set_eee()
1620 if (ret < 0) in lan78xx_get_link_ksettings()
1635 int ret = 0; in lan78xx_set_link_ksettings()
1639 if (ret < 0) in lan78xx_set_link_ksettings()
1691 dev->fc_request_control = 0; in lan78xx_set_pause()
1699 __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; in lan78xx_set_pause()
1716 ret = 0; in lan78xx_set_pause()
1738 for (i = 0; i < ARRAY_SIZE(lan78xx_regs); i++) in lan78xx_get_regs()
1745 for (j = 0; j < 32; i++, j++) in lan78xx_get_regs()
1782 addr[0] = addr_lo & 0xFF; in lan78xx_init_mac_address()
1783 addr[1] = (addr_lo >> 8) & 0xFF; in lan78xx_init_mac_address()
1784 addr[2] = (addr_lo >> 16) & 0xFF; in lan78xx_init_mac_address()
1785 addr[3] = (addr_lo >> 24) & 0xFF; in lan78xx_init_mac_address()
1786 addr[4] = addr_hi & 0xFF; in lan78xx_init_mac_address()
1787 addr[5] = (addr_hi >> 8) & 0xFF; in lan78xx_init_mac_address()
1795 ETH_ALEN, addr) == 0) || in lan78xx_init_mac_address()
1797 ETH_ALEN, addr) == 0)) && in lan78xx_init_mac_address()
1809 addr_lo = addr[0] | (addr[1] << 8) | in lan78xx_init_mac_address()
1817 lan78xx_write_reg(dev, MAF_LO(0), addr_lo); in lan78xx_init_mac_address()
1818 lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); in lan78xx_init_mac_address()
1831 if (ret < 0) in lan78xx_mdiobus_read()
1838 if (ret < 0) in lan78xx_mdiobus_read()
1846 if (ret < 0) in lan78xx_mdiobus_read()
1851 ret = (int)(val & 0xFFFF); in lan78xx_mdiobus_read()
1868 if (ret < 0) in lan78xx_mdiobus_write()
1875 if (ret < 0) in lan78xx_mdiobus_write()
1886 if (ret < 0) in lan78xx_mdiobus_write()
1892 return 0; in lan78xx_mdiobus_write()
1922 /* scan thru PHYAD[2..0] */ in lan78xx_mdio_init()
1923 dev->mdiobus->phy_mask = ~(0xFF); in lan78xx_mdio_init()
1936 return 0; in lan78xx_mdio_init()
1989 return 0; in irq_map()
2053 unsigned int irqmap = 0; in lan78xx_setup_irq_domain()
2055 int ret = 0; in lan78xx_setup_irq_domain()
2067 irqdomain = irq_domain_add_simple(of_node, MAX_INT_EP, 0, in lan78xx_setup_irq_domain()
2090 if (dev->domain_data.phyirq > 0) { in lan78xx_remove_irq_domain()
2096 dev->domain_data.phyirq = 0; in lan78xx_remove_irq_domain()
2106 buf = phy_read_mmd(phydev, MDIO_MMD_PCS, 0x8010); in lan8835_fixup()
2107 buf &= ~0x1800; in lan8835_fixup()
2108 buf |= 0x0800; in lan8835_fixup()
2109 phy_write_mmd(phydev, MDIO_MMD_PCS, 0x8010, buf); in lan8835_fixup()
2116 lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); in lan8835_fixup()
2129 phy_write_mmd(phydev, MDIO_MMD_WIS, 4, 0x0077); in ksz9031rnx_fixup()
2131 phy_write_mmd(phydev, MDIO_MMD_WIS, 5, 0x7777); in ksz9031rnx_fixup()
2133 phy_write_mmd(phydev, MDIO_MMD_WIS, 8, 0x1FF); in ksz9031rnx_fixup()
2163 ret = lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); in lan7801_phy_init()
2175 ret = phy_register_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0, in lan7801_phy_init()
2177 if (ret < 0) { in lan7801_phy_init()
2182 ret = phy_register_fixup_for_uid(PHY_LAN8835, 0xfffffff0, in lan7801_phy_init()
2184 if (ret < 0) { in lan7801_phy_init()
2197 __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; in lan78xx_phy_init()
2228 if (dev->domain_data.phyirq > 0) in lan78xx_phy_init()
2231 phydev->irq = 0; in lan78xx_phy_init()
2248 0xfffffff0); in lan78xx_phy_init()
2250 0xfffffff0); in lan78xx_phy_init()
2276 if (len >= 0) { in lan78xx_phy_init()
2283 reg |= (len > 0) * HW_CFG_LED0_EN_ | in lan78xx_phy_init()
2295 return 0; in lan78xx_phy_init()
2305 rxenabled = ((buf & MAC_RX_RXEN_) != 0); in lan78xx_set_rx_max_frame_length()
2323 return 0; in lan78xx_set_rx_max_frame_length()
2330 int count = 0; in unlink_urbs()
2360 if (ret != -EINPROGRESS && ret != 0) in unlink_urbs()
2380 if ((ll_mtu % dev->maxpacket) == 0) in lan78xx_change_mtu()
2384 if (ret < 0) in lan78xx_change_mtu()
2404 return 0; in lan78xx_change_mtu()
2421 addr_lo = netdev->dev_addr[0] | in lan78xx_set_mac_addr()
2432 lan78xx_write_reg(dev, MAF_LO(0), addr_lo); in lan78xx_set_mac_addr()
2433 lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); in lan78xx_set_mac_addr()
2435 return 0; in lan78xx_set_mac_addr()
2443 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_features()
2470 return 0; in lan78xx_set_features()
2479 lan78xx_dataport_write(dev, DP_SEL_RSEL_VLAN_DA_, 0, in lan78xx_deferred_vlan_write()
2487 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_vlan_rx_add_vid()
2491 vid_dword_index = (vid >> 5) & 0x7F; in lan78xx_vlan_rx_add_vid()
2492 vid_bit_index = vid & 0x1F; in lan78xx_vlan_rx_add_vid()
2499 return 0; in lan78xx_vlan_rx_add_vid()
2506 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_vlan_rx_kill_vid()
2510 vid_dword_index = (vid >> 5) & 0x7F; in lan78xx_vlan_rx_kill_vid()
2511 vid_bit_index = vid & 0x1F; in lan78xx_vlan_rx_kill_vid()
2518 return 0; in lan78xx_vlan_rx_kill_vid()
2525 u32 regs[6] = { 0 }; in lan78xx_init_ltm()
2531 if (lan78xx_read_eeprom(dev, 0x3F, 2, temp) == 0) { in lan78xx_init_ltm()
2532 if (temp[0] == 24) { in lan78xx_init_ltm()
2537 if (ret < 0) in lan78xx_init_ltm()
2540 } else if (lan78xx_read_otp(dev, 0x3F, 2, temp) == 0) { in lan78xx_init_ltm()
2541 if (temp[0] == 24) { in lan78xx_init_ltm()
2546 if (ret < 0) in lan78xx_init_ltm()
2552 lan78xx_write_reg(dev, LTM_BELT_IDLE0, regs[0]); in lan78xx_init_ltm()
2576 if (ret < 0) in lan78xx_stop_hw()
2583 if (ret < 0) in lan78xx_stop_hw()
2590 if (ret < 0) in lan78xx_stop_hw()
2600 ret = stopped ? 0 : -ETIME; in lan78xx_stop_hw()
2619 if (ret < 0) in lan78xx_start_tx_path()
2625 if (ret < 0) in lan78xx_start_tx_path()
2628 return 0; in lan78xx_start_tx_path()
2640 if (ret < 0) in lan78xx_stop_tx_path()
2646 if (ret < 0) in lan78xx_stop_tx_path()
2649 return 0; in lan78xx_stop_tx_path()
2669 if (ret < 0) in lan78xx_start_rx_path()
2675 if (ret < 0) in lan78xx_start_rx_path()
2678 return 0; in lan78xx_start_rx_path()
2690 if (ret < 0) in lan78xx_stop_rx_path()
2696 if (ret < 0) in lan78xx_stop_rx_path()
2699 return 0; in lan78xx_stop_rx_path()
2712 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_reset()
2719 if (ret < 0) in lan78xx_reset()
2725 if (ret < 0) in lan78xx_reset()
2732 if (ret < 0) in lan78xx_reset()
2747 if (ret < 0) in lan78xx_reset()
2755 if (ret < 0) in lan78xx_reset()
2761 if (ret < 0) in lan78xx_reset()
2785 if (ret < 0) in lan78xx_reset()
2789 if (ret < 0) in lan78xx_reset()
2793 if (ret < 0) in lan78xx_reset()
2799 if (ret < 0) in lan78xx_reset()
2803 if (ret < 0) in lan78xx_reset()
2809 if (ret < 0) in lan78xx_reset()
2816 if (ret < 0) in lan78xx_reset()
2822 if (ret < 0) in lan78xx_reset()
2826 if (ret < 0) in lan78xx_reset()
2829 ret = lan78xx_write_reg(dev, FLOW, 0); in lan78xx_reset()
2830 if (ret < 0) in lan78xx_reset()
2833 ret = lan78xx_write_reg(dev, FCT_FLOW, 0); in lan78xx_reset()
2834 if (ret < 0) in lan78xx_reset()
2839 if (ret < 0) in lan78xx_reset()
2845 if (ret < 0) in lan78xx_reset()
2850 if (ret < 0) in lan78xx_reset()
2857 if (ret < 0) in lan78xx_reset()
2863 if (ret < 0) in lan78xx_reset()
2870 if (ret < 0) in lan78xx_reset()
2881 if (ret < 0) in lan78xx_reset()
2889 ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig); in lan78xx_reset()
2897 if (ret < 0) in lan78xx_reset()
2915 for (i = 0; i < (sizeof(dev->stats.rollover_max) / (sizeof(u32))); i++) in lan78xx_init_stats()
2916 p[i] = 0xFFFFF; in lan78xx_init_stats()
2918 dev->stats.rollover_max.rx_unicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2919 dev->stats.rollover_max.rx_broadcast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2920 dev->stats.rollover_max.rx_multicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2921 dev->stats.rollover_max.eee_rx_lpi_transitions = 0xFFFFFFFF; in lan78xx_init_stats()
2922 dev->stats.rollover_max.eee_rx_lpi_time = 0xFFFFFFFF; in lan78xx_init_stats()
2923 dev->stats.rollover_max.tx_unicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2924 dev->stats.rollover_max.tx_broadcast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2925 dev->stats.rollover_max.tx_multicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
2926 dev->stats.rollover_max.eee_tx_lpi_transitions = 0xFFFFFFFF; in lan78xx_init_stats()
2927 dev->stats.rollover_max.eee_tx_lpi_time = 0xFFFFFFFF; in lan78xx_init_stats()
2940 if (ret < 0) in lan78xx_open()
2952 if (ret < 0) { in lan78xx_open()
2960 if (ret < 0) in lan78xx_open()
2963 if (ret < 0) in lan78xx_open()
2967 if (ret < 0) in lan78xx_open()
2970 if (ret < 0) in lan78xx_open()
3071 return 0; in lan78xx_stop()
3095 tx_cmd_b = 0; in lan78xx_tx_prep()
3145 if (urb->status == 0) { in tx_complete()
3201 schedule_delayed_work(&dev->wq, 0); in lan78xx_start_xmit()
3233 dev->data[0] = (unsigned long)kzalloc(sizeof(*pdata), GFP_KERNEL); in lan78xx_bind()
3235 pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_bind()
3248 for (i = 0; i < DP_SEL_VHF_VLAN_LEN; i++) in lan78xx_bind()
3249 pdata->vlan_table[i] = 0; in lan78xx_bind()
3253 dev->net->features = 0; in lan78xx_bind()
3273 if (ret < 0) { in lan78xx_bind()
3314 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_unbind()
3326 dev->data[0] = 0; in lan78xx_unbind()
3355 (rx_cmd_b & 0xffff)); in lan78xx_rx_vlan_offload()
3367 netif_dbg(dev, rx_status, dev->net, "< rx, len %zu, type 0x%x\n", in lan78xx_skb_return()
3369 memset(skb->cb, 0, sizeof(struct skb_data)); in lan78xx_skb_return()
3383 return 0; in lan78xx_rx()
3385 while (skb->len > 0) { in lan78xx_rx()
3408 "Error rx_cmd_a=0x%08x", rx_cmd_a); in lan78xx_rx()
3426 return 0; in lan78xx_rx()
3478 int ret = 0; in rx_submit()
3489 entry->length = 0; in rx_submit()
3502 case 0: in rx_submit()
3546 case 0: in rx_complete()
3615 skb_totallen = 0; in lan78xx_tx_bh()
3616 pkt_cnt = 0; in lan78xx_tx_bh()
3617 count = 0; in lan78xx_tx_bh()
3618 length = 0; in lan78xx_tx_bh()
3647 for (count = pos = 0; count < pkt_cnt; count++) { in lan78xx_tx_bh()
3658 urb = usb_alloc_urb(0, GFP_ATOMIC); in lan78xx_tx_bh()
3670 if (ret < 0) { in lan78xx_tx_bh()
3678 if (length % dev->maxpacket == 0) { in lan78xx_tx_bh()
3699 case 0: in lan78xx_tx_bh()
3734 "> tx, len %d, type 0x%x\n", length, skb->protocol); in lan78xx_tx_bh()
3744 for (i = 0; i < 10; i++) { in lan78xx_rx_bh()
3747 urb = usb_alloc_urb(0, GFP_ATOMIC); in lan78xx_rx_bh()
3813 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_delayedwork()
3820 if (status < 0 && in lan78xx_delayedwork()
3837 if (status < 0 && in lan78xx_delayedwork()
3851 int ret = 0; in lan78xx_delayedwork()
3854 if (lan78xx_link_reset(dev) < 0) { in lan78xx_delayedwork()
3881 case 0: in intr_complete()
3907 memset(urb->transfer_buffer, 0, urb->transfer_buffer_length); in intr_complete()
3911 case 0: in intr_complete()
3949 phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0); in lan78xx_disconnect()
3950 phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0); in lan78xx_disconnect()
4063 timer_setup(&dev->stat_monitor, lan78xx_stat_monitor, 0); in lan78xx_probe()
4096 if (ret < 0) in lan78xx_probe()
4107 maxp = usb_maxpacket(dev->udev, dev->pipe_intr, 0); in lan78xx_probe()
4110 dev->urb_intr = usb_alloc_urb(0, GFP_KERNEL); in lan78xx_probe()
4126 if (dev->maxpacket == 0) { in lan78xx_probe()
4135 if (ret < 0) in lan78xx_probe()
4139 if (ret != 0) { in lan78xx_probe()
4154 return 0; in lan78xx_probe()
4172 const u16 crc16poly = 0x8005; in lan78xx_wakeframe_crc16()
4177 crc = 0xFFFF; in lan78xx_wakeframe_crc16()
4178 for (i = 0; i < len; i++) { in lan78xx_wakeframe_crc16()
4180 for (bit = 0; bit < 8; bit++) { in lan78xx_wakeframe_crc16()
4186 crc |= (u16)0x0001U; in lan78xx_wakeframe_crc16()
4201 if (ret < 0) in lan78xx_set_auto_suspend()
4205 if (ret < 0) in lan78xx_set_auto_suspend()
4210 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_set_auto_suspend()
4211 if (ret < 0) in lan78xx_set_auto_suspend()
4213 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_set_auto_suspend()
4214 if (ret < 0) in lan78xx_set_auto_suspend()
4216 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_set_auto_suspend()
4217 if (ret < 0) in lan78xx_set_auto_suspend()
4223 if (ret < 0) in lan78xx_set_auto_suspend()
4230 if (ret < 0) in lan78xx_set_auto_suspend()
4234 if (ret < 0) in lan78xx_set_auto_suspend()
4245 if (ret < 0) in lan78xx_set_auto_suspend()
4249 if (ret < 0) in lan78xx_set_auto_suspend()
4255 if (ret < 0) in lan78xx_set_auto_suspend()
4265 const u8 ipv4_multicast[3] = { 0x01, 0x00, 0x5E }; in lan78xx_set_suspend()
4266 const u8 ipv6_multicast[3] = { 0x33, 0x33 }; in lan78xx_set_suspend()
4267 const u8 arp_type[2] = { 0x08, 0x06 }; in lan78xx_set_suspend()
4276 if (ret < 0) in lan78xx_set_suspend()
4279 if (ret < 0) in lan78xx_set_suspend()
4282 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_set_suspend()
4283 if (ret < 0) in lan78xx_set_suspend()
4285 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_set_suspend()
4286 if (ret < 0) in lan78xx_set_suspend()
4288 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_set_suspend()
4289 if (ret < 0) in lan78xx_set_suspend()
4292 temp_wucsr = 0; in lan78xx_set_suspend()
4294 temp_pmt_ctl = 0; in lan78xx_set_suspend()
4297 if (ret < 0) in lan78xx_set_suspend()
4303 for (mask_index = 0; mask_index < NUM_OF_WUF_CFG; mask_index++) { in lan78xx_set_suspend()
4304 ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); in lan78xx_set_suspend()
4305 if (ret < 0) in lan78xx_set_suspend()
4309 mask_index = 0; in lan78xx_set_suspend()
4339 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4341 if (ret < 0) in lan78xx_set_suspend()
4345 if (ret < 0) in lan78xx_set_suspend()
4347 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4348 if (ret < 0) in lan78xx_set_suspend()
4350 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4351 if (ret < 0) in lan78xx_set_suspend()
4353 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4354 if (ret < 0) in lan78xx_set_suspend()
4364 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4366 if (ret < 0) in lan78xx_set_suspend()
4370 if (ret < 0) in lan78xx_set_suspend()
4372 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4373 if (ret < 0) in lan78xx_set_suspend()
4375 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4376 if (ret < 0) in lan78xx_set_suspend()
4378 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4379 if (ret < 0) in lan78xx_set_suspend()
4399 * for packettype (offset 12,13) = ARP (0x0806) in lan78xx_set_suspend()
4405 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4407 if (ret < 0) in lan78xx_set_suspend()
4410 ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); in lan78xx_set_suspend()
4411 if (ret < 0) in lan78xx_set_suspend()
4413 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4414 if (ret < 0) in lan78xx_set_suspend()
4416 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4417 if (ret < 0) in lan78xx_set_suspend()
4419 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4420 if (ret < 0) in lan78xx_set_suspend()
4431 if (ret < 0) in lan78xx_set_suspend()
4441 if (ret < 0) in lan78xx_set_suspend()
4446 if (ret < 0) in lan78xx_set_suspend()
4452 if (ret < 0) in lan78xx_set_suspend()
4489 if (ret < 0) in lan78xx_suspend()
4493 if (ret < 0) in lan78xx_suspend()
4498 if (ret < 0) in lan78xx_suspend()
4513 if (ret < 0) in lan78xx_suspend()
4518 pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_suspend()
4521 if (ret < 0) in lan78xx_suspend()
4532 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_suspend()
4533 if (ret < 0) in lan78xx_suspend()
4535 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_suspend()
4536 if (ret < 0) in lan78xx_suspend()
4540 if (ret < 0) in lan78xx_suspend()
4549 if (ret < 0) in lan78xx_suspend()
4553 if (ret < 0) in lan78xx_suspend()
4559 if (ret < 0) in lan78xx_suspend()
4563 ret = 0; in lan78xx_suspend()
4589 if (ret == 0) { in lan78xx_submit_deferred_urbs()
4624 if (ret < 0) in lan78xx_resume()
4630 if (ret < 0) { in lan78xx_resume()
4657 if (ret < 0) in lan78xx_resume()
4672 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_resume()
4673 if (ret < 0) in lan78xx_resume()
4675 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_resume()
4676 if (ret < 0) in lan78xx_resume()
4678 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_resume()
4679 if (ret < 0) in lan78xx_resume()
4686 if (ret < 0) in lan78xx_resume()
4696 if (ret < 0) in lan78xx_resume()
4699 ret = 0; in lan78xx_resume()
4714 if (ret < 0) in lan78xx_reset_resume()