Re: [PATCH 2.6.21.3] USB: add support for TRU-install and new VID/PIDs to Sierra Wireless driver
On Tue, 05 Jun 2007 14:26:48 -0700 Kevin Lloyd <[EMAIL PROTECTED]> wrote: > This patch is derived from the 2.6.21.3 kernel source and adds support for > the new TRU-install > feature (without this support new devices will not work), and add new UMTS > device VID/PIDs. 2.6.21.3 is quite old, sorry. The patch throws several rejects. Against 2.6.22-rc4 would be preferred. Against git-snapshot-of-the-day from ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/ is even better. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 2.6.21.3] USB: add support for TRU-install and new VID/PIDs to Sierra Wireless driver
On Tue, 05 Jun 2007 14:26:48 -0700 Kevin Lloyd [EMAIL PROTECTED] wrote: This patch is derived from the 2.6.21.3 kernel source and adds support for the new TRU-install feature (without this support new devices will not work), and add new UMTS device VID/PIDs. 2.6.21.3 is quite old, sorry. The patch throws several rejects. Against 2.6.22-rc4 would be preferred. Against git-snapshot-of-the-day from ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/ is even better. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 2.6.21.3] USB: add support for TRU-install and new VID/PIDs to Sierra Wireless driver
From: Kevin Lloyd <[EMAIL PROTECTED]> This patch is derived from the 2.6.21.3 kernel source and adds support for the new TRU-install feature (without this support new devices will not work), and add new UMTS device VID/PIDs. Signed-off-by: Kevin Lloyd <[EMAIL PROTECTED]> --- diff -uprN linux-2.6.21.3.orig/drivers/usb/serial/sierra.c linux-2.6.21.3.swoc/drivers/usb/serial/sierra.c --- linux-2.6.21.3.orig/drivers/usb/serial/sierra.c 2007-05-24 14:22:47.0 -0700 +++ linux-2.6.21.3.swoc/drivers/usb/serial/sierra.c 2007-06-05 13:29:49.0 -0700 @@ -15,9 +15,9 @@ */ -#define DRIVER_VERSION "v.1.0.6" +#define DRIVER_VERSION "v.1.2.2" #define DRIVER_AUTHOR "Kevin Lloyd <[EMAIL PROTECTED]>" -#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" +#define DRIVER_DESC "USB Driver for Sierra Wireless modems" #include #include @@ -28,64 +28,53 @@ #include #include +#include "sierra.h" + +static int debug; static struct usb_device_id id_table [] = { { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ + { USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */ { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */ { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ + { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U*/ + { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ - { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */ + { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 & AC 875U */ { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ - - { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ - { USB_DEVICE(0x0F3D, 0x0112) }, /* AirPrime/Sierra PC 5220 */ + { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780*/ + { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781*/ + { USB_DEVICE(0x1199, 0x6850) }, /* Sierra Wireless AirCard 880 */ + { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */ + { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880 E */ + { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881 E */ + + { USB_DEVICE(0x1199, 0x0112), .driver_info = DEVICE_1_PORT }, /* Sierra Wireless AirCard 580 */ + { USB_DEVICE(0x0F3D, 0x0112), .driver_info = DEVICE_1_PORT }, /* Airprime/Sierra PC 5220 */ + + + { USB_DEVICE(0x1199, 0x0FFF), .driver_info = DEVICE_INSTALLER}, { } }; MODULE_DEVICE_TABLE(usb, id_table); -static struct usb_device_id id_table_1port [] = { - { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ - { USB_DEVICE(0x0F3D, 0x0112) }, /* AirPrime/Sierra PC 5220 */ - { } -}; - -static struct usb_device_id id_table_3port [] = { - { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ - { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ - { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */ - { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ - { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ - { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ - { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ - { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */ - { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ - { } -}; +int sierra_probe(struct usb_interface *iface, const struct usb_device_id *id); +int sierra_set_power_state(struct usb_device *udev, unsigned long swiState); +int sierra_set_ms_mode(struct usb_device *udev, SWIMS_SET_MODE_VALUE eSocMode); static struct usb_driver sierra_driver = { .name = "sierra", - .probe = usb_serial_probe, + .probe = sierra_probe, .disconnect = usb_serial_disconnect, .id_table = id_table, .no_dynamic_id =1, }; - -static int debug; - -/* per port private data */ -#define N_IN_URB 4 -#define N_OUT_URB 4 -#define IN_BUFLEN 4096 -#define OUT_BUFLEN 128 - struct sierra_port_private { /* Input endpoints and buffer for this port */ struct urb *in_urbs[N_IN_URB]; @@ -116,6 +105,7 @@ static int sierra_send_setup(struct usb_ if (port->tty) { int val = 0; + if (portdata->dtr_state) val |= 0x01; if
[PATCH 2.6.21.3] USB: add support for TRU-install and new VID/PIDs to Sierra Wireless driver
From: Kevin Lloyd [EMAIL PROTECTED] This patch is derived from the 2.6.21.3 kernel source and adds support for the new TRU-install feature (without this support new devices will not work), and add new UMTS device VID/PIDs. Signed-off-by: Kevin Lloyd [EMAIL PROTECTED] --- diff -uprN linux-2.6.21.3.orig/drivers/usb/serial/sierra.c linux-2.6.21.3.swoc/drivers/usb/serial/sierra.c --- linux-2.6.21.3.orig/drivers/usb/serial/sierra.c 2007-05-24 14:22:47.0 -0700 +++ linux-2.6.21.3.swoc/drivers/usb/serial/sierra.c 2007-06-05 13:29:49.0 -0700 @@ -15,9 +15,9 @@ */ -#define DRIVER_VERSION v.1.0.6 +#define DRIVER_VERSION v.1.2.2 #define DRIVER_AUTHOR Kevin Lloyd [EMAIL PROTECTED] -#define DRIVER_DESC USB Driver for Sierra Wireless USB modems +#define DRIVER_DESC USB Driver for Sierra Wireless modems #include linux/kernel.h #include linux/jiffies.h @@ -28,64 +28,53 @@ #include linux/usb.h #include linux/usb/serial.h +#include sierra.h + +static int debug; static struct usb_device_id id_table [] = { { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ + { USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */ { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */ { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ + { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U*/ + { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ - { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */ + { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 AC 875U */ { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ - - { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ - { USB_DEVICE(0x0F3D, 0x0112) }, /* AirPrime/Sierra PC 5220 */ + { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780*/ + { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781*/ + { USB_DEVICE(0x1199, 0x6850) }, /* Sierra Wireless AirCard 880 */ + { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */ + { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880 E */ + { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881 E */ + + { USB_DEVICE(0x1199, 0x0112), .driver_info = DEVICE_1_PORT }, /* Sierra Wireless AirCard 580 */ + { USB_DEVICE(0x0F3D, 0x0112), .driver_info = DEVICE_1_PORT }, /* Airprime/Sierra PC 5220 */ + + + { USB_DEVICE(0x1199, 0x0FFF), .driver_info = DEVICE_INSTALLER}, { } }; MODULE_DEVICE_TABLE(usb, id_table); -static struct usb_device_id id_table_1port [] = { - { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ - { USB_DEVICE(0x0F3D, 0x0112) }, /* AirPrime/Sierra PC 5220 */ - { } -}; - -static struct usb_device_id id_table_3port [] = { - { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ - { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ - { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */ - { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ - { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ - { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ - { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ - { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */ - { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ - { } -}; +int sierra_probe(struct usb_interface *iface, const struct usb_device_id *id); +int sierra_set_power_state(struct usb_device *udev, unsigned long swiState); +int sierra_set_ms_mode(struct usb_device *udev, SWIMS_SET_MODE_VALUE eSocMode); static struct usb_driver sierra_driver = { .name = sierra, - .probe = usb_serial_probe, + .probe = sierra_probe, .disconnect = usb_serial_disconnect, .id_table = id_table, .no_dynamic_id =1, }; - -static int debug; - -/* per port private data */ -#define N_IN_URB 4 -#define N_OUT_URB 4 -#define IN_BUFLEN 4096 -#define OUT_BUFLEN 128 - struct sierra_port_private { /* Input endpoints and buffer for this port */ struct urb *in_urbs[N_IN_URB]; @@ -116,6 +105,7 @@ static int sierra_send_setup(struct usb_ if (port-tty) { int val = 0; + if (portdata-dtr_state)