aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-01-27 11:30:11 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2006-01-27 11:30:11 -0800
commit0e59a871d88555157ba9c585562efd7b44980a9a (patch)
tree09c0d188d1bd4321c55dcb75b9957b074ae1cd55 /usb
parentafba9fdd0bc76de323628ad9a25b20310d05031c (diff)
downloadpatches-0e59a871d88555157ba9c585562efd7b44980a9a.tar.gz
usb update
Diffstat (limited to 'usb')
-rw-r--r--usb/always-announce-new-usb-devices.patch6
-rw-r--r--usb/uhci-use-one-qh-per-endpoint-not-per-urb.patch4
-rw-r--r--usb/usb-core-and-hcds-don-t-put_device-while-atomic.patch4
-rw-r--r--usb/usb-remove-usbcore-specific-wakeup-flags.patch6
-rw-r--r--usb/usb-uhci-no-fsbr-until-device-is-configured.patch25
-rw-r--r--usb/usb-usbcore-sets-up-root-hubs-earlier.patch6
6 files changed, 23 insertions, 28 deletions
diff --git a/usb/always-announce-new-usb-devices.patch b/usb/always-announce-new-usb-devices.patch
index 279cab95c24fe..87fc956b748fa 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
-@@ -1251,7 +1251,6 @@ static int choose_configuration(struct u
+@@ -1257,7 +1257,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)
-@@ -1259,10 +1258,6 @@ static void show_string(struct usb_devic
+@@ -1265,10 +1264,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
-@@ -1307,7 +1302,10 @@ int usb_new_device(struct usb_device *ud
+@@ -1313,7 +1308,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/uhci-use-one-qh-per-endpoint-not-per-urb.patch b/usb/uhci-use-one-qh-per-endpoint-not-per-urb.patch
index 0515d1b4491e2..9d9aafeb9c6cd 100644
--- a/usb/uhci-use-one-qh-per-endpoint-not-per-urb.patch
+++ b/usb/uhci-use-one-qh-per-endpoint-not-per-urb.patch
@@ -1076,9 +1076,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* Low-speed transfers get a different queue, and won't hog the bus.
* Also, some devices enumerate better without FSBR; the easiest way
@@ -675,18 +615,13 @@ static int uhci_submit_control(struct uh
- * is in the DEFAULT state. */
+ * isn't in the CONFIGURED state. */
if (urb->dev->speed == USB_SPEED_LOW ||
- urb->dev->state == USB_STATE_DEFAULT)
+ urb->dev->state != USB_STATE_CONFIGURED)
- skelqh = uhci->skel_ls_control_qh;
+ qh->skel = uhci->skel_ls_control_qh;
else {
diff --git a/usb/usb-core-and-hcds-don-t-put_device-while-atomic.patch b/usb/usb-core-and-hcds-don-t-put_device-while-atomic.patch
index 3178ac8250ca9..3b044e60c3e8b 100644
--- a/usb/usb-core-and-hcds-don-t-put_device-while-atomic.patch
+++ b/usb/usb-core-and-hcds-don-t-put_device-while-atomic.patch
@@ -47,7 +47,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dma_pool_free(uhci->qh_pool, qh, qh->dma_handle);
--- gregkh-2.6.orig/drivers/usb/core/hcd.c
+++ gregkh-2.6/drivers/usb/core/hcd.c
-@@ -1091,7 +1091,6 @@ static void urb_unlink (struct urb *urb)
+@@ -1105,7 +1105,6 @@ static void urb_unlink (struct urb *urb)
spin_lock_irqsave (&hcd_data_lock, flags);
list_del_init (&urb->urb_list);
spin_unlock_irqrestore (&hcd_data_lock, flags);
@@ -55,7 +55,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
-@@ -1131,7 +1130,6 @@ static int hcd_submit_urb (struct urb *u
+@@ -1145,7 +1144,6 @@ static int hcd_submit_urb (struct urb *u
case HC_STATE_RUNNING:
case HC_STATE_RESUMING:
doit:
diff --git a/usb/usb-remove-usbcore-specific-wakeup-flags.patch b/usb/usb-remove-usbcore-specific-wakeup-flags.patch
index 7d14440236eea..f3894b9574710 100644
--- a/usb/usb-remove-usbcore-specific-wakeup-flags.patch
+++ b/usb/usb-remove-usbcore-specific-wakeup-flags.patch
@@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
patch_wakeup = 1;
break;
case USB_DT_STRING << 8:
-@@ -1802,16 +1820,10 @@ int usb_add_hcd(struct usb_hcd *hcd,
+@@ -1804,16 +1822,10 @@ int usb_add_hcd(struct usb_hcd *hcd,
device_init_wakeup(&rhdev->dev,
device_can_wakeup(hcd->self.controller));
@@ -158,7 +158,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
} else
recursively_mark_NOTATTACHED(udev);
spin_unlock_irqrestore(&device_state_lock, flags);
-@@ -1875,9 +1881,9 @@ int usb_resume_device(struct usb_device
+@@ -1877,9 +1883,9 @@ int usb_resume_device(struct usb_device
if (udev->state == USB_STATE_NOTATTACHED)
return -ENODEV;
@@ -169,7 +169,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (udev->state == USB_STATE_SUSPENDED) {
// NOTE swsusp may bork us, device state being wrong...
// NOTE this fails if parent is also suspended...
-@@ -1885,8 +1891,8 @@ int usb_resume_device(struct usb_device
+@@ -1887,8 +1893,8 @@ int usb_resume_device(struct usb_device
udev->portnum, udev);
} else
status = 0;
diff --git a/usb/usb-uhci-no-fsbr-until-device-is-configured.patch b/usb/usb-uhci-no-fsbr-until-device-is-configured.patch
index 2fdb4cb75b9da..3a4fa837ffa56 100644
--- a/usb/usb-uhci-no-fsbr-until-device-is-configured.patch
+++ b/usb/usb-uhci-no-fsbr-until-device-is-configured.patch
@@ -1,20 +1,15 @@
-From stern@rowland.harvard.edu Fri Jan 6 12:51:08 2006
-Date: Fri, 6 Jan 2006 15:13:18 -0500 (EST)
+From stern@rowland.harvard.edu Mon Jan 23 14:17:23 2006
+Date: Mon, 23 Jan 2006 17:17:21 -0500 (EST)
From: Alan Stern <stern@rowland.harvard.edu>
To: Greg KH <greg@kroah.com>
-cc: Jeff Lange <jlange6648@gmail.com>
Subject: USB: UHCI: No FSBR until device is configured
-Message-ID: <Pine.LNX.4.44L0.0601061418070.4973-100000@iolanthe.rowland.org>
+Message-ID: <Pine.LNX.4.44L0.0601231708160.7889-100000@iolanthe.rowland.org>
-There are a few USB devices that don't enumerate properly when FSBR is
-turned on. Currently uhci-hcd has started using FSBR as soon as a
-device receives its address, but now we've found a device that won't
-provide its descriptors when FSBR is on.
-Accordingly, this patch (as629) leaves FSBR off for any device that
-isn't in the CONFIGURED state. This will slow down the configuration
-process a tiny bit, but not enough to matter. Furthermore it imitates
-the way Windows behaves -- often a good thing to do.
+Some USB devices don't enumerate well with FSBR turned on. This patch
+keeps devices on the low-speed part of the schedule (which doesn't use
+FSBR) until they have been fully configured.
+
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
@@ -25,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- gregkh-2.6.orig/drivers/usb/host/uhci-q.c
+++ gregkh-2.6/drivers/usb/host/uhci-q.c
-@@ -602,9 +602,9 @@ static int uhci_submit_control(struct uh
+@@ -672,9 +672,9 @@ static int uhci_submit_control(struct uh
/* Low-speed transfers get a different queue, and won't hog the bus.
* Also, some devices enumerate better without FSBR; the easiest way
* to do that is to put URBs on the low-speed queue while the device
@@ -34,6 +29,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (urb->dev->speed == USB_SPEED_LOW ||
- urb->dev->state == USB_STATE_DEFAULT)
+ urb->dev->state != USB_STATE_CONFIGURED)
- qh->skel = uhci->skel_ls_control_qh;
+ skelqh = uhci->skel_ls_control_qh;
else {
- qh->skel = uhci->skel_fs_control_qh;
+ skelqh = uhci->skel_fs_control_qh;
diff --git a/usb/usb-usbcore-sets-up-root-hubs-earlier.patch b/usb/usb-usbcore-sets-up-root-hubs-earlier.patch
index aa8de1aa0d267..487b93a213bec 100644
--- a/usb/usb-usbcore-sets-up-root-hubs-earlier.patch
+++ b/usb/usb-usbcore-sets-up-root-hubs-earlier.patch
@@ -69,7 +69,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dev_err (parent_dev, "can't register root hub for %s, %d\n",
usb_dev->dev.bus_id, retval);
}
-@@ -1770,12 +1766,10 @@ int usb_add_hcd(struct usb_hcd *hcd,
+@@ -1772,12 +1768,10 @@ int usb_add_hcd(struct usb_hcd *hcd,
set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
@@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if ((retval = hcd_buffer_create(hcd)) != 0) {
dev_dbg(hcd->self.controller, "pool alloc failed\n");
return retval;
-@@ -1784,6 +1778,42 @@ int usb_add_hcd(struct usb_hcd *hcd,
+@@ -1786,6 +1780,42 @@ int usb_add_hcd(struct usb_hcd *hcd,
if ((retval = usb_register_bus(&hcd->self)) < 0)
goto err_register_bus;
@@ -129,7 +129,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (hcd->driver->irq) {
char buf[8], *bufp = buf;
-@@ -1815,56 +1845,32 @@ int usb_add_hcd(struct usb_hcd *hcd,
+@@ -1817,56 +1847,32 @@ int usb_add_hcd(struct usb_hcd *hcd,
(unsigned long long)hcd->rsrc_start);
}