Commit 2e55cc72 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] USB: usbnet (3/9) module for ASIX Ethernet adapters

This patch moves the ASIX AX8817x driver into its own file, just using
the "usbnet" infrastructure as a utility library.

 - As with "cdc_subset" this involved minor Kconfig/kbuild tweaks,
   moving code from one file to another, and exporting a few functions.

 - This includes updates from Jamie Painter to add (and use) a new hook
   to handle the different maximum transfer sizes for rx and tx sides.

 - Also from Jamie, some bugfixes:
    * MDIO byteorder (to address some PPC media negotiation problems);
    * Force alignment at key spots when using ax88772 framing (on some
      embedded hardware, the network stack will break otherwise);
    * Address some link reset problems.

It also makes this driver use the standard (5 seconds vs half second)
control timeouts used elsewhere in USB; and wraps a few lines before
the 80th column (which previously needed it).
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 38bde1d4
...@@ -202,23 +202,22 @@ config USB_CDCETHER ...@@ -202,23 +202,22 @@ config USB_CDCETHER
IEEE 802 "local assignment" bit is set in the address, a "usbX" IEEE 802 "local assignment" bit is set in the address, a "usbX"
name is used instead. name is used instead.
comment "USB Network Adapters" comment "Drivers built using the usbnet core"
depends on USB_USBNET
config USB_AX8817X config USB_NET_AX8817X
boolean "ASIX AX88xxx Based USB 2.0 Ethernet Devices" tristate "ASIX AX88xxx Based USB 2.0 Ethernet Adapters"
depends on USB_USBNET && NET_ETHERNET depends on USB_USBNET && NET_ETHERNET
select CRC32 select CRC32
select MII select MII
default y default y
help help
This option adds support for ASIX AX88xxx based USB 2.0 This option adds support for ASIX AX88xxx based USB 2.0
10/100 Ethernet devices. 10/100 Ethernet adapters.
This driver should work with at least the following devices: This driver should work with at least the following devices:
* Aten UC210T * Aten UC210T
* ASIX AX88172 * ASIX AX88172
* Billionton Systems, USB2AR * Billionton Systems, USB2AR
* Buffalo LUA-U2-KTX * Buffalo LUA-U2-KTX
* Corega FEther USB2-TX * Corega FEther USB2-TX
* D-Link DUB-E100 * D-Link DUB-E100
...@@ -231,7 +230,7 @@ config USB_AX8817X ...@@ -231,7 +230,7 @@ config USB_AX8817X
* TrendNet TU2-ET100 * TrendNet TU2-ET100
This driver creates an interface named "ethX", where X depends on This driver creates an interface named "ethX", where X depends on
what other networking devices you have in use. what other networking devices you have in use.
config USB_NET_CDC_SUBSET config USB_NET_CDC_SUBSET
......
...@@ -6,6 +6,7 @@ obj-$(CONFIG_USB_CATC) += catc.o ...@@ -6,6 +6,7 @@ obj-$(CONFIG_USB_CATC) += catc.o
obj-$(CONFIG_USB_KAWETH) += kaweth.o obj-$(CONFIG_USB_KAWETH) += kaweth.o
obj-$(CONFIG_USB_PEGASUS) += pegasus.o obj-$(CONFIG_USB_PEGASUS) += pegasus.o
obj-$(CONFIG_USB_RTL8150) += rtl8150.o obj-$(CONFIG_USB_RTL8150) += rtl8150.o
obj-$(CONFIG_USB_NET_AX8817X) += asix.o
obj-$(CONFIG_USB_NET_CDC_SUBSET) += cdc_subset.o obj-$(CONFIG_USB_NET_CDC_SUBSET) += cdc_subset.o
obj-$(CONFIG_USB_USBNET) += usbnet.o obj-$(CONFIG_USB_USBNET) += usbnet.o
obj-$(CONFIG_USB_ZD1201) += zd1201.o obj-$(CONFIG_USB_ZD1201) += zd1201.o
This diff is collapsed.
This diff is collapsed.
...@@ -44,6 +44,7 @@ struct usbnet { ...@@ -44,6 +44,7 @@ struct usbnet {
unsigned long data [5]; unsigned long data [5];
u32 xid; u32 xid;
u32 hard_mtu; /* count any extra framing */ u32 hard_mtu; /* count any extra framing */
size_t rx_urb_size; /* size for rx urbs */
struct mii_if_info mii; struct mii_if_info mii;
/* various kinds of pending driver work */ /* various kinds of pending driver work */
...@@ -140,6 +141,13 @@ struct skb_data { /* skb->cb is one of these */ ...@@ -140,6 +141,13 @@ struct skb_data { /* skb->cb is one of these */
}; };
extern int usbnet_get_endpoints(struct usbnet *, struct usb_interface *);
extern void usbnet_defer_kevent (struct usbnet *, int);
extern void usbnet_skb_return (struct usbnet *, struct sk_buff *);
extern u32 usbnet_get_msglevel (struct net_device *);
extern void usbnet_set_msglevel (struct net_device *, u32);
extern void usbnet_get_drvinfo (struct net_device *, struct ethtool_drvinfo *);
/* messaging support includes the interface name, so it must not be /* messaging support includes the interface name, so it must not be
* used before it has one ... notably, in minidriver bind() calls. * used before it has one ... notably, in minidriver bind() calls.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment