linux/drivers/net/usb/dm9601.c

/*
 * Davicom DM96xx USB 10/100Mbps ethernet devices
 *
 * Peter Korsgaard <[email protected]>
 *
 * This file is licensed under the terms of the GNU General Public License
 * version 2.  This program is licensed "as is" without any warranty of any
 * kind, whether express or implied.
 */

//#define DEBUG

#include <linux/module.h>
#include <linux/sched.h>
#include <linux/stddef.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/crc32.h>
#include <linux/usb/usbnet.h>
#include <linux/slab.h>

/* datasheet:
 http://ptm2.cc.utu.fi/ftp/network/cards/DM9601/From_NET/DM9601-DS-P01-930914.pdf
*/

/* control requests */
#define DM_READ_REGS
#define DM_WRITE_REGS
#define DM_READ_MEMS
#define DM_WRITE_REG
#define DM_WRITE_MEMS
#define DM_WRITE_MEM

/* registers */
#define DM_NET_CTRL
#define DM_RX_CTRL
#define DM_SHARED_CTRL
#define DM_SHARED_ADDR
#define DM_SHARED_DATA
#define DM_PHY_ADDR
#define DM_MCAST_ADDR
#define DM_GPR_CTRL
#define DM_GPR_DATA
#define DM_CHIP_ID
#define DM_MODE_CTRL

/* chip id values */
#define ID_DM9601
#define ID_DM9620

#define DM_MAX_MCAST
#define DM_MCAST_SIZE
#define DM_EEPROM_LEN
#define DM_TX_OVERHEAD
#define DM_RX_OVERHEAD
#define DM_TIMEOUT

static int dm_read(struct usbnet *dev, u8 reg, u16 length, void *data)
{}

static int dm_read_reg(struct usbnet *dev, u8 reg, u8 *value)
{}

static int dm_write(struct usbnet *dev, u8 reg, u16 length, void *data)
{}

static int dm_write_reg(struct usbnet *dev, u8 reg, u8 value)
{}

static void dm_write_async(struct usbnet *dev, u8 reg, u16 length,
			   const void *data)
{}

static void dm_write_reg_async(struct usbnet *dev, u8 reg, u8 value)
{}

static int dm_read_shared_word(struct usbnet *dev, int phy, u8 reg, __le16 *value)
{}

static int dm_write_shared_word(struct usbnet *dev, int phy, u8 reg, __le16 value)
{}

static int dm_read_eeprom_word(struct usbnet *dev, u8 offset, void *value)
{}



static int dm9601_get_eeprom_len(struct net_device *dev)
{}

static int dm9601_get_eeprom(struct net_device *net,
			     struct ethtool_eeprom *eeprom, u8 * data)
{}

static int dm9601_mdio_read(struct net_device *netdev, int phy_id, int loc)
{}

static void dm9601_mdio_write(struct net_device *netdev, int phy_id, int loc,
			      int val)
{}

static void dm9601_get_drvinfo(struct net_device *net,
			       struct ethtool_drvinfo *info)
{}

static u32 dm9601_get_link(struct net_device *net)
{}

static int dm9601_ioctl(struct net_device *net, struct ifreq *rq, int cmd)
{}

static const struct ethtool_ops dm9601_ethtool_ops =;

static void dm9601_set_multicast(struct net_device *net)
{}

static void __dm9601_set_mac_address(struct usbnet *dev)
{}

static int dm9601_set_mac_address(struct net_device *net, void *p)
{}

static const struct net_device_ops dm9601_netdev_ops =;

static int dm9601_bind(struct usbnet *dev, struct usb_interface *intf)
{}

static int dm9601_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
{}

static struct sk_buff *dm9601_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
				       gfp_t flags)
{}

static void dm9601_status(struct usbnet *dev, struct urb *urb)
{}

static int dm9601_link_reset(struct usbnet *dev)
{}

static const struct driver_info dm9601_info =;

static const struct usb_device_id products[] =;

MODULE_DEVICE_TABLE(usb, products);

static struct usb_driver dm9601_driver =;

module_usb_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();