net/usb: add sierra_net.c driver
Subsystems (3)
PATCH v5 1/1 net/usb: add sierra_net.c driver
Subject: [PATCH v5] net/usb: add sierra_net.c driver
From: Elina Pasheva <[email protected]>
Re-submitted based on comments from netdev community. Summary of the changes:
1. Improved error handling.
2. Added the missing timeout arguments to usb_control_msg().
The following is a new Linux driver which exposes certain models of Sierra Wireless modems to the operating system as Network Interface Cards (NICs).
This driver requires a version of the sierra.c driver which supports blacklisting to work properly. The blacklist in sierra.c rejects the interfaces claimed by sierra_net.c. Likewise, the sierra_net.c driver only accepts (i.e. whitelists) the interface(s) used for USB-to-WWAN traffic. The version of sierra.c which supports blacklisting is
available from the sierra wireless knowledge base page for older kernels. It is also available in Linux kernel starting from version 2.6.31.
This driver works with all Sierra Wireless devices configured with PID=68A3 like USB305, USB306 provided the corresponding firmware version is I2.0 (for USB305) or M3.0 (for USB306) and later.
This driver will not work with earlier firmware versions than the ones shown above. In this case the driver will issue an error message indicating incompatibility and will not serve the device's USB-to-WWAN interface.
Sierra_net.c sits atop a pre-existing Linux driver called usbnet.c. A series of hook functions are provided in sierra_net.c which are called by usbnet.c in response to a particular condition such as receipt or transmission of a data packet. As such, usbnet.c does most of the work of making a modem appear to the system as a network device and for properly exchanging traffic between the USB subsystem and the Network card interface. Sierra_net.c is concerned with managing the data exchanged between the USB-to-WWAN interface and the upper layers of the operating system.
The version number of sierra_net.c driver is set to 2.0. This patch has been checked against net-2.6 tree.
--- drivers/net/usb/Kconfig | 10 + drivers/net/usb/Makefile | 1 + drivers/net/usb/sierra_net.c | 1002 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1013 insertions(+), 0 deletions(-) create mode 100755 drivers/net/usb/sierra_net.c
drivers/net/usb/Kconfig +10 -0
@@ -397,4 +397,14 @@ config USB_IPHETH For more information: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver +config USB_SIERRA_NET + tristate "USB-to-WWAN Driver for Sierra Wireless modems" + depends on USB_USBNET + default y + help + Choose this option if you have a Sierra Wireless USB-to-WWAN device. + + To compile this driver as a module, choose M here: the + module will be called sierra_net. + endmenu
drivers/net/usb/Makefile +1 -0
@@ -24,4 +24,5 @@ obj-$(CONFIG_USB_USBNET) += usbnet.o obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o obj-$(CONFIG_USB_IPHETH) += ipheth.o +obj-$(CONFIG_USB_SIERRA_NET) += sierra_net.o
drivers/net/usb/sierra_net.c new file +1002 -0
1,002 lines not on this page · raw message
Signature · 1 line
1.5.4.3
From: Elina Pasheva <[email protected]>
Date: Tue, 27 Apr 2010 17:48:31 -0700
Quoted 1 line
Subject: [PATCH v5] net/usb: add
sierra_net.cdriver
Applied, although I had to manually remove the stray extra newline at the end of drivers/net/usb/sierra_net.c which GIT complains about when the patch is applied.
David Miller
maintainerFrom: David Miller <[email protected]>
Date: Tue, 27 Apr 2010 18:07:32 -0700 (PDT)
Quoted 8 lines
From: Elina Pasheva <[email protected]>
Date: Tue, 27 Apr 2010 17:48:31 -0700Quoted 1 line
Subject: [PATCH v5] net/usb: add
sierra_net.cdriverApplied, although I had to manually remove the stray extra newline at the end of
drivers/net/usb/sierra_net.cwhich GIT complains about when the patch is applied.
I also had to fix up the following warning during the build:
drivers/net/usb/sierra_net.c: In function ‘sierra_net_parse_lsi’:drivers/net/usb/sierra_net.c:365: warning: format ‘%u’ expects type ‘unsigned int’, but argument 7 has type ‘long unsigned int’
"size_t" objects must use the "z" format specifier, so "%zu" is what should have been used here.
Quoted 12 lines · David Miller
From: David Miller <davem-fT/PcQaiUtIeIZ0/[email protected]>
Date: Tue, 27 Apr 2010 18:07:32 -0700 (PDT)Quoted 8 lines
From: Elina Pasheva <[email protected]>
Date: Tue, 27 Apr 2010 17:48:31 -0700Quoted 1 line
Subject: [PATCH v5] net/usb: add
sierra_net.cdriverApplied, although I had to manually remove the stray extra newline at the end of
drivers/net/usb/sierra_net.cwhich GIT complains about when the patch is applied.
Quoted 7 lines
I also had to fix up the following warning during the build:
drivers/net/usb/sierra_net.c: In function ‘sierra_net_parse_lsi’:drivers/net/usb/sierra_net.c:365: warning: format ‘%u’ expects type ‘unsigned int’, but argument 7 has type ‘long unsigned int’"
size_t" objects must use the "z" format specifier, so "%zu" is what should have been used here.
Sorry, my mistake.
Thank you very much, David.
Elina
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html