From: Greg Kroah-Hartman Date: Tue, 9 Dec 2008 19:23:23 +0000 (-0800) Subject: more patches added X-Git-Tag: v2.6.27.10~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6b0240dcd8d5052e1b6c3e8738f2af4cb382d41d;p=thirdparty%2Fkernel%2Fstable-queue.git more patches added --- diff --git a/queue-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch b/queue-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch new file mode 100644 index 00000000000..7fc37ace586 --- /dev/null +++ b/queue-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch @@ -0,0 +1,43 @@ +From 17b24b3c97498935a2ef9777370b1151dfed3f6f Mon Sep 17 00:00:00 2001 +From: Chas Williams +Date: Thu, 4 Dec 2008 14:58:13 -0800 +Subject: ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table + +From: Chas Williams + +commit 17b24b3c97498935a2ef9777370b1151dfed3f6f upstream. + +As reported by Hugo Dias that it is possible to cause a local denial +of service attack by calling the svc_listen function twice on the same +socket and reading /proc/net/atm/*vc + +Signed-off-by: Chas Williams +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + net/atm/svc.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/net/atm/svc.c ++++ b/net/atm/svc.c +@@ -293,7 +293,10 @@ static int svc_listen(struct socket *soc + error = -EINVAL; + goto out; + } +- vcc_insert_socket(sk); ++ if (test_bit(ATM_VF_LISTEN, &vcc->flags)) { ++ error = -EADDRINUSE; ++ goto out; ++ } + set_bit(ATM_VF_WAITING, &vcc->flags); + prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); + sigd_enq(vcc,as_listen,NULL,NULL,&vcc->local); +@@ -307,6 +310,7 @@ static int svc_listen(struct socket *soc + goto out; + } + set_bit(ATM_VF_LISTEN,&vcc->flags); ++ vcc_insert_socket(sk); + sk->sk_max_ack_backlog = backlog > 0 ? backlog : ATM_BACKLOG_DEFAULT; + error = -sk->sk_err; + out: diff --git a/queue-2.6.27/edac-fix-enabling-of-polling-cell-module.patch b/queue-2.6.27/edac-fix-enabling-of-polling-cell-module.patch new file mode 100644 index 00000000000..5b1338673e2 --- /dev/null +++ b/queue-2.6.27/edac-fix-enabling-of-polling-cell-module.patch @@ -0,0 +1,44 @@ +From 992b692dcf43612be805465ca4b76f434c715023 Mon Sep 17 00:00:00 2001 +From: Benjamin Herrenschmidt +Date: Wed, 29 Oct 2008 14:01:00 -0700 +Subject: edac: fix enabling of polling cell module + +From: Benjamin Herrenschmidt + +commit 992b692dcf43612be805465ca4b76f434c715023 upstream. + +The edac driver on cell turned out to be not enabled because of a missing +op_state. This patch introduces it. Verified to work on top of Ben's +next branch. + +Signed-off-by: Arnd Bergmann +Signed-off-by: Jens Osterkamp +Acked-by: Benjamin Herrenschmidt +Signed-off-by: Doug Thompson +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/edac/cell_edac.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/edac/cell_edac.c ++++ b/drivers/edac/cell_edac.c +@@ -9,6 +9,7 @@ + */ + #undef DEBUG + ++#include + #include + #include + #include +@@ -164,6 +165,8 @@ static int __devinit cell_edac_probe(str + if (regs == NULL) + return -ENODEV; + ++ edac_op_state = EDAC_OPSTATE_POLL; ++ + /* Get channel population */ + reg = in_be64(®s->mic_mnt_cfg); + dev_dbg(&pdev->dev, "MIC_MNT_CFG = 0x%016lx\n", reg); diff --git a/queue-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch b/queue-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch new file mode 100644 index 00000000000..ca0c3eb5859 --- /dev/null +++ b/queue-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch @@ -0,0 +1,34 @@ +From 2c6f2cb83b239b7d45da9246cafd27ee615ee35b Mon Sep 17 00:00:00 2001 +From: Stefan Bader +Date: Thu, 16 Oct 2008 22:00:56 -0400 +Subject: Input: i8042 - add Blue FB5601 to noloop exception table + +From: Stefan Bader + +commit 2c6f2cb83b239b7d45da9246cafd27ee615ee35b upstream. + +Signed-off-by: Stefan Bader +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/serio/i8042-x86ia64io.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -135,6 +135,14 @@ static struct dmi_system_id __initdata i + DMI_MATCH(DMI_PRODUCT_VERSION, "5a"), + }, + }, ++ { ++ .ident = "Blue FB5601", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "blue"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "FB5601"), ++ DMI_MATCH(DMI_PRODUCT_VERSION, "M606"), ++ }, ++ }, + { } + }; + diff --git a/queue-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch b/queue-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch new file mode 100644 index 00000000000..e35c4ee92aa --- /dev/null +++ b/queue-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch @@ -0,0 +1,33 @@ +From 5f4ba04ffd8fc9f6b15b92270ef0517ae52dcf3a Mon Sep 17 00:00:00 2001 +From: Dmitry Torokhov +Date: Fri, 14 Nov 2008 13:32:42 -0500 +Subject: Input: i8042 - add Compal Hel80 laptop to nomux blacklist + +From: Dmitry Torokhov + +commit 5f4ba04ffd8fc9f6b15b92270ef0517ae52dcf3a upstream. + +Reported-by: Jaime Cura +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -344,6 +344,13 @@ static struct dmi_system_id __initdata i + DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"), + }, + }, ++ { ++ .ident = "Compal HEL80I", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"), ++ }, ++ }, + { } + }; + diff --git a/queue-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch b/queue-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch new file mode 100644 index 00000000000..3f3e82a8458 --- /dev/null +++ b/queue-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch @@ -0,0 +1,41 @@ +From 786b11cc0f505e44c29f778fd329dafafafed76c Mon Sep 17 00:00:00 2001 +From: Herton Ronaldo Krzesinski +Date: Tue, 11 Nov 2008 09:37:14 -0500 +Subject: Input: i8042 - add Dell XPS M1530 to nomux list + +From: Herton Ronaldo Krzesinski + +commit 786b11cc0f505e44c29f778fd329dafafafed76c upstream. + +Dell XPS M1530 needs i8042.nomux=1 for ALPS touchpad to work as +reported on https://qa.mandriva.com/show_bug.cgi?id=43532 + +It is said that before A08 bios version this isn't needed (I don't +have the hardware so can't check), and suppose this will not break +with bios versions before A08. + +Signed-off-by: Herton Ronaldo Krzesinski +Tested-by: Andreas Ericsson +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -337,6 +337,13 @@ static struct dmi_system_id __initdata i + DMI_MATCH(DMI_PRODUCT_NAME, "2656"), + }, + }, ++ { ++ .ident = "Dell XPS M1530", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"), ++ }, ++ }, + { } + }; + diff --git a/queue-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch b/queue-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch new file mode 100644 index 00000000000..edc68ecb1d0 --- /dev/null +++ b/queue-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch @@ -0,0 +1,38 @@ +From 5bd8a05e937b3ab88cd7ea569e32738f36c42bd0 Mon Sep 17 00:00:00 2001 +From: Colin B Macdonald +Date: Sat, 11 Oct 2008 18:16:38 -0400 +Subject: Input: i8042 - add Thinkpad R31 to nomux list + +From: Colin B Macdonald + +commit 5bd8a05e937b3ab88cd7ea569e32738f36c42bd0 upstream. + +Thinkpad R31 needs i8042 nomux quirk. Stops jittery jumping mouse +and random keyboard input. Fixes kernel bug #11723. Cherry picked +from Ubuntu who have sometimes (on-again-off-again) had a fix in +their patched kernels. + +Signed-off-by: Colin B Macdonald +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -322,6 +322,13 @@ static struct dmi_system_id __initdata i + DMI_MATCH(DMI_PRODUCT_NAME, "N34AS6"), + }, + }, ++ { ++ .ident = "IBM 2656", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "IBM"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "2656"), ++ }, ++ }, + { } + }; + diff --git a/queue-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch b/queue-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch new file mode 100644 index 00000000000..6c4de27e9f1 --- /dev/null +++ b/queue-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch @@ -0,0 +1,65 @@ +From cc353c30bbdb84f4317a6c149ebb11cde2232e40 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Fri, 28 Nov 2008 09:51:23 +0000 +Subject: powerpc/mpic: Don't reset affinity for secondary MPIC on boot + +From: Arnd Bergmann + +commit cc353c30bbdb84f4317a6c149ebb11cde2232e40 upstream. + +Kexec/kdump currently fails on the IBM QS2x blades when the kexec happens +on a CPU other than the initial boot CPU. It turns out that this is the +result of mpic_init trying to set affinity of each interrupt vector to the +current boot CPU. + +As far as I can tell, the same problem is likely to exist on any +secondary MPIC, because they have to deliver interrupts to the first +output all the time. There are two potential solutions for this: either +not set up affinity at all for secondary MPICs, or assume that a single +CPU output is connected to the upstream interrupt controller and hardcode +affinity to that per architecture. + +This patch implements the second approach, defaulting to the first output. +Currently, all known secondary MPICs are routed to their upstream port +using the first destination, so we hardcode that. + +Signed-off-by: Arnd Bergmann +Signed-off-by: Paul Mackerras +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/sysdev/mpic.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- a/arch/powerpc/sysdev/mpic.c ++++ b/arch/powerpc/sysdev/mpic.c +@@ -1271,6 +1271,7 @@ void __init mpic_set_default_senses(stru + void __init mpic_init(struct mpic *mpic) + { + int i; ++ int cpu; + + BUG_ON(mpic->num_sources == 0); + +@@ -1313,6 +1314,11 @@ void __init mpic_init(struct mpic *mpic) + + mpic_pasemi_msi_init(mpic); + ++ if (mpic->flags & MPIC_PRIMARY) ++ cpu = hard_smp_processor_id(); ++ else ++ cpu = 0; ++ + for (i = 0; i < mpic->num_sources; i++) { + /* start with vector = source number, and masked */ + u32 vecpri = MPIC_VECPRI_MASK | i | +@@ -1323,8 +1329,7 @@ void __init mpic_init(struct mpic *mpic) + continue; + /* init hw */ + mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri); +- mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), +- 1 << hard_smp_processor_id()); ++ mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1 << cpu); + } + + /* Init spurious vector */ diff --git a/queue-2.6.27/series b/queue-2.6.27/series index 2211c0f516a..3548873d733 100644 --- a/queue-2.6.27/series +++ b/queue-2.6.27/series @@ -16,3 +16,19 @@ acpi-scheduling-in-atomic-via-acpi_evaluate_integer.patch acpi-suspend-blacklist-boxes-that-require-us-to-set-sci_en-directly-on-resume.patch jbd-fix-error-handling-for-checkpoint-io.patch jbd-test-bh_write_eio-to-detect-errors-on-metadata-buffers.patch +spi-avoid-spidev-crash-when-device-is-removed.patch +atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch +powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch +input-i8042-add-thinkpad-r31-to-nomux-list.patch +input-i8042-add-blue-fb5601-to-noloop-exception-table.patch +input-i8042-add-dell-xps-m1530-to-nomux-list.patch +input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch +edac-fix-enabling-of-polling-cell-module.patch +usb-option-add-ericsson-f3507g-and-dell-5530.patch +usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch +usb-option-anydata-new-modem-same-id.patch +usb-option-add-pantech-cards.patch +usb-add-zte-mf626-usb-gsm-modem-entry.patch +usb-support-huawei-data-card-product-ids.patch +usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch +usb-serial-add-more-onda-device-ids-to-option-driver.patch diff --git a/queue-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch b/queue-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch new file mode 100644 index 00000000000..8558c647463 --- /dev/null +++ b/queue-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch @@ -0,0 +1,68 @@ +From aaacf4bb51b243875b203e6ff73b5047636b4efa Mon Sep 17 00:00:00 2001 +From: Wolfgang Ocker +Date: Mon, 1 Dec 2008 13:13:52 -0800 +Subject: spi: avoid spidev crash when device is removed + +From: Wolfgang Ocker + +commit aaacf4bb51b243875b203e6ff73b5047636b4efa upstream. + +I saw a kernel oops in spidev_remove() when a spidev device was registered +and I unloaded the SPI master driver: + +Unable to handle kernel paging request for data at address 0x00000004 +Faulting instruction address: 0xc01c0c50 +Oops: Kernel access of bad area, sig: 11 [#1] +CDSPR +Modules linked in: spi_ppc4xx(-) +NIP: c01c0c50 LR: c01bf9e4 CTR: c01c0c34 +REGS: cec89c30 TRAP: 0300 Not tainted (2.6.27.3izt) +MSR: 00021000 CR: 24000228 XER: 20000007 +DEAR: 00000004, ESR: 00800000 +TASK = cf889040[2070] 'rmmod' THREAD: cec88000 +GPR00: 00000000 cec89ce0 cf889040 cec8e000 00000004 cec8e000 ffffffff 00000000 +GPR08: 0000001c c0336380 00000000 c01c0c34 00000001 1001a338 100e0000 100df49c +GPR16: 100b54c0 100df49c 100ddd20 100f05a8 100b5340 100efd68 00000000 00000000 +GPR24: 100ec008 100f0428 c0327788 c0327794 cec8e0ac cec8e000 c0336380 00000000 +NIP [c01c0c50] spidev_remove+0x1c/0xe4 +LR [c01bf9e4] spi_drv_remove+0x2c/0x3c +Call Trace: +[cec89d00] [c01bf9e4] spi_drv_remove+0x2c/0x3c +[cec89d10] [c01859a0] __device_release_driver+0x78/0xb4 +[cec89d20] [c0185ab0] device_release_driver+0x28/0x44 +[cec89d40] [c0184be8] bus_remove_device+0xac/0xd8 +[cec89d60] [c0183094] device_del+0x100/0x194 +[cec89d80] [c0183140] device_unregister+0x18/0x30 +[cec89da0] [c01bf30c] __unregister+0x20/0x34 +[cec89db0] [c0182778] device_for_each_child+0x38/0x74 +[cec89de0] [c01bf2d0] spi_unregister_master+0x28/0x44 +[cec89e00] [c01bfeac] spi_bitbang_stop+0x1c/0x58 +[cec89e20] [d908a5e0] spi_ppc4xx_of_remove+0x24/0x7c [spi_ppc4xx] +[...] + +IMHO a call to spi_set_drvdata() is missing in spidev_probe(). The patch +below helped. + +Signed-off-by: Wolfgang Ocker +Signed-off-by: David Brownell +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spidev.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/spi/spidev.c ++++ b/drivers/spi/spidev.c +@@ -598,7 +598,9 @@ static int spidev_probe(struct spi_devic + } + mutex_unlock(&device_list_lock); + +- if (status != 0) ++ if (status == 0) ++ spi_set_drvdata(spi, spidev); ++ else + kfree(spidev); + + return status; diff --git a/queue-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch b/queue-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch new file mode 100644 index 00000000000..cc27bd28909 --- /dev/null +++ b/queue-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch @@ -0,0 +1,41 @@ +From c6206faa4f18bcc837a12552b8c184ab1668fdea Mon Sep 17 00:00:00 2001 +From: Leslie Watter +Date: Wed, 12 Nov 2008 15:10:07 -0200 +Subject: USB: Add YISO u893 usb modem vendor and product IDs to option driver + +From: Leslie Watter + +commit c6206faa4f18bcc837a12552b8c184ab1668fdea upstream + +This patch adds YISO u893 usb modem vendor and product ID to option.c. + +I had a better experience using this modification and the same system. + +Signed-off-by: Leslie Harlley Watter +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -160,6 +160,11 @@ static int option_send_setup(struct tty + + #define NOVATELWIRELESS_VENDOR_ID 0x1410 + ++/* YISO PRODUCTS */ ++ ++#define YISO_VENDOR_ID 0x0EAB ++#define YISO_PRODUCT_U893 0xC893 ++ + /* MERLIN EVDO PRODUCTS */ + #define NOVATELWIRELESS_PRODUCT_V640 0x1100 + #define NOVATELWIRELESS_PRODUCT_V620 0x1110 +@@ -408,6 +413,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, + { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, + { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, ++ { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) }, + { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, + { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, + { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) }, diff --git a/queue-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch b/queue-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch new file mode 100644 index 00000000000..77c0e4d7c2d --- /dev/null +++ b/queue-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch @@ -0,0 +1,33 @@ +From bfd8408d68975759aba1b466af6f5388d7adb836 Mon Sep 17 00:00:00 2001 +From: Mikhail Gusarov +Date: Sat, 18 Oct 2008 18:20:02 +0700 +Subject: USB: add ZTE MF626 USB GSM modem entry + +From: Mikhail Gusarov + +commit bfd8408d68975759aba1b466af6f5388d7adb836 upstream + +Signed-off-by: Mikhail Gusarov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -207,6 +207,7 @@ static int option_send_setup(struct tty + /* ZTE PRODUCTS */ + #define ZTE_VENDOR_ID 0x19d2 + #define ZTE_PRODUCT_MF628 0x0015 ++#define ZTE_PRODUCT_MF626 0x0031 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe + + /* Ericsson products */ +@@ -336,6 +337,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ + { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, ++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, + { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, diff --git a/queue-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch b/queue-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch new file mode 100644 index 00000000000..3fba11bd7f1 --- /dev/null +++ b/queue-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch @@ -0,0 +1,46 @@ +From b064eca9b0cdbb2b8f731ae2e44fa02194a1219a Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Wed, 24 Sep 2008 11:49:19 -0400 +Subject: USB: option: add Ericsson F3507g and Dell 5530 + +From: Dan Williams + +commit b064eca9b0cdbb2b8f731ae2e44fa02194a1219a upstream. + +Add a few more mobile broadband cards. + +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -220,6 +220,10 @@ static int option_send_setup(struct tty + #define ZTE_PRODUCT_MF628 0x0015 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe + ++/* Ericsson products */ ++#define ERICSSON_VENDOR_ID 0x0bdb ++#define ERICSSON_PRODUCT_F3507G 0x1900 ++ + static struct usb_device_id option_ids[] = { + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, +@@ -318,6 +322,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ + { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */ + { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ ++ { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, +@@ -349,6 +354,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, ++ { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, option_ids); diff --git a/queue-2.6.27/usb-option-add-pantech-cards.patch b/queue-2.6.27/usb-option-add-pantech-cards.patch new file mode 100644 index 00000000000..b53d0c47b65 --- /dev/null +++ b/queue-2.6.27/usb-option-add-pantech-cards.patch @@ -0,0 +1,42 @@ +From 8b6346ec899713a90890c9e832f7eff91ea73504 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Fri, 10 Oct 2008 06:41:16 -0400 +Subject: USB: option: add Pantech cards + +From: Dan Williams + +commit 8b6346ec899713a90890c9e832f7eff91ea73504 upstream + +Add some Pantech mobile broadband IDs. + +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -213,6 +213,12 @@ static int option_send_setup(struct tty + #define ERICSSON_VENDOR_ID 0x0bdb + #define ERICSSON_PRODUCT_F3507G 0x1900 + ++/* Pantech products */ ++#define PANTECH_VENDOR_ID 0x106c ++#define PANTECH_PRODUCT_PC5740 0x3701 ++#define PANTECH_PRODUCT_PC5750 0x3702 /* PX-500 */ ++#define PANTECH_PRODUCT_UM150 0x3711 ++ + static struct usb_device_id option_ids[] = { + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, +@@ -333,6 +339,9 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, + { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, ++ { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5740) }, ++ { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5750) }, ++ { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_UM150) }, + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, option_ids); diff --git a/queue-2.6.27/usb-option-anydata-new-modem-same-id.patch b/queue-2.6.27/usb-option-anydata-new-modem-same-id.patch new file mode 100644 index 00000000000..01fde81fd5b --- /dev/null +++ b/queue-2.6.27/usb-option-anydata-new-modem-same-id.patch @@ -0,0 +1,28 @@ +From bb78a825fa91621e52b9a5409fd9ef07895275bf Mon Sep 17 00:00:00 2001 +From: Jon K Hellan +Date: Fri, 3 Oct 2008 10:36:16 +0200 +Subject: USB: Option / AnyData new modem, same ID + +From: Jon K Hellan + +commit bb78a825fa91621e52b9a5409fd9ef07895275bf upstream. + +The AnyData ADU-310 series of wireless modems uses the same product ID as the ADU-E100 series. + +Signed-off-by: Jon K Hellan +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -301,7 +301,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */ + { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ + { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ +- { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, ++ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, + { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, diff --git a/queue-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch b/queue-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch new file mode 100644 index 00000000000..2a440d32fbe --- /dev/null +++ b/queue-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch @@ -0,0 +1,75 @@ +From 631556a0763ac155c82bbcbeed7e4b28bd737927 Mon Sep 17 00:00:00 2001 +From: Denis Joseph Barrow +Date: Tue, 30 Sep 2008 16:49:22 +0200 +Subject: USB: option.c remove duplicate device ids now supported in hso.c + +From: Denis Joseph Barrow + +commit 631556a0763ac155c82bbcbeed7e4b28bd737927 upstream. + +Remove duplicate device ids which are now supported by drivers/usb/net/hso.c + +Signed-off-by: Denis Joseph Barrow +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 22 ---------------------- + 1 file changed, 22 deletions(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -79,27 +79,16 @@ static int option_send_setup(struct tty + #define OPTION_PRODUCT_VIPER 0x6600 + #define OPTION_PRODUCT_VIPER_BUS 0x6601 + #define OPTION_PRODUCT_GT_MAX_READY 0x6701 +-#define OPTION_PRODUCT_GT_MAX 0x6711 + #define OPTION_PRODUCT_FUJI_MODEM_LIGHT 0x6721 + #define OPTION_PRODUCT_FUJI_MODEM_GT 0x6741 + #define OPTION_PRODUCT_FUJI_MODEM_EX 0x6761 +-#define OPTION_PRODUCT_FUJI_NETWORK_LIGHT 0x6731 +-#define OPTION_PRODUCT_FUJI_NETWORK_GT 0x6751 +-#define OPTION_PRODUCT_FUJI_NETWORK_EX 0x6771 + #define OPTION_PRODUCT_KOI_MODEM 0x6800 +-#define OPTION_PRODUCT_KOI_NETWORK 0x6811 + #define OPTION_PRODUCT_SCORPION_MODEM 0x6901 +-#define OPTION_PRODUCT_SCORPION_NETWORK 0x6911 + #define OPTION_PRODUCT_ETNA_MODEM 0x7001 +-#define OPTION_PRODUCT_ETNA_NETWORK 0x7011 + #define OPTION_PRODUCT_ETNA_MODEM_LITE 0x7021 + #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041 + #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061 +-#define OPTION_PRODUCT_ETNA_NETWORK_LITE 0x7031 +-#define OPTION_PRODUCT_ETNA_NETWORK_GT 0x7051 +-#define OPTION_PRODUCT_ETNA_NETWORK_EX 0x7071 + #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100 +-#define OPTION_PRODUCT_ETNA_KOI_NETWORK 0x7111 + + #define HUAWEI_VENDOR_ID 0x12D1 + #define HUAWEI_PRODUCT_E600 0x1001 +@@ -239,27 +228,16 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_LIGHT) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_GT) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_EX) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_NETWORK) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_NETWORK) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_LITE) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_GT) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_EX) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) }, +- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, diff --git a/queue-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch b/queue-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch new file mode 100644 index 00000000000..4c1a2096cd3 --- /dev/null +++ b/queue-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch @@ -0,0 +1,69 @@ +From 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Sat, 29 Nov 2008 11:46:21 -0800 +Subject: USB: serial: add more Onda device ids to option driver + +From: Greg Kroah-Hartman + +commit 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac upstream. + +Thanks to Domenico Riccio for pointing these out. + +Cc: Domenico Riccio +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -224,6 +224,7 @@ static int option_send_setup(struct tty + #define ONDA_VENDOR_ID 0x19d2 + #define ONDA_PRODUCT_MSA501HS 0x0001 + #define ONDA_PRODUCT_ET502HS 0x0002 ++#define ONDA_PRODUCT_MT503HS 0x0200 + + #define BANDRICH_VENDOR_ID 0x1A8D + #define BANDRICH_PRODUCT_C100_1 0x1002 +@@ -413,6 +414,40 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, + { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, + { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0003) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0004) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0005) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0006) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0007) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0008) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0009) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000a) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000b) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000c) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000d) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000e) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000f) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0010) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0011) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0012) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0013) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0014) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0015) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0016) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0017) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0018) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0019) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0020) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0021) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0022) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0023) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0024) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0025) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0026) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0027) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0028) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0029) }, ++ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) }, + { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) }, + { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, + { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, diff --git a/queue-2.6.27/usb-support-huawei-data-card-product-ids.patch b/queue-2.6.27/usb-support-huawei-data-card-product-ids.patch new file mode 100644 index 00000000000..fb22edd94d7 --- /dev/null +++ b/queue-2.6.27/usb-support-huawei-data-card-product-ids.patch @@ -0,0 +1,163 @@ +From 1460e5e44cc5ecad7704f63b10dcb3a59d0e008b Mon Sep 17 00:00:00 2001 +From: fangxiaozhi +Date: Wed, 15 Oct 2008 14:15:36 +0800 +Subject: USB: support Huawei data card product IDs + +From: fangxiaozhi + +commit 1460e5e44cc5ecad7704f63b10dcb3a59d0e008b upstream + +In this patch, we want to do one thing: add more Huawei product IDs into the +USB driver. Then it can support more Huawei data card devices. So to declare +the unusual device for new Huawei data card devices in unusual_devs.h and to +declare more new product IDs in option.c. + +To modify the data value and length in the function of +usb_stor_huawei_e220_init in initializers.c That's because based on the USB +standard, while sending SET_FETURE_D to the device, it requires the +corresponding data to be zero, and its sending length also must be zero. In +our old solution, it can be compatible with our WCDMA data card devices, but +can not support our CDMA data card devices. But in this new solution, it can +be compatible with all of our data card devices. + +Signed-off-by: fangxiaozhi +Signed-off-by: Phil Dibowitz +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 94 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 94 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -95,11 +95,20 @@ static int option_send_setup(struct tty + #define HUAWEI_PRODUCT_E220 0x1003 + #define HUAWEI_PRODUCT_E220BIS 0x1004 + #define HUAWEI_PRODUCT_E1401 0x1401 ++#define HUAWEI_PRODUCT_E1402 0x1402 + #define HUAWEI_PRODUCT_E1403 0x1403 ++#define HUAWEI_PRODUCT_E1404 0x1404 + #define HUAWEI_PRODUCT_E1405 0x1405 + #define HUAWEI_PRODUCT_E1406 0x1406 ++#define HUAWEI_PRODUCT_E1407 0x1407 + #define HUAWEI_PRODUCT_E1408 0x1408 + #define HUAWEI_PRODUCT_E1409 0x1409 ++#define HUAWEI_PRODUCT_E140A 0x140A ++#define HUAWEI_PRODUCT_E140B 0x140B ++#define HUAWEI_PRODUCT_E140C 0x140C ++#define HUAWEI_PRODUCT_E140D 0x140D ++#define HUAWEI_PRODUCT_E140E 0x140E ++#define HUAWEI_PRODUCT_E140F 0x140F + #define HUAWEI_PRODUCT_E1410 0x1410 + #define HUAWEI_PRODUCT_E1411 0x1411 + #define HUAWEI_PRODUCT_E1412 0x1412 +@@ -110,6 +119,44 @@ static int option_send_setup(struct tty + #define HUAWEI_PRODUCT_E1417 0x1417 + #define HUAWEI_PRODUCT_E1418 0x1418 + #define HUAWEI_PRODUCT_E1419 0x1419 ++#define HUAWEI_PRODUCT_E141A 0x141A ++#define HUAWEI_PRODUCT_E141B 0x141B ++#define HUAWEI_PRODUCT_E141C 0x141C ++#define HUAWEI_PRODUCT_E141D 0x141D ++#define HUAWEI_PRODUCT_E141E 0x141E ++#define HUAWEI_PRODUCT_E141F 0x141F ++#define HUAWEI_PRODUCT_E1420 0x1420 ++#define HUAWEI_PRODUCT_E1421 0x1421 ++#define HUAWEI_PRODUCT_E1422 0x1422 ++#define HUAWEI_PRODUCT_E1423 0x1423 ++#define HUAWEI_PRODUCT_E1424 0x1424 ++#define HUAWEI_PRODUCT_E1425 0x1425 ++#define HUAWEI_PRODUCT_E1426 0x1426 ++#define HUAWEI_PRODUCT_E1427 0x1427 ++#define HUAWEI_PRODUCT_E1428 0x1428 ++#define HUAWEI_PRODUCT_E1429 0x1429 ++#define HUAWEI_PRODUCT_E142A 0x142A ++#define HUAWEI_PRODUCT_E142B 0x142B ++#define HUAWEI_PRODUCT_E142C 0x142C ++#define HUAWEI_PRODUCT_E142D 0x142D ++#define HUAWEI_PRODUCT_E142E 0x142E ++#define HUAWEI_PRODUCT_E142F 0x142F ++#define HUAWEI_PRODUCT_E1430 0x1430 ++#define HUAWEI_PRODUCT_E1431 0x1431 ++#define HUAWEI_PRODUCT_E1432 0x1432 ++#define HUAWEI_PRODUCT_E1433 0x1433 ++#define HUAWEI_PRODUCT_E1434 0x1434 ++#define HUAWEI_PRODUCT_E1435 0x1435 ++#define HUAWEI_PRODUCT_E1436 0x1436 ++#define HUAWEI_PRODUCT_E1437 0x1437 ++#define HUAWEI_PRODUCT_E1438 0x1438 ++#define HUAWEI_PRODUCT_E1439 0x1439 ++#define HUAWEI_PRODUCT_E143A 0x143A ++#define HUAWEI_PRODUCT_E143B 0x143B ++#define HUAWEI_PRODUCT_E143C 0x143C ++#define HUAWEI_PRODUCT_E143D 0x143D ++#define HUAWEI_PRODUCT_E143E 0x143E ++#define HUAWEI_PRODUCT_E143F 0x143F + + #define NOVATELWIRELESS_VENDOR_ID 0x1410 + +@@ -249,11 +296,20 @@ static struct usb_device_id option_ids[] + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) }, +@@ -264,6 +320,44 @@ static struct usb_device_id option_ids[] + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */