aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-04-04 10:53:00 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-04-04 10:53:00 -0700
commit89db993763d7241db3f0b8760c71dcb0cf6e5d91 (patch)
treef5c163b34e79c4cf4317758bef9da95f3ad88b61 /usb
parentd39fbab34cc47f08bbc206ac10f5b61b32227da6 (diff)
downloadpatches-89db993763d7241db3f0b8760c71dcb0cf6e5d91.tar.gz
new pci and usb patches
Diffstat (limited to 'usb')
-rw-r--r--usb/always-announce-new-usb-devices.patch6
-rw-r--r--usb/usb-drivers-usb-core-remove-unused-exports.patch50
-rw-r--r--usb/usb-ueagle-cosmetic.patch165
-rw-r--r--usb/usb-ueagle-memory-leack-fix.patch44
-rw-r--r--usb/usb-ueagle-null-pointer-dereference-fix.patch30
-rw-r--r--usb/usb-ueagle-support-geode.patch51
6 files changed, 343 insertions, 3 deletions
diff --git a/usb/always-announce-new-usb-devices.patch b/usb/always-announce-new-usb-devices.patch
index d3e74cc6260ff..a50990b21f360 100644
--- a/usb/always-announce-new-usb-devices.patch
+++ b/usb/always-announce-new-usb-devices.patch
@@ -14,7 +14,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- gregkh-2.6.orig/drivers/usb/core/hub.c
+++ gregkh-2.6/drivers/usb/core/hub.c
-@@ -1261,7 +1261,6 @@ static int choose_configuration(struct u
+@@ -1260,7 +1260,6 @@ static int choose_configuration(struct u
return i;
}
@@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static void show_string(struct usb_device *udev, char *id, char *string)
{
if (!string)
-@@ -1269,10 +1268,6 @@ static void show_string(struct usb_devic
+@@ -1268,10 +1267,6 @@ static void show_string(struct usb_devic
dev_printk(KERN_INFO, &udev->dev, "%s: %s\n", id, string);
}
@@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#ifdef CONFIG_USB_OTG
-@@ -1317,7 +1312,10 @@ int usb_new_device(struct usb_device *ud
+@@ -1316,7 +1311,10 @@ int usb_new_device(struct usb_device *ud
udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber);
/* Tell the world! */
diff --git a/usb/usb-drivers-usb-core-remove-unused-exports.patch b/usb/usb-drivers-usb-core-remove-unused-exports.patch
new file mode 100644
index 0000000000000..48830b4604ff8
--- /dev/null
+++ b/usb/usb-drivers-usb-core-remove-unused-exports.patch
@@ -0,0 +1,50 @@
+From bunk@stusta.de Tue Apr 4 00:56:30 2006
+Date: Tue, 4 Apr 2006 09:56:04 +0200
+From: Adrian Bunk <bunk@stusta.de>
+To: gregkh@suse.de
+Cc: linux-usb-devel@lists.sourceforge.net
+Subject: USB: drivers/usb/core/: remove unused exports
+Message-ID: <20060404075604.GE6529@stusta.de>
+Content-Disposition: inline
+
+This patch removes the following unused EXPORT_SYMBOL's:
+- hub.c: usb_set_device_state
+- usb.c: usb_alloc_dev
+- usb.c: usb_disconnect
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/core/hub.c | 1 -
+ drivers/usb/core/usb.c | 2 --
+ 2 files changed, 3 deletions(-)
+
+--- gregkh-2.6.orig/drivers/usb/core/hub.c
++++ gregkh-2.6/drivers/usb/core/hub.c
+@@ -1022,7 +1022,6 @@ void usb_set_device_state(struct usb_dev
+ recursively_mark_NOTATTACHED(udev);
+ spin_unlock_irqrestore(&device_state_lock, flags);
+ }
+-EXPORT_SYMBOL(usb_set_device_state);
+
+
+ #ifdef CONFIG_PM
+--- gregkh-2.6.orig/drivers/usb/core/usb.c
++++ gregkh-2.6/drivers/usb/core/usb.c
+@@ -1194,7 +1194,6 @@ EXPORT_SYMBOL(usb_disabled);
+ EXPORT_SYMBOL_GPL(usb_get_intf);
+ EXPORT_SYMBOL_GPL(usb_put_intf);
+
+-EXPORT_SYMBOL(usb_alloc_dev);
+ EXPORT_SYMBOL(usb_put_dev);
+ EXPORT_SYMBOL(usb_get_dev);
+ EXPORT_SYMBOL(usb_hub_tt_clear_buffer);
+@@ -1208,7 +1207,6 @@ EXPORT_SYMBOL(usb_ifnum_to_if);
+ EXPORT_SYMBOL(usb_altnum_to_altsetting);
+
+ EXPORT_SYMBOL(usb_reset_device);
+-EXPORT_SYMBOL(usb_disconnect);
+
+ EXPORT_SYMBOL(__usb_get_extra_descriptor);
+
diff --git a/usb/usb-ueagle-cosmetic.patch b/usb/usb-ueagle-cosmetic.patch
new file mode 100644
index 0000000000000..ef5b60a53383c
--- /dev/null
+++ b/usb/usb-ueagle-cosmetic.patch
@@ -0,0 +1,165 @@
+From castet.matthieu@free.fr Sun Apr 2 09:44:04 2006
+Message-ID: <442FFF49.50303@free.fr>
+Date: Sun, 02 Apr 2006 18:43:53 +0200
+From: matthieu castet <castet.matthieu@free.fr>
+To: greg@kroah.com
+CC: <ueagleatm-dev@gna.org>
+Subject: USB: UEAGLE : cosmetic
+
+- improve debug trace in order to make easy to solve user problems.
+- indent some code
+- increase version number
+
+Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/usb/atm/ueagle-atm.c | 35 +++++++++++++++++++++++++++++------
+ 1 file changed, 29 insertions(+), 6 deletions(-)
+
+--- gregkh-2.6.orig/drivers/usb/atm/ueagle-atm.c
++++ gregkh-2.6/drivers/usb/atm/ueagle-atm.c
+@@ -68,7 +68,7 @@
+
+ #include "usbatm.h"
+
+-#define EAGLEUSBVERSION "ueagle 1.2"
++#define EAGLEUSBVERSION "ueagle 1.3"
+
+
+ /*
+@@ -314,6 +314,10 @@ struct cmv {
+ ((d) & 0xff) << 16 | \
+ ((a) & 0xff) << 8 | \
+ ((b) & 0xff))
++#define GETSA1(a) ((a >> 8) & 0xff)
++#define GETSA2(a) (a & 0xff)
++#define GETSA3(a) ((a >> 24) & 0xff)
++#define GETSA4(a) ((a >> 16) & 0xff)
+
+ #define SA_CNTL MAKESA('C', 'N', 'T', 'L')
+ #define SA_DIAG MAKESA('D', 'I', 'A', 'G')
+@@ -728,11 +732,12 @@ bad2:
+ uea_err(INS_TO_USBDEV(sc), "sending DSP block %u failed\n", i);
+ return;
+ bad1:
+- uea_err(INS_TO_USBDEV(sc), "invalid DSP page %u requested\n",pageno);
++ uea_err(INS_TO_USBDEV(sc), "invalid DSP page %u requested\n", pageno);
+ }
+
+ static inline void wake_up_cmv_ack(struct uea_softc *sc)
+ {
++ BUG_ON(sc->cmv_ack);
+ sc->cmv_ack = 1;
+ wake_up(&sc->cmv_ack_wait);
+ }
+@@ -743,6 +748,9 @@ static inline int wait_cmv_ack(struct ue
+ sc->cmv_ack, ACK_TIMEOUT);
+ sc->cmv_ack = 0;
+
++ uea_dbg(INS_TO_USBDEV(sc), "wait_event_timeout : %d ms\n",
++ jiffies_to_msecs(ret));
++
+ if (ret < 0)
+ return ret;
+
+@@ -791,6 +799,12 @@ static int uea_cmv(struct uea_softc *sc,
+ struct cmv cmv;
+ int ret;
+
++ uea_enters(INS_TO_USBDEV(sc));
++ uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Address : %c%c%c%c, "
++ "offset : 0x%04x, data : 0x%08x\n",
++ FUNCTION_TYPE(function), FUNCTION_SUBTYPE(function),
++ GETSA1(address), GETSA2(address), GETSA3(address),
++ GETSA4(address), offset, data);
+ /* we send a request, but we expect a reply */
+ sc->cmv_function = function | 0x2;
+ sc->cmv_idx++;
+@@ -808,7 +822,9 @@ static int uea_cmv(struct uea_softc *sc,
+ ret = uea_request(sc, UEA_SET_BLOCK, UEA_MPTX_START, CMV_SIZE, &cmv);
+ if (ret < 0)
+ return ret;
+- return wait_cmv_ack(sc);
++ ret = wait_cmv_ack(sc);
++ uea_leaves(INS_TO_USBDEV(sc));
++ return ret;
+ }
+
+ static inline int uea_read_cmv(struct uea_softc *sc,
+@@ -922,7 +938,7 @@ static int uea_stat(struct uea_softc *sc
+ * we check the status again in order to detect the failure earlier
+ */
+ if (sc->stats.phy.flags) {
+- uea_dbg(INS_TO_USBDEV(sc), "Stat flag = %d\n",
++ uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n",
+ sc->stats.phy.flags);
+ return 0;
+ }
+@@ -1101,6 +1117,8 @@ static int uea_start_reset(struct uea_so
+ if (ret < 0)
+ return ret;
+
++ uea_vdbg(INS_TO_USBDEV(sc), "Ready CMV received\n");
++
+ /* Enter in R-IDLE (cmv) until instructed otherwise */
+ ret = uea_write_cmv(sc, SA_CNTL, 0, 1);
+ if (ret < 0)
+@@ -1121,6 +1139,7 @@ static int uea_start_reset(struct uea_so
+ }
+ /* Enter in R-ACT-REQ */
+ ret = uea_write_cmv(sc, SA_CNTL, 0, 2);
++ uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n");
+ out:
+ release_firmware(cmvs_fw);
+ sc->reset = 0;
+@@ -1235,6 +1254,7 @@ static void uea_dispatch_cmv(struct uea_
+
+ if (cmv->bFunction == MAKEFUNCTION(ADSLDIRECTIVE, MODEMREADY)) {
+ wake_up_cmv_ack(sc);
++ uea_leaves(INS_TO_USBDEV(sc));
+ return;
+ }
+
+@@ -1249,6 +1269,7 @@ static void uea_dispatch_cmv(struct uea_
+ sc->data = sc->data << 16 | sc->data >> 16;
+
+ wake_up_cmv_ack(sc);
++ uea_leaves(INS_TO_USBDEV(sc));
+ return;
+
+ bad2:
+@@ -1256,12 +1277,14 @@ bad2:
+ "Function : %d, Subfunction : %d\n",
+ FUNCTION_TYPE(cmv->bFunction),
+ FUNCTION_SUBTYPE(cmv->bFunction));
++ uea_leaves(INS_TO_USBDEV(sc));
+ return;
+
+ bad1:
+ uea_err(INS_TO_USBDEV(sc), "invalid cmv received, "
+ "wPreamble %d, bDirection %d\n",
+ le16_to_cpu(cmv->wPreamble), cmv->bDirection);
++ uea_leaves(INS_TO_USBDEV(sc));
+ }
+
+ /*
+@@ -1508,7 +1531,7 @@ static ssize_t read_##name(struct device
+ int ret = -ENODEV; \
+ struct uea_softc *sc; \
+ \
+- mutex_lock(&uea_mutex); \
++ mutex_lock(&uea_mutex); \
+ sc = dev_to_uea(dev); \
+ if (!sc) \
+ goto out; \
+@@ -1516,7 +1539,7 @@ static ssize_t read_##name(struct device
+ if (reset) \
+ sc->stats.phy.name = 0; \
+ out: \
+- mutex_unlock(&uea_mutex); \
++ mutex_unlock(&uea_mutex); \
+ return ret; \
+ } \
+ \
diff --git a/usb/usb-ueagle-memory-leack-fix.patch b/usb/usb-ueagle-memory-leack-fix.patch
new file mode 100644
index 0000000000000..bc198b49e8795
--- /dev/null
+++ b/usb/usb-ueagle-memory-leack-fix.patch
@@ -0,0 +1,44 @@
+From castet.matthieu@free.fr Sun Apr 2 09:45:55 2006
+Message-ID: <442FFFBA.10000@free.fr>
+Date: Sun, 02 Apr 2006 18:45:46 +0200
+From: matthieu castet <castet.matthieu@free.fr>
+To: greg@kroah.com
+CC: ueagle <ueagleatm-dev@gna.org>
+Subject: USB: UEAGLE : memory leack fix
+
+this patch fix leak of memory allocated to intr if allocation of
+sc->urb_int fails.
+Found by the Coverity checker.
+
+Signed-off-by: Duncan Sands <baldrick@free.fr>
+Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/atm/ueagle-atm.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- gregkh-2.6.orig/drivers/usb/atm/ueagle-atm.c
++++ gregkh-2.6/drivers/usb/atm/ueagle-atm.c
+@@ -1376,7 +1376,7 @@ static int uea_boot(struct uea_softc *sc
+ if (ret < 0) {
+ uea_err(INS_TO_USBDEV(sc),
+ "urb submition failed with error %d\n", ret);
+- goto err1;
++ goto err;
+ }
+
+ sc->kthread = kthread_run(uea_kthread, sc, "ueagle-atm");
+@@ -1390,10 +1390,10 @@ static int uea_boot(struct uea_softc *sc
+
+ err2:
+ usb_kill_urb(sc->urb_int);
+-err1:
+- kfree(intr);
+ err:
+ usb_free_urb(sc->urb_int);
++ sc->urb_int = NULL;
++ kfree(intr);
+ uea_leaves(INS_TO_USBDEV(sc));
+ return -ENOMEM;
+ }
diff --git a/usb/usb-ueagle-null-pointer-dereference-fix.patch b/usb/usb-ueagle-null-pointer-dereference-fix.patch
new file mode 100644
index 0000000000000..dcc81669ab663
--- /dev/null
+++ b/usb/usb-ueagle-null-pointer-dereference-fix.patch
@@ -0,0 +1,30 @@
+From castet.matthieu@free.fr Sun Apr 2 09:45:00 2006
+Message-ID: <442FFF80.9090205@free.fr>
+Date: Sun, 02 Apr 2006 18:44:48 +0200
+From: matthieu castet <castet.matthieu@free.fr>
+To: greg@kroah.com
+CC: ueagle <ueagleatm-dev@gna.org>
+Subject: USB: UEAGLE : null pointer dereference fix
+
+this patch fix potential null pointer dereference. Found by the
+Coverity checker.
+
+Signed-off-by: Duncan Sands <baldrick@free.fr>
+Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/atm/ueagle-atm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- gregkh-2.6.orig/drivers/usb/atm/ueagle-atm.c
++++ gregkh-2.6/drivers/usb/atm/ueagle-atm.c
+@@ -1673,7 +1673,7 @@ static int uea_bind(struct usbatm_data *
+
+ sc = kzalloc(sizeof(struct uea_softc), GFP_KERNEL);
+ if (!sc) {
+- uea_err(INS_TO_USBDEV(sc), "uea_init: not enough memory !\n");
++ uea_err(usb, "uea_init: not enough memory !\n");
+ return -ENOMEM;
+ }
+
diff --git a/usb/usb-ueagle-support-geode.patch b/usb/usb-ueagle-support-geode.patch
new file mode 100644
index 0000000000000..271d1019790d2
--- /dev/null
+++ b/usb/usb-ueagle-support-geode.patch
@@ -0,0 +1,51 @@
+From castet.matthieu@free.fr Sun Apr 2 09:44:26 2006
+Message-ID: <442FFF64.3030309@free.fr>
+Date: Sun, 02 Apr 2006 18:44:20 +0200
+From: matthieu castet <castet.matthieu@free.fr>
+To: greg@kroah.com
+CC: ueagle <ueagleatm-dev@gna.org>
+Subject: USB: UEAGLE : support geode
+
+- increase ack timeout for slow system (geode 233MHz where HZ=100)
+- reset the cmv ack flag when rebooting
+
+Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/atm/ueagle-atm.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- gregkh-2.6.orig/drivers/usb/atm/ueagle-atm.c
++++ gregkh-2.6/drivers/usb/atm/ueagle-atm.c
+@@ -243,7 +243,7 @@ enum {
+ #define BULK_TIMEOUT 300
+ #define CTRL_TIMEOUT 1000
+
+-#define ACK_TIMEOUT msecs_to_jiffies(1500)
++#define ACK_TIMEOUT msecs_to_jiffies(3000)
+
+ #define UEA_INTR_IFACE_NO 0
+ #define UEA_US_IFACE_NO 1
+@@ -1079,7 +1079,13 @@ static int uea_start_reset(struct uea_so
+ uea_enters(INS_TO_USBDEV(sc));
+ uea_info(INS_TO_USBDEV(sc), "(re)booting started\n");
+
++ /* mask interrupt */
+ sc->booting = 1;
++ /* We need to set this here because, a ack timeout could have occured,
++ * but before we start the reboot, the ack occurs and set this to 1.
++ * So we will failed to wait Ready CMV.
++ */
++ sc->cmv_ack = 0;
+ UPDATE_ATM_STAT(signal, ATM_PHY_SIG_LOST);
+
+ /* reset statistics */
+@@ -1105,6 +1111,7 @@ static int uea_start_reset(struct uea_so
+
+ msleep(1000);
+ sc->cmv_function = MAKEFUNCTION(ADSLDIRECTIVE, MODEMREADY);
++ /* demask interrupt */
+ sc->booting = 0;
+
+ /* start loading DSP */