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)
79 #define AT29M2AF_USB_VENDOR_ID (0x07C9)
80 #define AT29M2AF_USB_PRODUCT_ID (0x0012)
83 #define MII_WRITE 0
85 #define EEPROM_INDICATOR (0xA5)
86 #define EEPROM_MAC_OFFSET (0x01)
88 #define OTP_INDICATOR_1 (0xF3)
89 #define OTP_INDICATOR_2 (0xF7)
114 #define SS_BULK_IN_DELAY 0x2000
116 #define HS_BULK_IN_DELAY 0x2000
118 #define FS_BULK_IN_DELAY 0x2000
174 #define INT_EP_GPIO_0 (0)
366 illegal = 0,
388 #define EVENT_TX_HALT 0
481 #define PHY_LAN8835 (0x0007C130)
482 #define PHY_KSZ9031RNX (0x00221620)
486 module_param(msg_level, int, 0);
503 buf->len = 0; in lan78xx_release_buf()
504 buf->data_len = 0; in lan78xx_release_buf()
535 for (i = 0; i < n_urbs; i++) { in lan78xx_alloc_buf_pool()
540 if (skb_linearize(buf) != 0) { in lan78xx_alloc_buf_pool()
545 urb = usb_alloc_urb(0, GFP_ATOMIC); in lan78xx_alloc_buf_pool()
554 entry->length = 0; in lan78xx_alloc_buf_pool()
555 entry->num_of_packet = 0; in lan78xx_alloc_buf_pool()
560 return 0; in lan78xx_alloc_buf_pool()
624 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), in lan78xx_read_reg()
627 0, index, buf, 4, USB_CTRL_GET_TIMEOUT); in lan78xx_read_reg()
628 if (likely(ret >= 0)) { in lan78xx_read_reg()
633 "Failed to read register index 0x%08x. ret = %d", in lan78xx_read_reg()
657 ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), in lan78xx_write_reg()
660 0, index, buf, 4, USB_CTRL_SET_TIMEOUT); in lan78xx_write_reg()
661 if (unlikely(ret < 0) && in lan78xx_write_reg()
664 "Failed to write register index 0x%08x. ret = %d", in lan78xx_write_reg()
680 if (ret < 0) in lan78xx_update_reg()
687 if (ret < 0) in lan78xx_update_reg()
690 return 0; in lan78xx_update_reg()
696 int ret = 0; in lan78xx_read_stats()
707 usb_rcvctrlpipe(dev->udev, 0), in lan78xx_read_stats()
710 0, in lan78xx_read_stats()
711 0, in lan78xx_read_stats()
715 if (likely(ret >= 0)) { in lan78xx_read_stats()
718 for (i = 0; i < sizeof(*stats) / sizeof(u32); i++) { in lan78xx_read_stats()
736 } while (0)
799 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_update_stats()
809 if (lan78xx_read_stats(dev, &lan78xx_stats) > 0) in lan78xx_update_stats()
812 for (i = 0; i < (sizeof(lan78xx_stats) / (sizeof(u32))); i++) in lan78xx_update_stats()
829 if (unlikely(ret < 0)) in lan78xx_phy_wait_not_busy()
833 return 0; in lan78xx_phy_wait_not_busy()
862 if (unlikely(ret < 0)) in lan78xx_wait_eeprom()
876 return 0; in lan78xx_wait_eeprom()
887 if (unlikely(ret < 0)) in lan78xx_eeprom_confirm_not_busy()
891 return 0; in lan78xx_eeprom_confirm_not_busy()
922 for (i = 0; i < length; i++) { in lan78xx_read_raw_eeprom()
926 if (unlikely(ret < 0)) { in lan78xx_read_raw_eeprom()
932 if (retval < 0) in lan78xx_read_raw_eeprom()
936 if (unlikely(ret < 0)) { in lan78xx_read_raw_eeprom()
941 data[i] = val & 0xFF; in lan78xx_read_raw_eeprom()
945 retval = 0; in lan78xx_read_raw_eeprom()
959 ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig); in lan78xx_read_eeprom()
960 if ((ret == 0) && (sig == EEPROM_INDICATOR)) in lan78xx_read_eeprom()
993 if (unlikely(ret < 0)) { in lan78xx_write_raw_eeprom()
999 if (retval < 0) in lan78xx_write_raw_eeprom()
1002 for (i = 0; i < length; i++) { in lan78xx_write_raw_eeprom()
1006 if (ret < 0) { in lan78xx_write_raw_eeprom()
1015 if (ret < 0) { in lan78xx_write_raw_eeprom()
1021 if (retval < 0) in lan78xx_write_raw_eeprom()
1027 retval = 0; in lan78xx_write_raw_eeprom()
1046 lan78xx_write_reg(dev, OTP_PWR_DN, 0); in lan78xx_read_raw_otp()
1060 for (i = 0; i < length; i++) { in lan78xx_read_raw_otp()
1082 data[i] = (u8)(buf & 0xFF); in lan78xx_read_raw_otp()
1085 return 0; in lan78xx_read_raw_otp()
1099 lan78xx_write_reg(dev, OTP_PWR_DN, 0); in lan78xx_write_raw_otp()
1116 for (i = 0; i < length; i++) { in lan78xx_write_raw_otp()
1137 return 0; in lan78xx_write_raw_otp()
1146 ret = lan78xx_read_raw_otp(dev, 0, 1, &sig); in lan78xx_read_otp()
1148 if (ret == 0) { in lan78xx_read_otp()
1150 offset += 0x100; in lan78xx_read_otp()
1164 for (i = 0; i < 100; i++) { in lan78xx_dataport_wait_not_busy()
1168 if (unlikely(ret < 0)) in lan78xx_dataport_wait_not_busy()
1172 return 0; in lan78xx_dataport_wait_not_busy()
1185 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_dataport_write()
1189 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_dataport_write()
1190 return 0; in lan78xx_dataport_write()
1195 if (ret < 0) in lan78xx_dataport_write()
1204 for (i = 0; i < length; i++) { in lan78xx_dataport_write()
1212 if (ret < 0) in lan78xx_dataport_write()
1228 if ((pdata) && (index > 0) && (index < NUM_OF_MAF)) { in lan78xx_set_addr_filter()
1232 temp = addr[0] | (temp << 8); in lan78xx_set_addr_filter()
1237 pdata->pfilter_table[index][0] = temp; in lan78xx_set_addr_filter()
1244 return (ether_crc(ETH_ALEN, addr) >> 23) & 0x1ff; in lan78xx_hash()
1254 netif_dbg(dev, drv, dev->net, "deferred multicast write 0x%08x\n", in lan78xx_deferred_multicast_write()
1261 lan78xx_write_reg(dev, MAF_HI(i), 0); in lan78xx_deferred_multicast_write()
1265 pdata->pfilter_table[i][0]); in lan78xx_deferred_multicast_write()
1274 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_multicast()
1283 for (i = 0; i < DP_SEL_VHF_HASH_LEN; i++) in lan78xx_set_multicast()
1284 pdata->mchash_table[i] = 0; in lan78xx_set_multicast()
1286 /* pfilter_table[0] has own HW address */ in lan78xx_set_multicast()
1288 pdata->pfilter_table[i][0] = 0; in lan78xx_set_multicast()
1289 pdata->pfilter_table[i][1] = 0; in lan78xx_set_multicast()
1338 u32 flow = 0, fct_flow = 0; in lan78xx_update_flowcontrol()
1347 flow |= (FLOW_CR_TX_FCEN_ | 0xFFFF); in lan78xx_update_flowcontrol()
1366 return 0; in lan78xx_update_flowcontrol()
1384 if (ret < 0) in lan78xx_mac_reset()
1388 if (ret < 0) in lan78xx_mac_reset()
1393 if (ret < 0) in lan78xx_mac_reset()
1401 if (ret < 0) in lan78xx_mac_reset()
1405 ret = 0; in lan78xx_mac_reset()
1426 if (unlikely(ret < 0)) in lan78xx_link_reset()
1439 if (ret < 0) in lan78xx_link_reset()
1452 if (ret < 0) in lan78xx_link_reset()
1456 if (ret < 0) in lan78xx_link_reset()
1460 if (ret < 0) in lan78xx_link_reset()
1464 if (ret < 0) in lan78xx_link_reset()
1469 if (ret < 0) in lan78xx_link_reset()
1474 if (ret < 0) in lan78xx_link_reset()
1480 if (ladv < 0) in lan78xx_link_reset()
1484 if (radv < 0) in lan78xx_link_reset()
1488 "speed: %u duplex: %d anadv: 0x%04x anlpa: 0x%04x", in lan78xx_link_reset()
1493 if (ret < 0) in lan78xx_link_reset()
1509 return 0; in lan78xx_link_reset()
1520 if (!schedule_delayed_work(&dev->wq, 0)) in lan78xx_defer_kevent()
1537 netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata); in lan78xx_status()
1540 if (dev->domain_data.phyirq > 0) in lan78xx_status()
1544 "unexpected interrupt: 0x%08x\n", intdata); in lan78xx_status()
1588 (ee->offset == 0) && in lan78xx_ethtool_set_eeprom()
1590 (data[0] == OTP_INDICATOR_1)) in lan78xx_ethtool_set_eeprom()
1631 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_get_wol()
1633 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_get_wol()
1637 if (unlikely(ret < 0)) { in lan78xx_get_wol()
1638 wol->supported = 0; in lan78xx_get_wol()
1639 wol->wolopts = 0; in lan78xx_get_wol()
1645 wol->supported = 0; in lan78xx_get_wol()
1646 wol->wolopts = 0; in lan78xx_get_wol()
1657 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_wol()
1661 if (ret < 0) in lan78xx_set_wol()
1686 if (ret < 0) in lan78xx_get_eee()
1690 if (ret < 0) in lan78xx_get_eee()
1704 edata->tx_lpi_timer = 0; in lan78xx_get_eee()
1707 ret = 0; in lan78xx_get_eee()
1721 if (ret < 0) in lan78xx_set_eee()
1741 return 0; in lan78xx_set_eee()
1787 if (ret < 0) in lan78xx_get_link_ksettings()
1802 int ret = 0; in lan78xx_set_link_ksettings()
1806 if (ret < 0) in lan78xx_set_link_ksettings()
1858 dev->fc_request_control = 0; in lan78xx_set_pause()
1866 __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; in lan78xx_set_pause()
1883 ret = 0; in lan78xx_set_pause()
1905 for (i = 0; i < ARRAY_SIZE(lan78xx_regs); i++) in lan78xx_get_regs()
1912 for (j = 0; j < 32; i++, j++) in lan78xx_get_regs()
1949 addr[0] = addr_lo & 0xFF; in lan78xx_init_mac_address()
1950 addr[1] = (addr_lo >> 8) & 0xFF; in lan78xx_init_mac_address()
1951 addr[2] = (addr_lo >> 16) & 0xFF; in lan78xx_init_mac_address()
1952 addr[3] = (addr_lo >> 24) & 0xFF; in lan78xx_init_mac_address()
1953 addr[4] = addr_hi & 0xFF; in lan78xx_init_mac_address()
1954 addr[5] = (addr_hi >> 8) & 0xFF; in lan78xx_init_mac_address()
1962 ETH_ALEN, addr) == 0) || in lan78xx_init_mac_address()
1964 ETH_ALEN, addr) == 0)) && in lan78xx_init_mac_address()
1976 addr_lo = addr[0] | (addr[1] << 8) | in lan78xx_init_mac_address()
1984 lan78xx_write_reg(dev, MAF_LO(0), addr_lo); in lan78xx_init_mac_address()
1985 lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); in lan78xx_init_mac_address()
1998 if (ret < 0) in lan78xx_mdiobus_read()
2005 if (ret < 0) in lan78xx_mdiobus_read()
2013 if (ret < 0) in lan78xx_mdiobus_read()
2018 ret = (int)(val & 0xFFFF); in lan78xx_mdiobus_read()
2035 if (ret < 0) in lan78xx_mdiobus_write()
2042 if (ret < 0) in lan78xx_mdiobus_write()
2053 if (ret < 0) in lan78xx_mdiobus_write()
2059 return 0; in lan78xx_mdiobus_write()
2089 /* scan thru PHYAD[2..0] */ in lan78xx_mdio_init()
2090 dev->mdiobus->phy_mask = ~(0xFF); in lan78xx_mdio_init()
2103 return 0; in lan78xx_mdio_init()
2131 return 0; in irq_map()
2195 unsigned int irqmap = 0; in lan78xx_setup_irq_domain()
2197 int ret = 0; in lan78xx_setup_irq_domain()
2209 irqdomain = irq_domain_add_simple(of_node, MAX_INT_EP, 0, in lan78xx_setup_irq_domain()
2232 if (dev->domain_data.phyirq > 0) { in lan78xx_remove_irq_domain()
2238 dev->domain_data.phyirq = 0; in lan78xx_remove_irq_domain()
2248 buf = phy_read_mmd(phydev, MDIO_MMD_PCS, 0x8010); in lan8835_fixup()
2249 buf &= ~0x1800; in lan8835_fixup()
2250 buf |= 0x0800; in lan8835_fixup()
2251 phy_write_mmd(phydev, MDIO_MMD_PCS, 0x8010, buf); in lan8835_fixup()
2258 lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); in lan8835_fixup()
2271 phy_write_mmd(phydev, MDIO_MMD_WIS, 4, 0x0077); in ksz9031rnx_fixup()
2273 phy_write_mmd(phydev, MDIO_MMD_WIS, 5, 0x7777); in ksz9031rnx_fixup()
2275 phy_write_mmd(phydev, MDIO_MMD_WIS, 8, 0x1FF); in ksz9031rnx_fixup()
2305 ret = lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); in lan7801_phy_init()
2317 ret = phy_register_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0, in lan7801_phy_init()
2319 if (ret < 0) { in lan7801_phy_init()
2324 ret = phy_register_fixup_for_uid(PHY_LAN8835, 0xfffffff0, in lan7801_phy_init()
2326 if (ret < 0) { in lan7801_phy_init()
2339 __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; in lan78xx_phy_init()
2370 if (dev->domain_data.phyirq > 0) in lan78xx_phy_init()
2390 0xfffffff0); in lan78xx_phy_init()
2392 0xfffffff0); in lan78xx_phy_init()
2418 if (len >= 0) { in lan78xx_phy_init()
2425 reg |= (len > 0) * HW_CFG_LED0_EN_ | in lan78xx_phy_init()
2437 return 0; in lan78xx_phy_init()
2447 rxenabled = ((buf & MAC_RX_RXEN_) != 0); in lan78xx_set_rx_max_frame_length()
2465 return 0; in lan78xx_set_rx_max_frame_length()
2472 int count = 0; in unlink_urbs()
2502 if (ret != -EINPROGRESS && ret != 0) in unlink_urbs()
2520 if ((max_frame_len % dev->maxpacket) == 0) in lan78xx_change_mtu()
2524 if (ret < 0) in lan78xx_change_mtu()
2550 addr_lo = netdev->dev_addr[0] | in lan78xx_set_mac_addr()
2561 lan78xx_write_reg(dev, MAF_LO(0), addr_lo); in lan78xx_set_mac_addr()
2562 lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); in lan78xx_set_mac_addr()
2564 return 0; in lan78xx_set_mac_addr()
2572 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_set_features()
2599 return 0; in lan78xx_set_features()
2608 lan78xx_dataport_write(dev, DP_SEL_RSEL_VLAN_DA_, 0, in lan78xx_deferred_vlan_write()
2616 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_vlan_rx_add_vid()
2620 vid_dword_index = (vid >> 5) & 0x7F; in lan78xx_vlan_rx_add_vid()
2621 vid_bit_index = vid & 0x1F; in lan78xx_vlan_rx_add_vid()
2628 return 0; in lan78xx_vlan_rx_add_vid()
2635 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_vlan_rx_kill_vid()
2639 vid_dword_index = (vid >> 5) & 0x7F; in lan78xx_vlan_rx_kill_vid()
2640 vid_bit_index = vid & 0x1F; in lan78xx_vlan_rx_kill_vid()
2647 return 0; in lan78xx_vlan_rx_kill_vid()
2654 u32 regs[6] = { 0 }; in lan78xx_init_ltm()
2660 if (lan78xx_read_eeprom(dev, 0x3F, 2, temp) == 0) { in lan78xx_init_ltm()
2661 if (temp[0] == 24) { in lan78xx_init_ltm()
2666 if (ret < 0) in lan78xx_init_ltm()
2669 } else if (lan78xx_read_otp(dev, 0x3F, 2, temp) == 0) { in lan78xx_init_ltm()
2670 if (temp[0] == 24) { in lan78xx_init_ltm()
2675 if (ret < 0) in lan78xx_init_ltm()
2681 lan78xx_write_reg(dev, LTM_BELT_IDLE0, regs[0]); in lan78xx_init_ltm()
2691 int result = 0; in lan78xx_urb_config_init()
2743 if (ret < 0) in lan78xx_stop_hw()
2750 if (ret < 0) in lan78xx_stop_hw()
2757 if (ret < 0) in lan78xx_stop_hw()
2767 ret = stopped ? 0 : -ETIME; in lan78xx_stop_hw()
2786 if (ret < 0) in lan78xx_start_tx_path()
2792 if (ret < 0) in lan78xx_start_tx_path()
2795 return 0; in lan78xx_start_tx_path()
2807 if (ret < 0) in lan78xx_stop_tx_path()
2813 if (ret < 0) in lan78xx_stop_tx_path()
2816 return 0; in lan78xx_stop_tx_path()
2836 if (ret < 0) in lan78xx_start_rx_path()
2842 if (ret < 0) in lan78xx_start_rx_path()
2845 return 0; in lan78xx_start_rx_path()
2857 if (ret < 0) in lan78xx_stop_rx_path()
2863 if (ret < 0) in lan78xx_stop_rx_path()
2866 return 0; in lan78xx_stop_rx_path()
2879 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_reset()
2886 if (ret < 0) in lan78xx_reset()
2892 if (ret < 0) in lan78xx_reset()
2899 if (ret < 0) in lan78xx_reset()
2914 if (ret < 0) in lan78xx_reset()
2922 if (ret < 0) in lan78xx_reset()
2928 if (ret < 0) in lan78xx_reset()
2935 if (ret < 0) in lan78xx_reset()
2939 if (ret < 0) in lan78xx_reset()
2943 if (ret < 0) in lan78xx_reset()
2949 if (ret < 0) in lan78xx_reset()
2953 if (ret < 0) in lan78xx_reset()
2959 if (ret < 0) in lan78xx_reset()
2966 if (ret < 0) in lan78xx_reset()
2972 if (ret < 0) in lan78xx_reset()
2976 if (ret < 0) in lan78xx_reset()
2979 ret = lan78xx_write_reg(dev, FLOW, 0); in lan78xx_reset()
2980 if (ret < 0) in lan78xx_reset()
2983 ret = lan78xx_write_reg(dev, FCT_FLOW, 0); in lan78xx_reset()
2984 if (ret < 0) in lan78xx_reset()
2989 if (ret < 0) in lan78xx_reset()
2995 if (ret < 0) in lan78xx_reset()
3000 if (ret < 0) in lan78xx_reset()
3007 if (ret < 0) in lan78xx_reset()
3013 if (ret < 0) in lan78xx_reset()
3020 if (ret < 0) in lan78xx_reset()
3031 if (ret < 0) in lan78xx_reset()
3040 ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig); in lan78xx_reset()
3048 if (ret < 0) in lan78xx_reset()
3066 for (i = 0; i < (sizeof(dev->stats.rollover_max) / (sizeof(u32))); i++) in lan78xx_init_stats()
3067 p[i] = 0xFFFFF; in lan78xx_init_stats()
3069 dev->stats.rollover_max.rx_unicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3070 dev->stats.rollover_max.rx_broadcast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3071 dev->stats.rollover_max.rx_multicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3072 dev->stats.rollover_max.eee_rx_lpi_transitions = 0xFFFFFFFF; in lan78xx_init_stats()
3073 dev->stats.rollover_max.eee_rx_lpi_time = 0xFFFFFFFF; in lan78xx_init_stats()
3074 dev->stats.rollover_max.tx_unicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3075 dev->stats.rollover_max.tx_broadcast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3076 dev->stats.rollover_max.tx_multicast_byte_count = 0xFFFFFFFF; in lan78xx_init_stats()
3077 dev->stats.rollover_max.eee_tx_lpi_transitions = 0xFFFFFFFF; in lan78xx_init_stats()
3078 dev->stats.rollover_max.eee_tx_lpi_time = 0xFFFFFFFF; in lan78xx_init_stats()
3091 if (ret < 0) in lan78xx_open()
3103 if (ret < 0) { in lan78xx_open()
3111 if (ret < 0) in lan78xx_open()
3114 if (ret < 0) in lan78xx_open()
3118 if (ret < 0) in lan78xx_open()
3121 if (ret < 0) in lan78xx_open()
3138 if (ret < 0) in lan78xx_open()
3226 return 0; in lan78xx_stop()
3259 if (urb->status == 0) { in tx_complete()
3381 schedule_delayed_work(&dev->wq, 0); in lan78xx_start_xmit()
3416 dev->data[0] = (unsigned long)kzalloc(sizeof(*pdata), GFP_KERNEL); in lan78xx_bind()
3418 pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_bind()
3431 for (i = 0; i < DP_SEL_VHF_VLAN_LEN; i++) in lan78xx_bind()
3432 pdata->vlan_table[i] = 0; in lan78xx_bind()
3436 dev->net->features = 0; in lan78xx_bind()
3456 if (ret < 0) { in lan78xx_bind()
3494 struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_unbind()
3506 dev->data[0] = 0; in lan78xx_unbind()
3535 (rx_cmd_b & 0xffff)); in lan78xx_rx_vlan_offload()
3545 netif_dbg(dev, rx_status, dev->net, "< rx, len %zu, type 0x%x\n", in lan78xx_skb_return()
3547 memset(skb->cb, 0, sizeof(struct skb_data)); in lan78xx_skb_return()
3559 return 0; in lan78xx_rx()
3564 while (skb->len > 0) { in lan78xx_rx()
3586 "size err rx_cmd_a=0x%08x\n", in lan78xx_rx()
3588 return 0; in lan78xx_rx()
3593 "Error rx_cmd_a=0x%08x", rx_cmd_a); in lan78xx_rx()
3600 "size err rx_cmd_a=0x%08x\n", in lan78xx_rx()
3602 return 0; in lan78xx_rx()
3609 return 0; in lan78xx_rx()
3668 case 0: in rx_complete()
3716 int ret = 0; in rx_submit()
3729 case 0: in rx_submit()
3769 if (rx_submit(dev, rx_buf, GFP_ATOMIC) != 0) in lan78xx_rx_urb_submit_all()
3781 rx_buf->len = 0; in lan78xx_rx_urb_resubmit()
3782 rx_buf->data_len = 0; in lan78xx_rx_urb_resubmit()
3797 tx_cmd_b = 0; in lan78xx_fill_tx_cmd_words()
3821 u32 urb_len = 0; in lan78xx_tx_buf_fill()
3823 entry->num_of_packet = 0; in lan78xx_tx_buf_fill()
3824 entry->length = 0; in lan78xx_tx_buf_fill()
3856 if (skb_copy_bits(skb, 0, tx_data, len) < 0) { in lan78xx_tx_buf_fill()
3914 if (ret < 0) { in lan78xx_tx_bh()
3923 if (tx_buf->len % dev->maxpacket == 0) { in lan78xx_tx_bh()
3941 case 0: in lan78xx_tx_bh()
3971 } while (ret == 0); in lan78xx_tx_bh()
3980 int work_done = 0; in lan78xx_bh()
4059 napi_complete_done(napi, 0); in lan78xx_poll()
4060 return 0; in lan78xx_poll()
4104 if (usb_autopm_get_interface(dev->intf) < 0) in lan78xx_delayedwork()
4111 if (status < 0 && in lan78xx_delayedwork()
4128 if (status < 0 && in lan78xx_delayedwork()
4142 int ret = 0; in lan78xx_delayedwork()
4145 if (lan78xx_link_reset(dev) < 0) { in lan78xx_delayedwork()
4172 case 0: in intr_complete()
4198 memset(urb->transfer_buffer, 0, urb->transfer_buffer_length); in intr_complete()
4202 case 0: in intr_complete()
4242 phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0); in lan78xx_disconnect()
4243 phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0); in lan78xx_disconnect()
4351 if (ret < 0) in lan78xx_probe()
4355 if (ret < 0) in lan78xx_probe()
4359 if (ret < 0) in lan78xx_probe()
4377 timer_setup(&dev->stat_monitor, lan78xx_stat_monitor, 0); in lan78xx_probe()
4410 if (ret < 0) in lan78xx_probe()
4421 dev->urb_intr = usb_alloc_urb(0, GFP_KERNEL); in lan78xx_probe()
4435 if (dev->maxpacket == 0) { in lan78xx_probe()
4444 if (ret < 0) in lan78xx_probe()
4448 if (ret != 0) { in lan78xx_probe()
4463 return 0; in lan78xx_probe()
4488 const u16 crc16poly = 0x8005; in lan78xx_wakeframe_crc16()
4493 crc = 0xFFFF; in lan78xx_wakeframe_crc16()
4494 for (i = 0; i < len; i++) { in lan78xx_wakeframe_crc16()
4496 for (bit = 0; bit < 8; bit++) { in lan78xx_wakeframe_crc16()
4502 crc |= (u16)0x0001U; in lan78xx_wakeframe_crc16()
4517 if (ret < 0) in lan78xx_set_auto_suspend()
4521 if (ret < 0) in lan78xx_set_auto_suspend()
4526 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_set_auto_suspend()
4527 if (ret < 0) in lan78xx_set_auto_suspend()
4529 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_set_auto_suspend()
4530 if (ret < 0) in lan78xx_set_auto_suspend()
4532 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_set_auto_suspend()
4533 if (ret < 0) in lan78xx_set_auto_suspend()
4539 if (ret < 0) in lan78xx_set_auto_suspend()
4546 if (ret < 0) in lan78xx_set_auto_suspend()
4550 if (ret < 0) in lan78xx_set_auto_suspend()
4561 if (ret < 0) in lan78xx_set_auto_suspend()
4565 if (ret < 0) in lan78xx_set_auto_suspend()
4571 if (ret < 0) in lan78xx_set_auto_suspend()
4581 const u8 ipv4_multicast[3] = { 0x01, 0x00, 0x5E }; in lan78xx_set_suspend()
4582 const u8 ipv6_multicast[3] = { 0x33, 0x33 }; in lan78xx_set_suspend()
4583 const u8 arp_type[2] = { 0x08, 0x06 }; in lan78xx_set_suspend()
4592 if (ret < 0) in lan78xx_set_suspend()
4595 if (ret < 0) in lan78xx_set_suspend()
4598 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_set_suspend()
4599 if (ret < 0) in lan78xx_set_suspend()
4601 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_set_suspend()
4602 if (ret < 0) in lan78xx_set_suspend()
4604 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_set_suspend()
4605 if (ret < 0) in lan78xx_set_suspend()
4608 temp_wucsr = 0; in lan78xx_set_suspend()
4610 temp_pmt_ctl = 0; in lan78xx_set_suspend()
4613 if (ret < 0) in lan78xx_set_suspend()
4619 for (mask_index = 0; mask_index < NUM_OF_WUF_CFG; mask_index++) { in lan78xx_set_suspend()
4620 ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); in lan78xx_set_suspend()
4621 if (ret < 0) in lan78xx_set_suspend()
4625 mask_index = 0; in lan78xx_set_suspend()
4655 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4657 if (ret < 0) in lan78xx_set_suspend()
4661 if (ret < 0) in lan78xx_set_suspend()
4663 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4664 if (ret < 0) in lan78xx_set_suspend()
4666 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4667 if (ret < 0) in lan78xx_set_suspend()
4669 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4670 if (ret < 0) in lan78xx_set_suspend()
4680 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4682 if (ret < 0) in lan78xx_set_suspend()
4686 if (ret < 0) in lan78xx_set_suspend()
4688 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4689 if (ret < 0) in lan78xx_set_suspend()
4691 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4692 if (ret < 0) in lan78xx_set_suspend()
4694 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4695 if (ret < 0) in lan78xx_set_suspend()
4715 * for packettype (offset 12,13) = ARP (0x0806) in lan78xx_set_suspend()
4721 (0 << WUF_CFGX_OFFSET_SHIFT_) | in lan78xx_set_suspend()
4723 if (ret < 0) in lan78xx_set_suspend()
4726 ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); in lan78xx_set_suspend()
4727 if (ret < 0) in lan78xx_set_suspend()
4729 ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); in lan78xx_set_suspend()
4730 if (ret < 0) in lan78xx_set_suspend()
4732 ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); in lan78xx_set_suspend()
4733 if (ret < 0) in lan78xx_set_suspend()
4735 ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); in lan78xx_set_suspend()
4736 if (ret < 0) in lan78xx_set_suspend()
4747 if (ret < 0) in lan78xx_set_suspend()
4757 if (ret < 0) in lan78xx_set_suspend()
4762 if (ret < 0) in lan78xx_set_suspend()
4768 if (ret < 0) in lan78xx_set_suspend()
4805 if (ret < 0) in lan78xx_suspend()
4809 if (ret < 0) in lan78xx_suspend()
4814 if (ret < 0) in lan78xx_suspend()
4829 if (ret < 0) in lan78xx_suspend()
4834 pdata = (struct lan78xx_priv *)(dev->data[0]); in lan78xx_suspend()
4837 if (ret < 0) in lan78xx_suspend()
4848 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_suspend()
4849 if (ret < 0) in lan78xx_suspend()
4851 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_suspend()
4852 if (ret < 0) in lan78xx_suspend()
4856 if (ret < 0) in lan78xx_suspend()
4865 if (ret < 0) in lan78xx_suspend()
4869 if (ret < 0) in lan78xx_suspend()
4875 if (ret < 0) in lan78xx_suspend()
4879 ret = 0; in lan78xx_suspend()
4904 if (ret == 0) { in lan78xx_submit_deferred_urbs()
4938 if (ret < 0) in lan78xx_resume()
4944 if (ret < 0) { in lan78xx_resume()
4970 if (ret < 0) in lan78xx_resume()
4985 ret = lan78xx_write_reg(dev, WUCSR2, 0); in lan78xx_resume()
4986 if (ret < 0) in lan78xx_resume()
4988 ret = lan78xx_write_reg(dev, WUCSR, 0); in lan78xx_resume()
4989 if (ret < 0) in lan78xx_resume()
4991 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); in lan78xx_resume()
4992 if (ret < 0) in lan78xx_resume()
4999 if (ret < 0) in lan78xx_resume()
5009 if (ret < 0) in lan78xx_resume()
5012 ret = 0; in lan78xx_resume()
5027 if (ret < 0) in lan78xx_reset_resume()