#include <linux/module.h>
#include <linux/etherdevice.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/crc32.h>
#include <linux/usb/usbnet.h>
#include <uapi/linux/mdio.h>
#include <linux/mdio.h>
#define AX88179_PHY_ID …
#define AX_EEPROM_LEN …
#define AX88179_EEPROM_MAGIC …
#define AX_MCAST_FLTSIZE …
#define AX_MAX_MCAST …
#define AX_INT_PPLS_LINK …
#define AX_RXHDR_L4_TYPE_MASK …
#define AX_RXHDR_L4_TYPE_UDP …
#define AX_RXHDR_L4_TYPE_TCP …
#define AX_RXHDR_L3CSUM_ERR …
#define AX_RXHDR_L4CSUM_ERR …
#define AX_RXHDR_CRC_ERR …
#define AX_RXHDR_DROP_ERR …
#define AX_ACCESS_MAC …
#define AX_ACCESS_PHY …
#define AX_ACCESS_EEPROM …
#define AX_ACCESS_EFUS …
#define AX_RELOAD_EEPROM_EFUSE …
#define AX_PAUSE_WATERLVL_HIGH …
#define AX_PAUSE_WATERLVL_LOW …
#define PHYSICAL_LINK_STATUS …
#define AX_USB_SS …
#define AX_USB_HS …
#define GENERAL_STATUS …
#define AX_SECLD …
#define AX_SROM_ADDR …
#define AX_SROM_CMD …
#define EEP_RD …
#define EEP_BUSY …
#define AX_SROM_DATA_LOW …
#define AX_SROM_DATA_HIGH …
#define AX_RX_CTL …
#define AX_RX_CTL_DROPCRCERR …
#define AX_RX_CTL_IPE …
#define AX_RX_CTL_START …
#define AX_RX_CTL_AP …
#define AX_RX_CTL_AM …
#define AX_RX_CTL_AB …
#define AX_RX_CTL_AMALL …
#define AX_RX_CTL_PRO …
#define AX_RX_CTL_STOP …
#define AX_NODE_ID …
#define AX_MULFLTARY …
#define AX_MEDIUM_STATUS_MODE …
#define AX_MEDIUM_GIGAMODE …
#define AX_MEDIUM_FULL_DUPLEX …
#define AX_MEDIUM_EN_125MHZ …
#define AX_MEDIUM_RXFLOW_CTRLEN …
#define AX_MEDIUM_TXFLOW_CTRLEN …
#define AX_MEDIUM_RECEIVE_EN …
#define AX_MEDIUM_PS …
#define AX_MEDIUM_JUMBO_EN …
#define AX_MONITOR_MOD …
#define AX_MONITOR_MODE_RWLC …
#define AX_MONITOR_MODE_RWMP …
#define AX_MONITOR_MODE_PMEPOL …
#define AX_MONITOR_MODE_PMETYPE …
#define AX_GPIO_CTRL …
#define AX_GPIO_CTRL_GPIO3EN …
#define AX_GPIO_CTRL_GPIO2EN …
#define AX_GPIO_CTRL_GPIO1EN …
#define AX_PHYPWR_RSTCTL …
#define AX_PHYPWR_RSTCTL_BZ …
#define AX_PHYPWR_RSTCTL_IPRL …
#define AX_PHYPWR_RSTCTL_AT …
#define AX_RX_BULKIN_QCTRL …
#define AX_CLK_SELECT …
#define AX_CLK_SELECT_BCS …
#define AX_CLK_SELECT_ACS …
#define AX_CLK_SELECT_ULR …
#define AX_RXCOE_CTL …
#define AX_RXCOE_IP …
#define AX_RXCOE_TCP …
#define AX_RXCOE_UDP …
#define AX_RXCOE_TCPV6 …
#define AX_RXCOE_UDPV6 …
#define AX_TXCOE_CTL …
#define AX_TXCOE_IP …
#define AX_TXCOE_TCP …
#define AX_TXCOE_UDP …
#define AX_TXCOE_TCPV6 …
#define AX_TXCOE_UDPV6 …
#define AX_LEDCTRL …
#define GMII_PHY_PHYSR …
#define GMII_PHY_PHYSR_SMASK …
#define GMII_PHY_PHYSR_GIGA …
#define GMII_PHY_PHYSR_100 …
#define GMII_PHY_PHYSR_FULL …
#define GMII_PHY_PHYSR_LINK …
#define GMII_LED_ACT …
#define GMII_LED_ACTIVE_MASK …
#define GMII_LED0_ACTIVE …
#define GMII_LED1_ACTIVE …
#define GMII_LED2_ACTIVE …
#define GMII_LED_LINK …
#define GMII_LED_LINK_MASK …
#define GMII_LED0_LINK_10 …
#define GMII_LED0_LINK_100 …
#define GMII_LED0_LINK_1000 …
#define GMII_LED1_LINK_10 …
#define GMII_LED1_LINK_100 …
#define GMII_LED1_LINK_1000 …
#define GMII_LED2_LINK_10 …
#define GMII_LED2_LINK_100 …
#define GMII_LED2_LINK_1000 …
#define LED0_ACTIVE …
#define LED0_LINK_10 …
#define LED0_LINK_100 …
#define LED0_LINK_1000 …
#define LED0_FD …
#define LED0_USB3_MASK …
#define LED1_ACTIVE …
#define LED1_LINK_10 …
#define LED1_LINK_100 …
#define LED1_LINK_1000 …
#define LED1_FD …
#define LED1_USB3_MASK …
#define LED2_ACTIVE …
#define LED2_LINK_1000 …
#define LED2_LINK_100 …
#define LED2_LINK_10 …
#define LED2_FD …
#define LED_VALID …
#define LED2_USB3_MASK …
#define GMII_PHYPAGE …
#define GMII_PHY_PAGE_SELECT …
#define GMII_PHY_PGSEL_EXT …
#define GMII_PHY_PGSEL_PAGE0 …
#define GMII_PHY_PGSEL_PAGE3 …
#define GMII_PHY_PGSEL_PAGE5 …
static int ax88179_reset(struct usbnet *dev);
struct ax88179_data { … };
struct ax88179_int_data { … };
static const struct { … } AX88179_BULKIN_SIZE[] = …;
static void ax88179_set_pm_mode(struct usbnet *dev, bool pm_mode)
{ … }
static int ax88179_in_pm(struct usbnet *dev)
{ … }
static int __ax88179_read_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
u16 size, void *data)
{ … }
static int __ax88179_write_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
u16 size, const void *data)
{ … }
static void ax88179_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, void *data)
{ … }
static int ax88179_read_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
u16 size, void *data)
{ … }
static int ax88179_write_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
u16 size, const void *data)
{ … }
static void ax88179_status(struct usbnet *dev, struct urb *urb)
{ … }
static int ax88179_mdio_read(struct net_device *netdev, int phy_id, int loc)
{ … }
static void ax88179_mdio_write(struct net_device *netdev, int phy_id, int loc,
int val)
{ … }
static inline int ax88179_phy_mmd_indirect(struct usbnet *dev, u16 prtad,
u16 devad)
{ … }
static int
ax88179_phy_read_mmd_indirect(struct usbnet *dev, u16 prtad, u16 devad)
{ … }
static int
ax88179_phy_write_mmd_indirect(struct usbnet *dev, u16 prtad, u16 devad,
u16 data)
{ … }
static int ax88179_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int ax88179_auto_detach(struct usbnet *dev)
{ … }
static int ax88179_resume(struct usb_interface *intf)
{ … }
static void ax88179_disconnect(struct usb_interface *intf)
{ … }
static void
ax88179_get_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo)
{ … }
static int
ax88179_set_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo)
{ … }
static int ax88179_get_eeprom_len(struct net_device *net)
{ … }
static int
ax88179_get_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom,
u8 *data)
{ … }
static int
ax88179_set_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom,
u8 *data)
{ … }
static int ax88179_get_link_ksettings(struct net_device *net,
struct ethtool_link_ksettings *cmd)
{ … }
static int ax88179_set_link_ksettings(struct net_device *net,
const struct ethtool_link_ksettings *cmd)
{ … }
static int
ax88179_ethtool_get_eee(struct usbnet *dev, struct ethtool_keee *data)
{ … }
static int
ax88179_ethtool_set_eee(struct usbnet *dev, struct ethtool_keee *data)
{ … }
static int ax88179_chk_eee(struct usbnet *dev)
{ … }
static void ax88179_disable_eee(struct usbnet *dev)
{ … }
static void ax88179_enable_eee(struct usbnet *dev)
{ … }
static int ax88179_get_eee(struct net_device *net, struct ethtool_keee *edata)
{ … }
static int ax88179_set_eee(struct net_device *net, struct ethtool_keee *edata)
{ … }
static int ax88179_ioctl(struct net_device *net, struct ifreq *rq, int cmd)
{ … }
static const struct ethtool_ops ax88179_ethtool_ops = …;
static void ax88179_set_multicast(struct net_device *net)
{ … }
static int
ax88179_set_features(struct net_device *net, netdev_features_t features)
{ … }
static int ax88179_change_mtu(struct net_device *net, int new_mtu)
{ … }
static int ax88179_set_mac_addr(struct net_device *net, void *p)
{ … }
static const struct net_device_ops ax88179_netdev_ops = …;
static int ax88179_check_eeprom(struct usbnet *dev)
{ … }
static int ax88179_check_efuse(struct usbnet *dev, u16 *ledmode)
{ … }
static int ax88179_convert_old_led(struct usbnet *dev, u16 *ledvalue)
{ … }
static int ax88179_led_setting(struct usbnet *dev)
{ … }
static void ax88179_get_mac_addr(struct usbnet *dev)
{ … }
static int ax88179_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
static void ax88179_unbind(struct usbnet *dev, struct usb_interface *intf)
{ … }
static void
ax88179_rx_checksum(struct sk_buff *skb, u32 *pkt_hdr)
{ … }
static int ax88179_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
{ … }
static struct sk_buff *
ax88179_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
{ … }
static int ax88179_link_reset(struct usbnet *dev)
{ … }
static int ax88179_reset(struct usbnet *dev)
{ … }
static int ax88179_net_reset(struct usbnet *dev)
{ … }
static int ax88179_stop(struct usbnet *dev)
{ … }
static const struct driver_info ax88179_info = …;
static const struct driver_info ax88178a_info = …;
static const struct driver_info cypress_GX3_info = …;
static const struct driver_info dlink_dub1312_info = …;
static const struct driver_info sitecom_info = …;
static const struct driver_info samsung_info = …;
static const struct driver_info lenovo_info = …;
static const struct driver_info belkin_info = …;
static const struct driver_info toshiba_info = …;
static const struct driver_info mct_info = …;
static const struct driver_info at_umc2000_info = …;
static const struct driver_info at_umc200_info = …;
static const struct driver_info at_umc2000sp_info = …;
static const struct usb_device_id products[] = …;
MODULE_DEVICE_TABLE(usb, products);
static struct usb_driver ax88179_178a_driver = …;
module_usb_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;