Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -202,18 +202,17 @@ config USB_CDCETHER
	  IEEE 802 "local assignment" bit is set in the address, a "usbX"
	  name is used instead.

comment "USB Network Adapters"
	depends on USB_USBNET
comment "Drivers built using the usbnet core"

config USB_AX8817X
	boolean "ASIX AX88xxx Based USB 2.0 Ethernet Devices"
config USB_NET_AX8817X
	tristate "ASIX AX88xxx Based USB 2.0 Ethernet Adapters"
	depends on USB_USBNET && NET_ETHERNET
	select CRC32
	select MII
	default y
	help
	  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:
	    * Aten UC210T
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ obj-$(CONFIG_USB_CATC) += catc.o
obj-$(CONFIG_USB_KAWETH)	+= kaweth.o
obj-$(CONFIG_USB_PEGASUS)	+= pegasus.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_USBNET)	+= usbnet.o
obj-$(CONFIG_USB_ZD1201)	+= zd1201.o

drivers/usb/net/asix.c

0 → 100644
+948 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −889

File changed.

Preview size limit exceeded, changes collapsed.

+8 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ struct usbnet {
	unsigned long		data [5];
	u32			xid;
	u32			hard_mtu;	/* count any extra framing */
	size_t		        rx_urb_size;    /* size for rx urbs  */
	struct mii_if_info	mii;

	/* various kinds of pending driver work */
@@ -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
 * used before it has one ... notably, in minidriver bind() calls.