linux/drivers/net/usb/ax88179_178a.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * ASIX AX88179/178A USB 3.0/2.0 to Gigabit Ethernet Devices
 *
 * Copyright (C) 2011-2013 ASIX
 */

#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
/* Check AX88179 version. UA1:Bit2 = 0,  UA2:Bit2 = 1 */
	#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)
{}

/* This function is used to enable the autodetach function. */
/* This function is determined by offset 0x43 of EEPROM */
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();