]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more patches added
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 9 Dec 2008 19:23:23 +0000 (11:23 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 9 Dec 2008 19:23:23 +0000 (11:23 -0800)
17 files changed:
queue-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch [new file with mode: 0644]
queue-2.6.27/edac-fix-enabling-of-polling-cell-module.patch [new file with mode: 0644]
queue-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch [new file with mode: 0644]
queue-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch [new file with mode: 0644]
queue-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch [new file with mode: 0644]
queue-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch [new file with mode: 0644]
queue-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch [new file with mode: 0644]
queue-2.6.27/series
queue-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch [new file with mode: 0644]
queue-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch [new file with mode: 0644]
queue-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch [new file with mode: 0644]
queue-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch [new file with mode: 0644]
queue-2.6.27/usb-option-add-pantech-cards.patch [new file with mode: 0644]
queue-2.6.27/usb-option-anydata-new-modem-same-id.patch [new file with mode: 0644]
queue-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch [new file with mode: 0644]
queue-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch [new file with mode: 0644]
queue-2.6.27/usb-support-huawei-data-card-product-ids.patch [new file with mode: 0644]

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 (file)
index 0000000..7fc37ac
--- /dev/null
@@ -0,0 +1,43 @@
+From 17b24b3c97498935a2ef9777370b1151dfed3f6f Mon Sep 17 00:00:00 2001
+From: Chas Williams <chas@cmf.nrl.navy.mil>
+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 <chas@cmf.nrl.navy.mil>
+
+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 <chas@cmf.nrl.navy.mil>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..5b13386
--- /dev/null
@@ -0,0 +1,44 @@
+From 992b692dcf43612be805465ca4b76f434c715023 Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Wed, 29 Oct 2008 14:01:00 -0700
+Subject: edac: fix enabling of polling cell module
+
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+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 <arnd@arndb.de>
+Signed-off-by: Jens Osterkamp <jens@linux.vnet.ibm.com>
+Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Doug Thompson <dougthompson@xmission.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 <linux/edac.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/platform_device.h>
+@@ -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(&regs->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 (file)
index 0000000..ca0c3eb
--- /dev/null
@@ -0,0 +1,34 @@
+From 2c6f2cb83b239b7d45da9246cafd27ee615ee35b Mon Sep 17 00:00:00 2001
+From: Stefan Bader <stefan.bader@canonical.com>
+Date: Thu, 16 Oct 2008 22:00:56 -0400
+Subject: Input: i8042 - add Blue FB5601 to noloop exception table
+
+From: Stefan Bader <stefan.bader@canonical.com>
+
+commit 2c6f2cb83b239b7d45da9246cafd27ee615ee35b upstream.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..e35c4ee
--- /dev/null
@@ -0,0 +1,33 @@
+From 5f4ba04ffd8fc9f6b15b92270ef0517ae52dcf3a Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Fri, 14 Nov 2008 13:32:42 -0500
+Subject: Input: i8042 - add Compal Hel80 laptop to nomux blacklist
+
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
+commit 5f4ba04ffd8fc9f6b15b92270ef0517ae52dcf3a upstream.
+
+Reported-by: Jaime Cura <jimyx17@gmail.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..3f3e82a
--- /dev/null
@@ -0,0 +1,41 @@
+From 786b11cc0f505e44c29f778fd329dafafafed76c Mon Sep 17 00:00:00 2001
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+Date: Tue, 11 Nov 2008 09:37:14 -0500
+Subject: Input: i8042 - add Dell XPS M1530 to nomux list
+
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+
+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 <herton@mandriva.com.br>
+Tested-by: Andreas Ericsson <ae@op5.se>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..edc68ec
--- /dev/null
@@ -0,0 +1,38 @@
+From 5bd8a05e937b3ab88cd7ea569e32738f36c42bd0 Mon Sep 17 00:00:00 2001
+From: Colin B Macdonald <cbm@m.fsf.org>
+Date: Sat, 11 Oct 2008 18:16:38 -0400
+Subject: Input: i8042 - add Thinkpad R31 to nomux list
+
+From: Colin B Macdonald <cbm@m.fsf.org>
+
+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 <cbm@m.fsf.org>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..6c4de27
--- /dev/null
@@ -0,0 +1,65 @@
+From cc353c30bbdb84f4317a6c149ebb11cde2232e40 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 28 Nov 2008 09:51:23 +0000
+Subject: powerpc/mpic: Don't reset affinity for secondary MPIC on boot
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+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 <arnd@arndb.de>
+Signed-off-by: Paul Mackerras <paulus@samba.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 */
index 2211c0f516a01f7ce898517e064da37cfa8814ee..3548873d733358f5271981965ef0b50825794888 100644 (file)
@@ -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 (file)
index 0000000..8558c64
--- /dev/null
@@ -0,0 +1,68 @@
+From aaacf4bb51b243875b203e6ff73b5047636b4efa Mon Sep 17 00:00:00 2001
+From: Wolfgang Ocker <weo@reccoware.de>
+Date: Mon, 1 Dec 2008 13:13:52 -0800
+Subject: spi: avoid spidev crash when device is removed
+
+From: Wolfgang Ocker <weo@reccoware.de>
+
+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 <ME>  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 <weo@reccoware.de>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..cc27bd2
--- /dev/null
@@ -0,0 +1,41 @@
+From c6206faa4f18bcc837a12552b8c184ab1668fdea Mon Sep 17 00:00:00 2001
+From: Leslie Watter <leslie.watter@gmail.com>
+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 <leslie.watter@gmail.com>
+
+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 <leslie@watter.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..77c0e4d
--- /dev/null
@@ -0,0 +1,33 @@
+From bfd8408d68975759aba1b466af6f5388d7adb836 Mon Sep 17 00:00:00 2001
+From: Mikhail Gusarov <dottedmag@dottedmag.net>
+Date: Sat, 18 Oct 2008 18:20:02 +0700
+Subject: USB: add ZTE MF626 USB GSM modem entry
+
+From: Mikhail Gusarov <dottedmag@dottedmag.net>
+
+commit bfd8408d68975759aba1b466af6f5388d7adb836 upstream
+
+Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..3fba11b
--- /dev/null
@@ -0,0 +1,46 @@
+From b064eca9b0cdbb2b8f731ae2e44fa02194a1219a Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 24 Sep 2008 11:49:19 -0400
+Subject: USB: option: add Ericsson F3507g and Dell 5530
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit b064eca9b0cdbb2b8f731ae2e44fa02194a1219a upstream.
+
+Add a few more mobile broadband cards.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..b53d0c4
--- /dev/null
@@ -0,0 +1,42 @@
+From 8b6346ec899713a90890c9e832f7eff91ea73504 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Fri, 10 Oct 2008 06:41:16 -0400
+Subject: USB: option: add Pantech cards
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit 8b6346ec899713a90890c9e832f7eff91ea73504 upstream
+
+Add some Pantech mobile broadband IDs.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..01fde81
--- /dev/null
@@ -0,0 +1,28 @@
+From bb78a825fa91621e52b9a5409fd9ef07895275bf Mon Sep 17 00:00:00 2001
+From: Jon K Hellan <hellan@acm.org>
+Date: Fri, 3 Oct 2008 10:36:16 +0200
+Subject: USB: Option / AnyData new modem, same ID
+
+From: Jon K Hellan <hellan@acm.org>
+
+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 <hellan@acm.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..2a440d3
--- /dev/null
@@ -0,0 +1,75 @@
+From 631556a0763ac155c82bbcbeed7e4b28bd737927 Mon Sep 17 00:00:00 2001
+From: Denis Joseph Barrow <D.Barow@option.com>
+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 <D.Barow@option.com>
+
+commit 631556a0763ac155c82bbcbeed7e4b28bd737927 upstream.
+
+Remove duplicate device ids which are now supported by drivers/usb/net/hso.c
+
+Signed-off-by: Denis Joseph Barrow <D.Barow@option.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 (file)
index 0000000..4c1a209
--- /dev/null
@@ -0,0 +1,69 @@
+From 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Sat, 29 Nov 2008 11:46:21 -0800
+Subject: USB: serial: add more Onda device ids to option driver
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac upstream.
+
+Thanks to Domenico Riccio for pointing these out.
+
+Cc: Domenico Riccio <domenico.riccio@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 (file)
index 0000000..fb22edd
--- /dev/null
@@ -0,0 +1,163 @@
+From 1460e5e44cc5ecad7704f63b10dcb3a59d0e008b Mon Sep 17 00:00:00 2001
+From: fangxiaozhi <huananhu@huawei.com>
+Date: Wed, 15 Oct 2008 14:15:36 +0800
+Subject: USB: support Huawei data card product IDs
+
+From: fangxiaozhi <huananhu@huawei.com>
+
+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 <huananhu@huawei.com>
+Signed-off-by: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ 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 */