#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/ethtool.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include <linux/usb/cdc.h>
#include <linux/usb/usbnet.h>
#include <linux/linkmode.h>
#include "aqc111.h"
#define DRIVER_NAME …
static int aqc111_read_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, void *data)
{ … }
static int aqc111_read_cmd(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, void *data)
{ … }
static int aqc111_read16_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 *data)
{ … }
static int aqc111_read16_cmd(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 *data)
{ … }
static int __aqc111_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
u16 value, u16 index, u16 size, const void *data)
{ … }
static int aqc111_write_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, void *data)
{ … }
static int aqc111_write_cmd(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, const void *data)
{ … }
static int aqc111_write16_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 *data)
{ … }
static int aqc111_write16_cmd(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 *data)
{ … }
static int aqc111_write32_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u32 *data)
{ … }
static int aqc111_write32_cmd(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u32 *data)
{ … }
static int aqc111_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 size, void *data)
{ … }
static int aqc111_write16_cmd_async(struct usbnet *dev, u8 cmd, u16 value,
u16 index, u16 *data)
{ … }
static void aqc111_get_drvinfo(struct net_device *net,
struct ethtool_drvinfo *info)
{ … }
static void aqc111_get_wol(struct net_device *net,
struct ethtool_wolinfo *wolinfo)
{ … }
static int aqc111_set_wol(struct net_device *net,
struct ethtool_wolinfo *wolinfo)
{ … }
static void aqc111_speed_to_link_mode(u32 speed,
struct ethtool_link_ksettings *elk)
{ … }
static int aqc111_get_link_ksettings(struct net_device *net,
struct ethtool_link_ksettings *elk)
{ … }
static void aqc111_set_phy_speed(struct usbnet *dev, u8 autoneg, u16 speed)
{ … }
static int aqc111_set_link_ksettings(struct net_device *net,
const struct ethtool_link_ksettings *elk)
{ … }
static const struct ethtool_ops aqc111_ethtool_ops = …;
static int aqc111_change_mtu(struct net_device *net, int new_mtu)
{ … }
static int aqc111_set_mac_addr(struct net_device *net, void *p)
{ … }
static int aqc111_vlan_rx_kill_vid(struct net_device *net,
__be16 proto, u16 vid)
{ … }
static int aqc111_vlan_rx_add_vid(struct net_device *net, __be16 proto, u16 vid)
{ … }
static void aqc111_set_rx_mode(struct net_device *net)
{ … }
static int aqc111_set_features(struct net_device *net,
netdev_features_t features)
{ … }
static const struct net_device_ops aqc111_netdev_ops = …;
static int aqc111_read_perm_mac(struct usbnet *dev)
{ … }
static void aqc111_read_fw_version(struct usbnet *dev,
struct aqc111_data *aqc111_data)
{ … }
static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
static void aqc111_unbind(struct usbnet *dev, struct usb_interface *intf)
{ … }
static void aqc111_status(struct usbnet *dev, struct urb *urb)
{ … }
static void aqc111_configure_rx(struct usbnet *dev,
struct aqc111_data *aqc111_data)
{ … }
static void aqc111_configure_csum_offload(struct usbnet *dev)
{ … }
static int aqc111_link_reset(struct usbnet *dev)
{ … }
static int aqc111_reset(struct usbnet *dev)
{ … }
static int aqc111_stop(struct usbnet *dev)
{ … }
static void aqc111_rx_checksum(struct sk_buff *skb, u64 pkt_desc)
{ … }
static int aqc111_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
{ … }
static struct sk_buff *aqc111_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
gfp_t flags)
{ … }
static const struct driver_info aqc111_info = …;
#define ASIX111_DESC …
static const struct driver_info asix111_info = …;
#undef ASIX111_DESC
#define ASIX112_DESC …
static const struct driver_info asix112_info = …;
#undef ASIX112_DESC
static const struct driver_info trendnet_info = …;
static const struct driver_info qnap_info = …;
static int aqc111_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int aqc111_resume(struct usb_interface *intf)
{ … }
#define AQC111_USB_ETH_DEV(vid, pid, table) …
static const struct usb_device_id products[] = …;
MODULE_DEVICE_TABLE(usb, products);
static struct usb_driver aq_driver = …;
module_usb_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;