aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-06-02 14:48:14 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-06-02 14:48:14 -0700
commitce6089ada2fea84bef30a839543688664859162b (patch)
tree5f305696e88c5d7e5191d2ab47ba2c008073db1c /usb
parent1243a917553e97fa5adaa2010bbfaf6e86acefb3 (diff)
downloadpatches-ce6089ada2fea84bef30a839543688664859162b.tar.gz
new usb and pci patches
Diffstat (limited to 'usb')
-rw-r--r--usb/airprime_major_update.patch6
-rw-r--r--usb/usb-add-sierra-wireless-mc5720-id-to-airprime.c.patch26
-rw-r--r--usb/usb-cdc_ether-recognize-olympus-r1000.patch41
-rw-r--r--usb/usb-negative-index-in-drivers-usb-host-isp116x-hcd.c.patch63
-rw-r--r--usb/usb-whiteheat-fix-firmware-spurious-errors.patch37
5 files changed, 170 insertions, 3 deletions
diff --git a/usb/airprime_major_update.patch b/usb/airprime_major_update.patch
index ff9e17ffbae5f..df4f69569409b 100644
--- a/usb/airprime_major_update.patch
+++ b/usb/airprime_major_update.patch
@@ -36,7 +36,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#include <linux/module.h>
#include <linux/usb.h>
#include "usb-serial.h"
-@@ -23,6 +24,201 @@ static struct usb_device_id id_table []
+@@ -24,6 +25,201 @@ static struct usb_device_id id_table []
};
MODULE_DEVICE_TABLE(usb, id_table);
@@ -238,7 +238,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static struct usb_driver airprime_driver = {
.name = "airprime",
.probe = usb_serial_probe,
-@@ -41,6 +237,9 @@ static struct usb_serial_driver airprime
+@@ -42,6 +238,9 @@ static struct usb_serial_driver airprime
.num_bulk_in = NUM_DONT_CARE,
.num_bulk_out = NUM_DONT_CARE,
.num_ports = 1,
@@ -248,7 +248,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
static int __init airprime_init(void)
-@@ -65,3 +264,8 @@ static void __exit airprime_exit(void)
+@@ -66,3 +265,8 @@ static void __exit airprime_exit(void)
module_init(airprime_init);
module_exit(airprime_exit);
MODULE_LICENSE("GPL");
diff --git a/usb/usb-add-sierra-wireless-mc5720-id-to-airprime.c.patch b/usb/usb-add-sierra-wireless-mc5720-id-to-airprime.c.patch
new file mode 100644
index 0000000000000..db7ddf695727c
--- /dev/null
+++ b/usb/usb-add-sierra-wireless-mc5720-id-to-airprime.c.patch
@@ -0,0 +1,26 @@
+From jeremy@goop.org Wed May 31 13:30:21 2006
+Message-ID: <447DDEC0.70105@goop.org>
+Date: Wed, 31 May 2006 11:21:52 -0700
+From: Jeremy Fitzhardinge <jeremy@goop.org>
+To: gregkh@suse.de
+Subject: USB: Add Sierra Wireless MC5720 ID to airprime.c
+
+Recognize the Sierra Wireless MC5720.
+
+Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/airprime.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- gregkh-2.6.orig/drivers/usb/serial/airprime.c
++++ gregkh-2.6/drivers/usb/serial/airprime.c
+@@ -19,6 +19,7 @@ static struct usb_device_id id_table []
+ { USB_DEVICE(0xf3d, 0x0112) }, /* AirPrime CDMA Wireless PC Card */
+ { USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless Merlin CDMA */
+ { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless Aircard 580 */
++ { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */
+ { },
+ };
+ MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/usb/usb-cdc_ether-recognize-olympus-r1000.patch b/usb/usb-cdc_ether-recognize-olympus-r1000.patch
new file mode 100644
index 0000000000000..7fe0ee27ad0b1
--- /dev/null
+++ b/usb/usb-cdc_ether-recognize-olympus-r1000.patch
@@ -0,0 +1,41 @@
+From david-b@pacbell.net Tue May 30 20:49:37 2006
+From: David Brownell <david-b@pacbell.net>
+To: Greg KH <greg@kroah.com>
+Subject: USB: cdc_ether: recognize olympus r1000 (fix regression)
+Date: Tue, 30 May 2006 20:49:29 -0700
+Cc: Christian Herrmann <c.herrmann@ccxl.de>, Todd Blumer <todd@sdgsystems.com>
+Message-Id: <200605302049.30269.david-b@pacbell.net>
+
+Earlier work splitting the "usbnet" driver out into a core plus driver
+modules was missing a blacklist entry for the Olympus R-1000; it must
+not use the CDC Ethernet driver, only the "zaurus" support works with
+it.
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/net/cdc_ether.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- gregkh-2.6.orig/drivers/usb/net/cdc_ether.c
++++ gregkh-2.6/drivers/usb/net/cdc_ether.c
+@@ -455,6 +455,18 @@ static const struct usb_device_id produc
+ .driver_info = 0,
+ },
+
++/* Olympus has some models with a Zaurus-compatible option.
++ * R-1000 uses a FreeScale i.MXL cpu (ARMv4T)
++ */
++{
++ .match_flags = USB_DEVICE_ID_MATCH_INT_INFO
++ | USB_DEVICE_ID_MATCH_DEVICE,
++ .idVendor = 0x07B4,
++ .idProduct = 0x0F02, /* R-1000 */
++ ZAURUS_MASTER_INTERFACE,
++ .driver_info = 0,
++},
++
+ /*
+ * WHITELIST!!!
+ *
diff --git a/usb/usb-negative-index-in-drivers-usb-host-isp116x-hcd.c.patch b/usb/usb-negative-index-in-drivers-usb-host-isp116x-hcd.c.patch
new file mode 100644
index 0000000000000..8530802ceb8b2
--- /dev/null
+++ b/usb/usb-negative-index-in-drivers-usb-host-isp116x-hcd.c.patch
@@ -0,0 +1,63 @@
+From akpm@osdl.org Thu Jun 1 20:44:33 2006
+Message-Id: <200606020344.k523iQ26029471@shell0.pdx.osdl.net>
+Subject: USB: negative index in drivers/usb/host/isp116x-hcd.c
+To: greg@kroah.com
+Cc: linux-usb-devel@lists.sourceforge.net, akpm@osdl.org, snakebyte@gmx.de
+From: akpm@osdl.org
+Date: Thu, 01 Jun 2006 20:48:45 -0700
+
+
+From: Eric Sesterhenn <snakebyte@gmx.de>
+
+This fixes coverity Bug #390.
+
+With the following code
+
+ ret = ep->branch = balance(isp116x, ep->period, ep->load);
+ if (ret < 0)
+ goto fail;
+
+the problem is that ret and balance are of the type int, and ep->branch is u16.
+so the int balance() returns gets reduced to u16 and then converted to an int again,
+which removes the sign. Maybe the following little c program can explain it better:
+
+----snip----
+int foo() {
+ return -5;
+}
+
+int main(int argc, char **argv) {
+ int a;
+ unsigned short b;
+
+ a = b = foo();
+ if (a < 0)
+ puts("case 1 works\n");
+
+ b = a = foo();
+ if (a < 0 )
+ puts("case 2 works\n");
+}
+----snip----
+
+only the case 2 output is visible.
+
+Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/host/isp116x-hcd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- gregkh-2.6.orig/drivers/usb/host/isp116x-hcd.c
++++ gregkh-2.6/drivers/usb/host/isp116x-hcd.c
+@@ -781,7 +781,7 @@ static int isp116x_urb_enqueue(struct us
+ if (ep->branch < PERIODIC_SIZE)
+ break;
+
+- ret = ep->branch = balance(isp116x, ep->period, ep->load);
++ ep->branch = ret = balance(isp116x, ep->period, ep->load);
+ if (ret < 0)
+ goto fail;
+ ret = 0;
diff --git a/usb/usb-whiteheat-fix-firmware-spurious-errors.patch b/usb/usb-whiteheat-fix-firmware-spurious-errors.patch
new file mode 100644
index 0000000000000..90aed9df23360
--- /dev/null
+++ b/usb/usb-whiteheat-fix-firmware-spurious-errors.patch
@@ -0,0 +1,37 @@
+From stuartm@connecttech.com Wed May 31 10:40:58 2006
+From: "Stuart MacDonald" <stuartm@connecttech.com>
+To: <greg@kroah.com>
+Subject: USB: Whiteheat: fix firmware spurious errors
+Date: Wed, 31 May 2006 13:28:40 -0400
+Message-ID: <02d901c684d7$a87b8460$294b82ce@stuartm>
+
+Attached patch fixes spurious errors during firmware load.
+
+Signed-off-by: Stuart MacDonald <stuartm@connecttech.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/usb/serial/whiteheat.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- gregkh-2.6.orig/drivers/usb/serial/whiteheat.c
++++ gregkh-2.6/drivers/usb/serial/whiteheat.c
+@@ -388,7 +388,7 @@ static int whiteheat_attach (struct usb_
+ if (ret) {
+ err("%s: Couldn't send command [%d]", serial->type->description, ret);
+ goto no_firmware;
+- } else if (alen != sizeof(command)) {
++ } else if (alen != 2) {
+ err("%s: Send command incomplete [%d]", serial->type->description, alen);
+ goto no_firmware;
+ }
+@@ -400,7 +400,7 @@ static int whiteheat_attach (struct usb_
+ if (ret) {
+ err("%s: Couldn't get results [%d]", serial->type->description, ret);
+ goto no_firmware;
+- } else if (alen != sizeof(result)) {
++ } else if (alen != sizeof(*hw_info) + 1) {
+ err("%s: Get results incomplete [%d]", serial->type->description, alen);
+ goto no_firmware;
+ } else if (result[0] != command[0]) {