diff options
Diffstat (limited to 'usb.current')
16 files changed, 0 insertions, 1873 deletions
diff --git a/usb.current/usb-add-all-configs-to-the-descriptors-attribute.patch b/usb.current/usb-add-all-configs-to-the-descriptors-attribute.patch deleted file mode 100644 index e0791073303ecd..00000000000000 --- a/usb.current/usb-add-all-configs-to-the-descriptors-attribute.patch +++ /dev/null @@ -1,94 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:31:02 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:40:42 -0400 (EDT) -Subject: USB: add all configs to the "descriptors" attribute -To: Greg KH <greg@kroah.com> -Cc: Daniel Drake <dsd@gentoo.org>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201637470.7165-100000@iolanthe.rowland.org> - - -This patch (as1094) changes the output of the "descriptors" binary -attribute. Now it will contain the device descriptor followed by all -the configuration descriptors, not just the descriptor for the current -config. - -Userspace libraries want to have access to the kernel's cached -descriptor information, so they can learn about device characteristics -without having to wake up suspended devices. So far the only user of -this attribute is the new libusb-1.0 library; thus changing its -contents shouldn't cause any problems. - -This should be considered for 2.6.26, if for no other reason than to -minimize the range of releases in which the attribute contains only the -current config descriptor. - -Also, it doesn't hurt that the patch removes the device locking -- -which was formerly needed in order to know for certain which config was -indeed current. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/sysfs.c | 44 +++++++++++++++++++++----------------------- - 1 file changed, 21 insertions(+), 23 deletions(-) - ---- a/drivers/usb/core/sysfs.c -+++ b/drivers/usb/core/sysfs.c -@@ -588,35 +588,33 @@ read_descriptors(struct kobject *kobj, s - container_of(kobj, struct device, kobj)); - size_t nleft = count; - size_t srclen, n; -+ int cfgno; -+ void *src; - -- usb_lock_device(udev); -- -- /* The binary attribute begins with the device descriptor */ -- srclen = sizeof(struct usb_device_descriptor); -- if (off < srclen) { -- n = min_t(size_t, nleft, srclen - off); -- memcpy(buf, off + (char *) &udev->descriptor, n); -- nleft -= n; -- buf += n; -- off = 0; -- } else { -- off -= srclen; -- } -- -- /* Then follows the raw descriptor entry for the current -- * configuration (config plus subsidiary descriptors). -+ /* The binary attribute begins with the device descriptor. -+ * Following that are the raw descriptor entries for all the -+ * configurations (config plus subsidiary descriptors). - */ -- if (udev->actconfig) { -- int cfgno = udev->actconfig - udev->config; -- -- srclen = __le16_to_cpu(udev->actconfig->desc.wTotalLength); -+ for (cfgno = -1; cfgno < udev->descriptor.bNumConfigurations && -+ nleft > 0; ++cfgno) { -+ if (cfgno < 0) { -+ src = &udev->descriptor; -+ srclen = sizeof(struct usb_device_descriptor); -+ } else { -+ src = udev->rawdescriptors[cfgno]; -+ srclen = __le16_to_cpu(udev->config[cfgno].desc. -+ wTotalLength); -+ } - if (off < srclen) { -- n = min_t(size_t, nleft, srclen - off); -- memcpy(buf, off + udev->rawdescriptors[cfgno], n); -+ n = min(nleft, srclen - (size_t) off); -+ memcpy(buf, src + off, n); - nleft -= n; -+ buf += n; -+ off = 0; -+ } else { -+ off -= srclen; - } - } -- usb_unlock_device(udev); - return count - nleft; - } - diff --git a/usb.current/usb-add-another-scanner-quirk.patch b/usb.current/usb-add-another-scanner-quirk.patch deleted file mode 100644 index 6fe945567f23d8..00000000000000 --- a/usb.current/usb-add-another-scanner-quirk.patch +++ /dev/null @@ -1,33 +0,0 @@ -From rene@exactcode.de Wed May 28 14:11:06 2008 -From: Ren� Rebe <rene@exactcode.de> -Date: Tue, 27 May 2008 09:05:46 +0200 -Subject: USB: add another scanner quirk -To: Alan Stern <stern@rowland.harvard.edu> -Cc: Greg Kroah-Hartman <gregkh@suse.de>, linux-usb-devel@lists.sourceforge.net, Archivista GmbH <webmaster@archivista.ch> -Message-ID: <483BB2CA.3020206@exactcode.de> - - -Like the HP53{00,70} scanner other devices of the OEM Avision require -the USB_QUIRK_STRING_FETCH_255 to correct set a configuration with -"recent" Linux kernels. - -Signed-off-by: Ren� Rebe <rene@exactcode.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/quirks.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -47,6 +47,10 @@ static const struct usb_device_id usb_qu - /* Edirol SD-20 */ - { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Avision AV600U */ -+ { USB_DEVICE(0x0638, 0x0a13), .driver_info = -+ USB_QUIRK_STRING_FETCH_255 }, -+ - /* M-Systems Flash Disk Pioneers */ - { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, - diff --git a/usb.current/usb-add-support-for-rokr-w5-in-unusual_devs.h.patch b/usb.current/usb-add-support-for-rokr-w5-in-unusual_devs.h.patch deleted file mode 100644 index a76cd0b5df856a..00000000000000 --- a/usb.current/usb-add-support-for-rokr-w5-in-unusual_devs.h.patch +++ /dev/null @@ -1,37 +0,0 @@ -From phil@ipom.com Wed May 28 14:10:43 2008 -From: Phil Dibowitz <phil@ipom.com> -Date: Mon, 26 May 2008 21:44:00 +0200 -Subject: USB: Add support for ROKR W5 in unusual_devs.h -To: gregkh@suse.de, linux-usb@vger.kernel.org, USB Storage List <usb-storage@lists.one-eyed-alien.net> -Message-ID: <483B1300.7070808@ipom.com> - -From: Javier Smaldone <javier@smaldone.com.ar> - -This patch adds support for rev 2 of an existing unusual_devs entry -enabling ROKR W5s to work. Greg, please apply. - -From: Javier Smaldone <javier@smaldone.com.ar> -Signed-off-by: Phil Dibowitz <phil@ipom.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -1716,10 +1716,12 @@ UNUSUAL_DEV( 0x22b8, 0x3010, 0x0001, 0x - /* - * Patch by Pete Zaitcev <zaitcev@redhat.com> - * Report by Mark Patton. Red Hat bz#208928. -+ * Added support for rev 0x0002 (Motorola ROKR W5) -+ * by Javier Smaldone <javier@smaldone.com.ar> - */ --UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0001, -+UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0002, - "Motorola", -- "RAZR V3i", -+ "RAZR V3i/ROKR W5", - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_CAPACITY), - diff --git a/usb.current/usb-ehci-fix-bug-in-iso-scheduling.patch b/usb.current/usb-ehci-fix-bug-in-iso-scheduling.patch deleted file mode 100644 index 31e7e778d646cc..00000000000000 --- a/usb.current/usb-ehci-fix-bug-in-iso-scheduling.patch +++ /dev/null @@ -1,162 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:34:41 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:59:10 -0400 (EDT) -Subject: USB: EHCI: fix bug in Iso scheduling -To: Greg KH <greg@kroah.com> -Cc: David Brownell <david-b@pacbell.net>, Laurent Pinchart <laurent.pinchart@skynet.be>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201653460.7165-100000@iolanthe.rowland.org> - - -This patch (as1098) changes the way ehci-hcd schedules its periodic -Iso transfers. That the current scheduling code is wrong is clear on -the face of it: Sometimes it returns -EL2NSYNC (meaning that an URB -couldn't be scheduled because it was submitted too late), but it does -this even when the URB_ISO_ASAP flag is set (meaning the URB should be -scheduled as soon as possible). - -The new code properly implements as-soon-as-possible scheduling, -assigning the next unexpired slot as the URB's starting point. It -also is more careful about checking for Iso URB completion: It doesn't -bother to check for activity during frames that are already over, -and it allows for the possibility that some of the URB's packets may -have raced the hardware when they were submitted and so never got used -(the packet status is set to -EXDEV). - -This fixes problems several people have experienced with USB video -applications. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ehci-sched.c | 67 +++++++++++++++++++++++++++--------------- - 1 file changed, 44 insertions(+), 23 deletions(-) - ---- a/drivers/usb/host/ehci-sched.c -+++ b/drivers/usb/host/ehci-sched.c -@@ -1349,18 +1349,27 @@ iso_stream_schedule ( - /* when's the last uframe this urb could start? */ - max = now + mod; - -- /* typical case: reuse current schedule. stream is still active, -- * and no gaps from host falling behind (irq delays etc) -+ /* Typical case: reuse current schedule, stream is still active. -+ * Hopefully there are no gaps from the host falling behind -+ * (irq delays etc), but if there are we'll take the next -+ * slot in the schedule, implicitly assuming URB_ISO_ASAP. - */ - if (likely (!list_empty (&stream->td_list))) { - start = stream->next_uframe; - if (start < now) - start += mod; -- if (likely ((start + sched->span) < max)) -- goto ready; -- /* else fell behind; someday, try to reschedule */ -- status = -EL2NSYNC; -- goto fail; -+ -+ /* Fell behind (by up to twice the slop amount)? */ -+ if (start >= max - 2 * 8 * SCHEDULE_SLOP) -+ start += stream->interval * DIV_ROUND_UP( -+ max - start, stream->interval) - mod; -+ -+ /* Tried to schedule too far into the future? */ -+ if (unlikely((start + sched->span) >= max)) { -+ status = -EFBIG; -+ goto fail; -+ } -+ goto ready; - } - - /* need to schedule; when's the next (u)frame we could start? -@@ -1613,6 +1622,9 @@ itd_complete ( - } else if (likely ((t & EHCI_ISOC_ACTIVE) == 0)) { - desc->status = 0; - desc->actual_length = EHCI_ITD_LENGTH (t); -+ } else { -+ /* URB was too late */ -+ desc->status = -EXDEV; - } - } - -@@ -2095,7 +2107,7 @@ done: - static void - scan_periodic (struct ehci_hcd *ehci) - { -- unsigned frame, clock, now_uframe, mod; -+ unsigned now_uframe, frame, clock, clock_frame, mod; - unsigned modified; - - mod = ehci->periodic_size << 3; -@@ -2111,6 +2123,7 @@ scan_periodic (struct ehci_hcd *ehci) - else - clock = now_uframe + mod - 1; - clock %= mod; -+ clock_frame = clock >> 3; - - for (;;) { - union ehci_shadow q, *q_p; -@@ -2157,22 +2170,26 @@ restart: - case Q_TYPE_ITD: - /* If this ITD is still active, leave it for - * later processing ... check the next entry. -+ * No need to check for activity unless the -+ * frame is current. - */ -- rmb (); -- for (uf = 0; uf < 8 && live; uf++) { -- if (0 == (q.itd->hw_transaction [uf] -- & ITD_ACTIVE(ehci))) -- continue; -- incomplete = true; -- q_p = &q.itd->itd_next; -- hw_p = &q.itd->hw_next; -- type = Q_NEXT_TYPE(ehci, -+ if (frame == clock_frame && live) { -+ rmb(); -+ for (uf = 0; uf < 8; uf++) { -+ if (q.itd->hw_transaction[uf] & -+ ITD_ACTIVE(ehci)) -+ break; -+ } -+ if (uf < 8) { -+ incomplete = true; -+ q_p = &q.itd->itd_next; -+ hw_p = &q.itd->hw_next; -+ type = Q_NEXT_TYPE(ehci, - q.itd->hw_next); -- q = *q_p; -- break; -+ q = *q_p; -+ break; -+ } - } -- if (uf < 8 && live) -- break; - - /* Take finished ITDs out of the schedule - * and process them: recycle, maybe report -@@ -2189,9 +2206,12 @@ restart: - case Q_TYPE_SITD: - /* If this SITD is still active, leave it for - * later processing ... check the next entry. -+ * No need to check for activity unless the -+ * frame is current. - */ -- if ((q.sitd->hw_results & SITD_ACTIVE(ehci)) -- && live) { -+ if (frame == clock_frame && live && -+ (q.sitd->hw_results & -+ SITD_ACTIVE(ehci))) { - incomplete = true; - q_p = &q.sitd->sitd_next; - hw_p = &q.sitd->hw_next; -@@ -2260,6 +2280,7 @@ restart: - - /* rescan the rest of this frame, then ... */ - clock = now; -+ clock_frame = clock >> 3; - } else { - now_uframe++; - now_uframe %= mod; diff --git a/usb.current/usb-ehci-fix-performance-regression.patch b/usb.current/usb-ehci-fix-performance-regression.patch deleted file mode 100644 index dbc2403a3f0942..00000000000000 --- a/usb.current/usb-ehci-fix-performance-regression.patch +++ /dev/null @@ -1,81 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:35:28 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:59:33 -0400 (EDT) -Subject: USB: EHCI: fix performance regression -To: Greg KH <greg@kroah.com> -Cc: David Brownell <david-b@pacbell.net>, Leonid <leonidv11@gmail.com>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201654490.7165-100000@iolanthe.rowland.org> - - -This patch (as1099) fixes a performance regression in ehci-hcd. The -fundamental problem is that queue headers get removed from the -schedule too quickly, since the code checks for a counter advancing -rather than making an actual time-based check. The latency involved -in removing the queue header and then relinking it can severely -degrade certain kinds of workloads. - -The patch replaces a simple counter with a timestamp derived from the -controller's uframe value. In addition, the delay for unlinking an -idle queue header is increased from 5 ms to 10 ms; since some -controllers (nVidia) have a latency of up to 1 ms for unlinking, this -reduces the relative impact from 20% to 10%. - -Finally, a logical error left over from the IAA watchdog-timer -conversion is corrected. Now the driver will always either unlink an -idle queue header or set up a timer to unlink it later. The old code -would sometimes fail to do either. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Cc: David Brownell <david-b@pacbell.net> -Cc: Leonid <leonidv11@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ehci-hcd.c | 3 ++- - drivers/usb/host/ehci-q.c | 15 ++++++++------- - 2 files changed, 10 insertions(+), 8 deletions(-) - ---- a/drivers/usb/host/ehci-hcd.c -+++ b/drivers/usb/host/ehci-hcd.c -@@ -84,7 +84,8 @@ static const char hcd_name [] = "ehci_hc - #define EHCI_IAA_MSECS 10 /* arbitrary */ - #define EHCI_IO_JIFFIES (HZ/10) /* io watchdog > irq_thresh */ - #define EHCI_ASYNC_JIFFIES (HZ/20) /* async idle timeout */ --#define EHCI_SHRINK_JIFFIES (HZ/200) /* async qh unlink delay */ -+#define EHCI_SHRINK_JIFFIES (HZ/100) /* async qh unlink delay */ -+#define EHCI_SHRINK_UFRAMES (10*8) /* same value in uframes */ - - /* Initial IRQ latency: faster than hw default */ - static int log2_irq_thresh = 0; // 0 to 6 ---- a/drivers/usb/host/ehci-q.c -+++ b/drivers/usb/host/ehci-q.c -@@ -1116,8 +1116,7 @@ static void scan_async (struct ehci_hcd - struct ehci_qh *qh; - enum ehci_timer_action action = TIMER_IO_WATCHDOG; - -- if (!++(ehci->stamp)) -- ehci->stamp++; -+ ehci->stamp = ehci_readl(ehci, &ehci->regs->frame_index); - timer_action_done (ehci, TIMER_ASYNC_SHRINK); - rescan: - qh = ehci->async->qh_next.qh; -@@ -1148,12 +1147,14 @@ rescan: - * doesn't stay idle for long. - * (plus, avoids some kind of re-activation race.) - */ -- if (list_empty (&qh->qtd_list)) { -- if (qh->stamp == ehci->stamp) -+ if (list_empty(&qh->qtd_list) && -+ qh->qh_state == QH_STATE_LINKED) { -+ if (!ehci->reclaim && -+ ((ehci->stamp - qh->stamp) & 8191) >= -+ EHCI_SHRINK_UFRAMES) -+ start_unlink_async(ehci, qh); -+ else - action = TIMER_ASYNC_SHRINK; -- else if (!ehci->reclaim -- && qh->qh_state == QH_STATE_LINKED) -- start_unlink_async (ehci, qh); - } - - qh = qh->qh_next.qh; diff --git a/usb.current/usb-ehci-fix-remote-wakeup-regression.patch b/usb.current/usb-ehci-fix-remote-wakeup-regression.patch deleted file mode 100644 index b33d5971f89b85..00000000000000 --- a/usb.current/usb-ehci-fix-remote-wakeup-regression.patch +++ /dev/null @@ -1,67 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:34:07 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:58:58 -0400 (EDT) -Subject: USB: EHCI: fix remote-wakeup regression -To: Greg KH <greg@kroah.com> -Cc: David Brownell <david-b@pacbell.net>, Lukas Hejtmanek <xhejtman@ics.muni.cz>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201652420.7165-100000@iolanthe.rowland.org> - - -This patch (as1097) fixes a bug in the remote-wakeup handling in -ehci-hcd. The driver currently does not keep track of whether the -change-suspend feature is enabled for each port; the feature is -automatically reset the first time it is read. But recent changes to -the hub driver require that the feature be read at least twice in -order to work properly. - -A bit-vector is added for storing the change-suspend feature values. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ehci-hub.c | 6 ++++-- - drivers/usb/host/ehci.h | 2 ++ - 2 files changed, 6 insertions(+), 2 deletions(-) - ---- a/drivers/usb/host/ehci.h -+++ b/drivers/usb/host/ehci.h -@@ -97,6 +97,8 @@ struct ehci_hcd { /* one per controlle - dedicated to the companion controller */ - unsigned long owned_ports; /* which ports are - owned by the companion during a bus suspend */ -+ unsigned long port_c_suspend; /* which ports have -+ the change-suspend feature turned on */ - - /* per-HC memory pools (could be per-bus, but ...) */ - struct dma_pool *qh_pool; /* qh per active urb */ ---- a/drivers/usb/host/ehci-hub.c -+++ b/drivers/usb/host/ehci-hub.c -@@ -609,7 +609,7 @@ static int ehci_hub_control ( - } - break; - case USB_PORT_FEAT_C_SUSPEND: -- /* we auto-clear this feature */ -+ clear_bit(wIndex, &ehci->port_c_suspend); - break; - case USB_PORT_FEAT_POWER: - if (HCS_PPC (ehci->hcs_params)) -@@ -688,7 +688,7 @@ static int ehci_hub_control ( - /* resume completed? */ - else if (time_after_eq(jiffies, - ehci->reset_done[wIndex])) { -- status |= 1 << USB_PORT_FEAT_C_SUSPEND; -+ set_bit(wIndex, &ehci->port_c_suspend); - ehci->reset_done[wIndex] = 0; - - /* stop resume signaling */ -@@ -765,6 +765,8 @@ static int ehci_hub_control ( - status |= 1 << USB_PORT_FEAT_RESET; - if (temp & PORT_POWER) - status |= 1 << USB_PORT_FEAT_POWER; -+ if (test_bit(wIndex, &ehci->port_c_suspend)) -+ status |= 1 << USB_PORT_FEAT_C_SUSPEND; - - #ifndef VERBOSE_DEBUG - if (status & ~0xffff) /* only if wPortChange is interesting */ diff --git a/usb.current/usb-ehci-fix-up-root-hub-tt-mess.patch b/usb.current/usb-ehci-fix-up-root-hub-tt-mess.patch deleted file mode 100644 index 86fa649c08b878..00000000000000 --- a/usb.current/usb-ehci-fix-up-root-hub-tt-mess.patch +++ /dev/null @@ -1,156 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:32:34 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:58:11 -0400 (EDT) -Subject: USB: EHCI: fix up root-hub TT mess -To: Greg KH <greg@kroah.com> -Cc: David Brownell <david-b@pacbell.net>, Lennert Buytenhek <buytenh@wantstofly.org>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201648050.7165-100000@iolanthe.rowland.org> - - -This patch (as1095) cleans up the HCD glue and several of the EHCI -bus-glue files. The ehci->is_tdi_rh_tt flag is redundant, since it -means the same thing as the hcd->has_tt flag, so it is removed and the -other flag used in its place. - -Some of the bus-glue files didn't get the relinquish_port method added -to their hc_driver structures. Although that routine currently -doesn't do anything for controllers with an integrated TT, in the -future it might. So the patch adds it where it is missing. - -Lastly, some of the bus-glue files have erroneous entries for their -hc_driver's suspend and resume methods. These method pointers are -specific to PCI and shouldn't be used otherwise. - -(The patch also includes an invisible whitespace fix.) - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> - ---- - drivers/usb/host/ehci-fsl.c | 6 +----- - drivers/usb/host/ehci-ixp4xx.c | 3 ++- - drivers/usb/host/ehci-orion.c | 7 ++----- - drivers/usb/host/ehci-pci.c | 3 +-- - drivers/usb/host/ehci-ppc-of.c | 1 + - drivers/usb/host/ehci.h | 3 +-- - 6 files changed, 8 insertions(+), 15 deletions(-) - ---- a/drivers/usb/host/ehci-fsl.c -+++ b/drivers/usb/host/ehci-fsl.c -@@ -269,7 +269,7 @@ static int ehci_fsl_setup(struct usb_hcd - if (retval) - return retval; - -- ehci->is_tdi_rh_tt = 1; -+ hcd->has_tt = 1; - - ehci->sbrn = 0x20; - -@@ -295,10 +295,6 @@ static const struct hc_driver ehci_fsl_h - */ - .reset = ehci_fsl_setup, - .start = ehci_run, --#ifdef CONFIG_PM -- .suspend = ehci_bus_suspend, -- .resume = ehci_bus_resume, --#endif - .stop = ehci_stop, - .shutdown = ehci_shutdown, - ---- a/drivers/usb/host/ehci.h -+++ b/drivers/usb/host/ehci.h -@@ -112,7 +112,6 @@ struct ehci_hcd { /* one per controlle - u32 command; - - /* SILICON QUIRKS */ -- unsigned is_tdi_rh_tt:1; /* TDI roothub with TT */ - unsigned no_selective_suspend:1; - unsigned has_fsl_port_bug:1; /* FreeScale */ - unsigned big_endian_mmio:1; -@@ -678,7 +677,7 @@ struct ehci_fstn { - * needed (mostly in root hub code). - */ - --#define ehci_is_TDI(e) ((e)->is_tdi_rh_tt) -+#define ehci_is_TDI(e) (ehci_to_hcd(e)->has_tt) - - /* Returns the speed of a device attached to a port on the root hub. */ - static inline unsigned int ---- a/drivers/usb/host/ehci-ixp4xx.c -+++ b/drivers/usb/host/ehci-ixp4xx.c -@@ -26,7 +26,7 @@ static int ixp4xx_ehci_init(struct usb_h - + HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase)); - ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); - -- ehci->is_tdi_rh_tt = 1; -+ hcd->has_tt = 1; - ehci_reset(ehci); - - retval = ehci_init(hcd); -@@ -58,6 +58,7 @@ static const struct hc_driver ixp4xx_ehc - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - #endif -+ .relinquish_port = ehci_relinquish_port, - }; - - static int ixp4xx_ehci_probe(struct platform_device *pdev) ---- a/drivers/usb/host/ehci-orion.c -+++ b/drivers/usb/host/ehci-orion.c -@@ -139,10 +139,6 @@ static const struct hc_driver ehci_orion - */ - .reset = ehci_orion_setup, - .start = ehci_run, --#ifdef CONFIG_PM -- .suspend = ehci_bus_suspend, -- .resume = ehci_bus_resume, --#endif - .stop = ehci_stop, - .shutdown = ehci_shutdown, - -@@ -165,6 +161,7 @@ static const struct hc_driver ehci_orion - .hub_control = ehci_hub_control, - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, -+ .relinquish_port = ehci_relinquish_port, - }; - - static void __init -@@ -250,7 +247,7 @@ static int __init ehci_orion_drv_probe(s - ehci->regs = hcd->regs + 0x100 + - HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase)); - ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); -- ehci->is_tdi_rh_tt = 1; -+ hcd->has_tt = 1; - ehci->sbrn = 0x20; - - /* ---- a/drivers/usb/host/ehci-pci.c -+++ b/drivers/usb/host/ehci-pci.c -@@ -129,7 +129,6 @@ static int ehci_pci_setup(struct usb_hcd - switch (pdev->vendor) { - case PCI_VENDOR_ID_TDI: - if (pdev->device == PCI_DEVICE_ID_TDI_EHCI) { -- ehci->is_tdi_rh_tt = 1; - hcd->has_tt = 1; - tdi_reset(ehci); - } -@@ -379,7 +378,7 @@ static const struct hc_driver ehci_pci_h - .hub_control = ehci_hub_control, - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, -- .relinquish_port = ehci_relinquish_port, -+ .relinquish_port = ehci_relinquish_port, - }; - - /*-------------------------------------------------------------------------*/ ---- a/drivers/usb/host/ehci-ppc-of.c -+++ b/drivers/usb/host/ehci-ppc-of.c -@@ -76,6 +76,7 @@ static const struct hc_driver ehci_ppc_o - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - #endif -+ .relinquish_port = ehci_relinquish_port, - }; - - diff --git a/usb.current/usb-ehci-suppress-unwanted-error-messages.patch b/usb.current/usb-ehci-suppress-unwanted-error-messages.patch deleted file mode 100644 index 40599c9067b6fd..00000000000000 --- a/usb.current/usb-ehci-suppress-unwanted-error-messages.patch +++ /dev/null @@ -1,159 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:33:25 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:58:29 -0400 (EDT) -Subject: USB: EHCI: suppress unwanted error messages -To: Greg KH <greg@kroah.com> -Cc: David Brownell <david-b@pacbell.net>, Ming Lei <tom.leiming@gmail.com>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201650580.7165-100000@iolanthe.rowland.org> - - -This patch (as1096) fixes an annoying problem: When a full-speed or -low-speed device is plugged into an EHCI controller, it fails to -enumerate at high speed and then is handed over to the companion -controller. But usbcore logs a misleading and unwanted error message -when the high-speed enumeration fails. - -The patch adds a new HCD method, port_handed_over, which asks whether -a port has been handed over to a companion controller. If it has, the -error message is suppressed. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -CC: David Brownell <david-b@pacbell.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/hcd.h | 2 ++ - drivers/usb/core/hub.c | 6 +++++- - drivers/usb/host/ehci-au1xxx.c | 1 + - drivers/usb/host/ehci-fsl.c | 1 + - drivers/usb/host/ehci-hub.c | 10 ++++++++++ - drivers/usb/host/ehci-ixp4xx.c | 1 + - drivers/usb/host/ehci-orion.c | 1 + - drivers/usb/host/ehci-pci.c | 1 + - drivers/usb/host/ehci-ppc-of.c | 1 + - drivers/usb/host/ehci-ppc-soc.c | 1 + - drivers/usb/host/ehci-ps3.c | 1 + - 11 files changed, 25 insertions(+), 1 deletion(-) - ---- a/drivers/usb/core/hcd.h -+++ b/drivers/usb/core/hcd.h -@@ -213,6 +213,8 @@ struct hc_driver { - - /* force handover of high-speed port to full-speed companion */ - void (*relinquish_port)(struct usb_hcd *, int); -+ /* has a port been handed over to a companion? */ -+ int (*port_handed_over)(struct usb_hcd *, int); - }; - - extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -2753,7 +2753,11 @@ loop: - if ((status == -ENOTCONN) || (status == -ENOTSUPP)) - break; - } -- dev_err(hub_dev, "unable to enumerate USB device on port %d\n", port1); -+ if (hub->hdev->parent || -+ !hcd->driver->port_handed_over || -+ !(hcd->driver->port_handed_over)(hcd, port1)) -+ dev_err(hub_dev, "unable to enumerate USB device on port %d\n", -+ port1); - - done: - hub_port_disable(hub, port1, 1); ---- a/drivers/usb/host/ehci-au1xxx.c -+++ b/drivers/usb/host/ehci-au1xxx.c -@@ -223,6 +223,7 @@ static const struct hc_driver ehci_au1xx - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - /*-------------------------------------------------------------------------*/ ---- a/drivers/usb/host/ehci-fsl.c -+++ b/drivers/usb/host/ehci-fsl.c -@@ -318,6 +318,7 @@ static const struct hc_driver ehci_fsl_h - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - static int ehci_fsl_drv_probe(struct platform_device *pdev) ---- a/drivers/usb/host/ehci-hub.c -+++ b/drivers/usb/host/ehci-hub.c -@@ -875,3 +875,13 @@ static void ehci_relinquish_port(struct - set_owner(ehci, --portnum, PORT_OWNER); - } - -+static int ehci_port_handed_over(struct usb_hcd *hcd, int portnum) -+{ -+ struct ehci_hcd *ehci = hcd_to_ehci(hcd); -+ u32 __iomem *reg; -+ -+ if (ehci_is_TDI(ehci)) -+ return 0; -+ reg = &ehci->regs->port_status[portnum - 1]; -+ return ehci_readl(ehci, reg) & PORT_OWNER; -+} ---- a/drivers/usb/host/ehci-ixp4xx.c -+++ b/drivers/usb/host/ehci-ixp4xx.c -@@ -59,6 +59,7 @@ static const struct hc_driver ixp4xx_ehc - .bus_resume = ehci_bus_resume, - #endif - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - static int ixp4xx_ehci_probe(struct platform_device *pdev) ---- a/drivers/usb/host/ehci-orion.c -+++ b/drivers/usb/host/ehci-orion.c -@@ -162,6 +162,7 @@ static const struct hc_driver ehci_orion - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - static void __init ---- a/drivers/usb/host/ehci-pci.c -+++ b/drivers/usb/host/ehci-pci.c -@@ -379,6 +379,7 @@ static const struct hc_driver ehci_pci_h - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - /*-------------------------------------------------------------------------*/ ---- a/drivers/usb/host/ehci-ppc-of.c -+++ b/drivers/usb/host/ehci-ppc-of.c -@@ -77,6 +77,7 @@ static const struct hc_driver ehci_ppc_o - .bus_resume = ehci_bus_resume, - #endif - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - ---- a/drivers/usb/host/ehci-ppc-soc.c -+++ b/drivers/usb/host/ehci-ppc-soc.c -@@ -163,6 +163,7 @@ static const struct hc_driver ehci_ppc_s - .bus_suspend = ehci_bus_suspend, - .bus_resume = ehci_bus_resume, - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - static int ehci_hcd_ppc_soc_drv_probe(struct platform_device *pdev) ---- a/drivers/usb/host/ehci-ps3.c -+++ b/drivers/usb/host/ehci-ps3.c -@@ -73,6 +73,7 @@ static const struct hc_driver ps3_ehci_h - .bus_resume = ehci_bus_resume, - #endif - .relinquish_port = ehci_relinquish_port, -+ .port_handed_over = ehci_port_handed_over, - }; - - static int ps3_ehci_probe(struct ps3_system_bus_device *dev) diff --git a/usb.current/usb-firmware-loader-driver-for-usb-apple-isight-camera.patch b/usb.current/usb-firmware-loader-driver-for-usb-apple-isight-camera.patch deleted file mode 100644 index 7cb8d904bca22c..00000000000000 --- a/usb.current/usb-firmware-loader-driver-for-usb-apple-isight-camera.patch +++ /dev/null @@ -1,191 +0,0 @@ -From mjg59@srcf.ucam.org Wed May 21 16:28:03 2008 -From: Matthew Garrett <mjg59@srcf.ucam.org> -Date: Tue, 20 May 2008 20:06:28 +0100 -Subject: USB: Firmware loader driver for USB Apple iSight camera -To: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org -Cc: gregkh@suse.de, bersace03@laposte.net, johannes@sipsolutions.de -Message-ID: <20080520190628.GA14580@srcf.ucam.org> -Content-Disposition: inline - - -Uninitialised Apple iSight drivers present with a distinctive USB ID. -Once firmware has been uploaded, they disconnect and reconnect with a -new ID. At this point they can be driven by the uvcvideo driver. As this -is unique to the Apple cameras and not functionality shared by any other -UVC devices, it makes sense to provide the firmware loading -functionality in a separate driver. This driver will read an isight.fw -file extracted from the Apple driver using the tools at -http://bersace03.free.fr/ift/ and upload it to the camera. It will also -handle the case where the device loses its firmware during hibernation -and must have it reloaded. - -Signed-off-by: Matthew Garrett <mjg@redhat.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/misc/Kconfig | 11 +++ - drivers/usb/misc/Makefile | 1 - drivers/usb/misc/isight_firmware.c | 131 +++++++++++++++++++++++++++++++++++++ - 3 files changed, 143 insertions(+) - ---- /dev/null -+++ b/drivers/usb/misc/isight_firmware.c -@@ -0,0 +1,131 @@ -+/* -+ * Driver for loading USB isight firmware -+ * -+ * Copyright (C) 2008 Matthew Garrett <mjg@redhat.com> -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the Free -+ * Software Foundation, version 2. -+ * -+ * The USB isight cameras in recent Apples are roughly compatible with the USB -+ * video class specification, and can be driven by uvcvideo. However, they -+ * need firmware to be loaded beforehand. After firmware loading, the device -+ * detaches from the USB bus and reattaches with a new device ID. It can then -+ * be claimed by the uvc driver. -+ * -+ * The firmware is non-free and must be extracted by the user. Tools to do this -+ * are available at http://bersace03.free.fr/ift/ -+ * -+ * The isight firmware loading was reverse engineered by Johannes Berg -+ * <johannes@sipsolutions.de>, and this driver is based on code by Ronald -+ * Bultje <rbultje@ronald.bitfreak.net> -+ */ -+ -+#include <linux/usb.h> -+#include <linux/firmware.h> -+#include <linux/errno.h> -+#include <linux/module.h> -+ -+static struct usb_device_id id_table[] = { -+ {USB_DEVICE(0x05ac, 0x8300)}, -+ {}, -+}; -+ -+MODULE_DEVICE_TABLE(usb, id_table); -+ -+static int isight_firmware_load(struct usb_interface *intf, -+ const struct usb_device_id *id) -+{ -+ struct usb_device *dev = interface_to_usbdev(intf); -+ int llen, len, req, ret = 0; -+ const struct firmware *firmware; -+ unsigned char *buf; -+ unsigned char data[4]; -+ char *ptr; -+ -+ if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) { -+ printk(KERN_ERR "Unable to load isight firmware\n"); -+ return -ENODEV; -+ } -+ -+ ptr = firmware->data; -+ -+ if (usb_control_msg -+ (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\1", 1, -+ 300) != 1) { -+ printk(KERN_ERR -+ "Failed to initialise isight firmware loader\n"); -+ ret = -ENODEV; -+ goto out; -+ } -+ -+ while (1) { -+ memcpy(data, ptr, 4); -+ len = (data[0] << 8 | data[1]); -+ req = (data[2] << 8 | data[3]); -+ ptr += 4; -+ -+ if (len == 0x8001) -+ break; /* success */ -+ else if (len == 0) -+ continue; -+ -+ for (; len > 0; req += 50) { -+ llen = len > 50 ? 50 : len; -+ len -= llen; -+ -+ buf = kmalloc(llen, GFP_KERNEL); -+ memcpy(buf, ptr, llen); -+ -+ ptr += llen; -+ -+ if (usb_control_msg -+ (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, req, 0, -+ buf, llen, 300) != llen) { -+ printk(KERN_ERR -+ "Failed to load isight firmware\n"); -+ kfree(buf); -+ ret = -ENODEV; -+ goto out; -+ } -+ -+ kfree(buf); -+ } -+ } -+ if (usb_control_msg -+ (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1, -+ 300) != 1) { -+ printk(KERN_ERR "isight firmware loading completion failed\n"); -+ ret = -ENODEV; -+ } -+out: -+ release_firmware(firmware); -+ return ret; -+} -+ -+static void isight_firmware_disconnect(struct usb_interface *intf) -+{ -+} -+ -+static struct usb_driver isight_firmware_driver = { -+ .name = "isight_firmware", -+ .probe = isight_firmware_load, -+ .disconnect = isight_firmware_disconnect, -+ .id_table = id_table, -+}; -+ -+static int __init isight_firmware_init(void) -+{ -+ return usb_register(&isight_firmware_driver); -+} -+ -+static void __exit isight_firmware_exit(void) -+{ -+ usb_deregister(&isight_firmware_driver); -+} -+ -+module_init(isight_firmware_init); -+module_exit(isight_firmware_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>"); ---- a/drivers/usb/misc/Kconfig -+++ b/drivers/usb/misc/Kconfig -@@ -269,3 +269,14 @@ config USB_TEST - See <http://www.linux-usb.org/usbtest/> for more information, - including sample test device firmware and "how to use it". - -+config USB_ISIGHTFW -+ tristate "iSight firmware loading support" -+ depends on USB -+ help -+ This driver loads firmware for USB Apple iSight cameras, allowing -+ them to be driven by the USB video class driver available at -+ http://linux-uvc.berlios.de -+ -+ The firmware for this driver must be extracted from the MacOS -+ driver beforehand. Tools for doing so are available at -+ http://bersace03.free.fr ---- a/drivers/usb/misc/Makefile -+++ b/drivers/usb/misc/Makefile -@@ -14,6 +14,7 @@ obj-$(CONFIG_USB_EMI62) += emi62.o - obj-$(CONFIG_USB_FTDI_ELAN) += ftdi-elan.o - obj-$(CONFIG_USB_IDMOUSE) += idmouse.o - obj-$(CONFIG_USB_IOWARRIOR) += iowarrior.o -+obj-$(CONFIG_USB_ISIGHTFW) += isight_firmware.o - obj-$(CONFIG_USB_LCD) += usblcd.o - obj-$(CONFIG_USB_LD) += ldusb.o - obj-$(CONFIG_USB_LED) += usbled.o diff --git a/usb.current/usb-fix-m600i-unusual_devs-entry.patch b/usb.current/usb-fix-m600i-unusual_devs-entry.patch deleted file mode 100644 index 1fc89687da37e6..00000000000000 --- a/usb.current/usb-fix-m600i-unusual_devs-entry.patch +++ /dev/null @@ -1,30 +0,0 @@ -From phil@ipom.com Wed May 28 14:10:26 2008 -From: Phil Dibowitz <phil@ipom.com> -Date: Mon, 26 May 2008 21:33:58 +0200 -Subject: USB: Fix M600i unusual_devs entry -To: gregkh@suse.de, linux-usb@vger.kernel.org, USB Storage List <usb-storage@lists.one-eyed-alien.net> -Message-ID: <483B10A6.6020801@ipom.com> - - -It turns out that the unusual_devs entry for the Motorola M600i needs -another flag. This patch adds it. Thanks to Atte Andr� Jensen -<atte@ballbreaker.dk>. - -Signed-off-by: Phil Dibowitz <phil@ipom.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -1522,7 +1522,7 @@ UNUSUAL_DEV( 0x0fce, 0xe031, 0x0000, 0x - "Sony Ericsson", - "M600i", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -+ US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), - - /* Reported by Kevin Cernekee <kpc-usbdev@gelato.uiuc.edu> - * Tested on hardware version 1.10. diff --git a/usb.current/usb-fix-possible-deadlock-involving-sysfs-attributes.patch b/usb.current/usb-fix-possible-deadlock-involving-sysfs-attributes.patch deleted file mode 100644 index 2cd201f194aef9..00000000000000 --- a/usb.current/usb-fix-possible-deadlock-involving-sysfs-attributes.patch +++ /dev/null @@ -1,81 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:30:31 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 May 2008 16:37:34 -0400 (EDT) -Subject: USB: fix possible deadlock involving sysfs attributes -To: Greg KH <greg@kroah.com> -Cc: USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0805201634370.7165-100000@iolanthe.rowland.org> - - -There is a potential deadlock when the usb_generic driver is unbound -from a device. The problem is that generic_disconnect() is called -with the device lock held, and it removes a bunch of device attributes -from sysfs. If a user task happens to be running an attribute method -at the time, the removal will block until the method returns. But at -least one of the attribute methods (the store routine for power/level) -needs to acquire the device lock! - -This patch (as1093) eliminates the deadlock by moving the calls to -create and remove the sysfs attributes from the usb_generic driver -into usb_new_device() and usb_disconnect(), where they can be invoked -without holding the device lock. - -Besides, the other sysfs attributes are created when the device is -registered and removed when the device is unregistered. So it seems -only fitting for the extra attributes to be created and removed at the -same time. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/generic.c | 5 ----- - drivers/usb/core/hub.c | 9 +++++++++ - 2 files changed, 9 insertions(+), 5 deletions(-) - ---- a/drivers/usb/core/generic.c -+++ b/drivers/usb/core/generic.c -@@ -155,9 +155,6 @@ static int generic_probe(struct usb_devi - { - int err, c; - -- /* put device-specific files into sysfs */ -- usb_create_sysfs_dev_files(udev); -- - /* Choose and set the configuration. This registers the interfaces - * with the driver core and lets interface drivers bind to them. - */ -@@ -189,8 +186,6 @@ static void generic_disconnect(struct us - * unconfigure the device */ - if (udev->actconfig) - usb_set_configuration(udev, -1); -- -- usb_remove_sysfs_dev_files(udev); - } - - #ifdef CONFIG_PM ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -1326,6 +1326,12 @@ void usb_disconnect(struct usb_device ** - - usb_unlock_device(udev); - -+ /* Remove the device-specific files from sysfs. This must be -+ * done with udev unlocked, because some of the attribute -+ * routines try to acquire the device lock. -+ */ -+ usb_remove_sysfs_dev_files(udev); -+ - /* Unregister the device. The device driver is responsible - * for removing the device files from usbfs and sysfs and for - * de-configuring the device. -@@ -1541,6 +1547,9 @@ int usb_new_device(struct usb_device *ud - goto fail; - } - -+ /* put device-specific files into sysfs */ -+ usb_create_sysfs_dev_files(udev); -+ - /* Tell the world! */ - announce_device(udev); - return err; diff --git a/usb.current/usb-fsl_usb2_udc-fix-recursive-lock.patch b/usb.current/usb-fsl_usb2_udc-fix-recursive-lock.patch deleted file mode 100644 index 1f41084a8de83d..00000000000000 --- a/usb.current/usb-fsl_usb2_udc-fix-recursive-lock.patch +++ /dev/null @@ -1,65 +0,0 @@ -From leoli@freescale.com Thu May 29 11:47:13 2008 -From: Li Yang <leoli@freescale.com> -Date: Thu, 29 May 2008 21:04:45 +0800 -Subject: USB: fsl_usb2_udc: fix recursive lock -To: gregkh@suse.de -Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Li Yang <leoli@freescale.com>, "Eugene T. Bordenkircher" <Eugene_Bordenkircher@selinc.com>, David Brownell <david-b@pacbell.net> -Message-ID: <1212066285-6013-1-git-send-email-leoli@freescale.com> - - -UDC needs to release lock before calling out to gadget driver, since -it may need to reenter. The change fixes kernel BUG observed on rt -kernel. - -> kernel BUG at kernel/rtmutex.c:683! -> stopped custom tracer. -> Oops: Exception in kernel mode, sig: 5 [#1] -> PREEMPT MPC834x ITX -> NIP: c021629c LR: c0216270 CTR: 00000000 -> REGS: df761d70 TRAP: 0700 Not tainted (2.6.23.9-rt13) -> MSR: 00021032 <ME,IR,DR> CR: 28000022 XER: 00000000 -> TASK = df632080[241] 'IRQ-38' THREAD: df760000 -> GPR00: 00000001 df761e20 df632080 00000000 11111111 00000000 df761e6c -> 00000000 -> GPR08: df761e48 00000000 df761e50 00000000 80000000 ede5cdde 1fffd000 -> 00800000 -> GPR16: ffffffff 00000000 007fff00 00000040 00000000 007ffeb0 00000000 -> 1fff8b08 -> GPR24: 00000000 00000026 00000000 df79a320 c026b2e8 c02240bc 00009032 -> df79a320 -> NIP [c021629c] rt_spin_lock_slowlock+0x9c/0x200 -> LR [c0216270] rt_spin_lock_slowlock+0x70/0x200 -> Call Trace: -> [df761e20] [c0216270] rt_spin_lock_slowlock+0x70/0x200 (unreliable) -> [df761e90] [c0182828] fsl_ep_disable+0xcc/0x154 -> [df761eb0] [c0184d30] eth_reset_config+0x88/0x1d0 -> [df761ed0] [c0184ec0] eth_disconnect+0x48/0x64 -> [df761ef0] [c01831a4] reset_queues+0x60/0x78 -> [df761f00] [c0183b74] fsl_udc_irq+0x9b8/0xa58 -> [df761f50] [c003ef30] handle_IRQ_event+0x64/0x100 -> [df761f80] [c003f758] thread_simple_irq+0x6c/0xc8 -> [df761fa0] [c003f888] do_irqd+0xd4/0x2e4 -> [df761fd0] [c0032284] kthread+0x50/0x8c -> [df761ff0] [c000f9b4] kernel_thread+0x44/0x60 - -Signed-off-by: Li Yang <leoli@freescale.com> -Cc: Eugene T. Bordenkircher <Eugene_Bordenkircher@selinc.com> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/fsl_usb2_udc.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/gadget/fsl_usb2_udc.c -+++ b/drivers/usb/gadget/fsl_usb2_udc.c -@@ -1627,7 +1627,9 @@ static int reset_queues(struct fsl_udc * - udc_reset_ep_queue(udc, pipe); - - /* report disconnect; the driver is already quiesced */ -+ spin_unlock(&udc->lock); - udc->driver->disconnect(&udc->gadget); -+ spin_lock(&udc->lock); - - return 0; - } diff --git a/usb.current/usb-ftdi_sio-add-support-for-matrix-orbital-pid-range.patch b/usb.current/usb-ftdi_sio-add-support-for-matrix-orbital-pid-range.patch deleted file mode 100644 index 2d2f10cc055949..00000000000000 --- a/usb.current/usb-ftdi_sio-add-support-for-matrix-orbital-pid-range.patch +++ /dev/null @@ -1,575 +0,0 @@ -From rmolenkamp@matrixorbital.ca Wed May 21 16:27:01 2008 -From: Ray Molenkamp <rmolenkamp@matrixorbital.ca> -Date: Wed, 21 May 2008 17:06:26 -0600 -Subject: USB: FTDI_SIO : Add support for Matrix Orbital PID Range -To: greg@kroah.com -Cc: linux-usb@vger.kernel.org -Message-ID: <4834AAF2.8000409@matrixorbital.ca> - - -This patch adds support for the range of PIDs -that have been allocated for FTDI based devices -at Matrix Orbital. - -A small number of units have been shipped early 2008 -with a faulty USB Descriptor. Products that may have -this issue have been marked with the existing quirk to -work around the problem. - -Signed-off-by: R. Molenkamp <rmolenkamp@matrixorbital.ca> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/ftdi_sio.c | 264 +++++++++++++++++++++++++++++++++++++++++ - drivers/usb/serial/ftdi_sio.h | 265 +++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 524 insertions(+), 5 deletions(-) - ---- a/drivers/usb/serial/ftdi_sio.c -+++ b/drivers/usb/serial/ftdi_sio.c -@@ -174,8 +174,270 @@ static struct usb_device_id id_table_com - { USB_DEVICE(FTDI_VID, FTDI_MTXORB_4_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_MTXORB_5_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_MTXORB_6_PID) }, -- { USB_DEVICE(MTXORB_VK_VID, MTXORB_VK_PID), -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0100_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0101_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0102_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0103_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0104_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0105_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0106_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0107_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0108_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0109_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_010F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0110_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0111_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0112_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0113_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0114_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0115_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0116_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0117_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0118_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0119_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_011F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0120_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0121_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0122_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0123_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0124_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0125_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0126_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0127_PID), - .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0128_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0129_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012C_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_012F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0130_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0131_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0132_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0133_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0134_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0135_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0136_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0137_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0138_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0139_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_013F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0140_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0141_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0142_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0143_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0144_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0145_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0146_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0147_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0148_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0149_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_014F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0150_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0151_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0152_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0153_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0154_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0155_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0156_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0157_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0158_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_mtxorb_hack_quirk }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0159_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_015F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0160_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0161_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0162_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0163_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0164_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0165_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0166_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0167_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0168_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0169_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_016F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0170_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0171_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0172_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0173_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0174_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0175_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0176_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0177_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0178_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0179_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_017F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0180_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0181_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0182_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0183_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0184_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0185_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0186_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0187_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0188_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0189_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_018F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0190_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0191_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0192_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0193_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0194_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0195_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0196_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0197_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0198_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_0199_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019A_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019B_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019C_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019D_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019E_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_019F_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01A9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AD_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01AF_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01B9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BD_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01BF_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01C9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CD_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01CF_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01D9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DD_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01DF_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01E9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01EA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01EB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01EC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01ED_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01EE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01EF_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F0_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F1_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F2_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F3_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F4_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F5_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F6_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F7_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F8_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01F9_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FA_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FB_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FC_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FD_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FE_PID) }, -+ { USB_DEVICE(MTXORB_VID,MTXORB_FTDI_RANGE_01FF_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_PIEGROUP_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_TNC_X_PID) }, ---- a/drivers/usb/serial/ftdi_sio.h -+++ b/drivers/usb/serial/ftdi_sio.h -@@ -114,11 +114,268 @@ - #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ - - /* -- * The following are the values for the Matrix Orbital VK204-25-USB -- * display, which use the FT232RL. -+ * The following are the values for the Matrix Orbital FTDI Range -+ * Anything in this range will use an FT232RL. - */ --#define MTXORB_VK_VID 0x1b3d --#define MTXORB_VK_PID 0x0158 -+#define MTXORB_VID 0x1B3D -+#define MTXORB_FTDI_RANGE_0100_PID 0x0100 -+#define MTXORB_FTDI_RANGE_0101_PID 0x0101 -+#define MTXORB_FTDI_RANGE_0102_PID 0x0102 -+#define MTXORB_FTDI_RANGE_0103_PID 0x0103 -+#define MTXORB_FTDI_RANGE_0104_PID 0x0104 -+#define MTXORB_FTDI_RANGE_0105_PID 0x0105 -+#define MTXORB_FTDI_RANGE_0106_PID 0x0106 -+#define MTXORB_FTDI_RANGE_0107_PID 0x0107 -+#define MTXORB_FTDI_RANGE_0108_PID 0x0108 -+#define MTXORB_FTDI_RANGE_0109_PID 0x0109 -+#define MTXORB_FTDI_RANGE_010A_PID 0x010A -+#define MTXORB_FTDI_RANGE_010B_PID 0x010B -+#define MTXORB_FTDI_RANGE_010C_PID 0x010C -+#define MTXORB_FTDI_RANGE_010D_PID 0x010D -+#define MTXORB_FTDI_RANGE_010E_PID 0x010E -+#define MTXORB_FTDI_RANGE_010F_PID 0x010F -+#define MTXORB_FTDI_RANGE_0110_PID 0x0110 -+#define MTXORB_FTDI_RANGE_0111_PID 0x0111 -+#define MTXORB_FTDI_RANGE_0112_PID 0x0112 -+#define MTXORB_FTDI_RANGE_0113_PID 0x0113 -+#define MTXORB_FTDI_RANGE_0114_PID 0x0114 -+#define MTXORB_FTDI_RANGE_0115_PID 0x0115 -+#define MTXORB_FTDI_RANGE_0116_PID 0x0116 -+#define MTXORB_FTDI_RANGE_0117_PID 0x0117 -+#define MTXORB_FTDI_RANGE_0118_PID 0x0118 -+#define MTXORB_FTDI_RANGE_0119_PID 0x0119 -+#define MTXORB_FTDI_RANGE_011A_PID 0x011A -+#define MTXORB_FTDI_RANGE_011B_PID 0x011B -+#define MTXORB_FTDI_RANGE_011C_PID 0x011C -+#define MTXORB_FTDI_RANGE_011D_PID 0x011D -+#define MTXORB_FTDI_RANGE_011E_PID 0x011E -+#define MTXORB_FTDI_RANGE_011F_PID 0x011F -+#define MTXORB_FTDI_RANGE_0120_PID 0x0120 -+#define MTXORB_FTDI_RANGE_0121_PID 0x0121 -+#define MTXORB_FTDI_RANGE_0122_PID 0x0122 -+#define MTXORB_FTDI_RANGE_0123_PID 0x0123 -+#define MTXORB_FTDI_RANGE_0124_PID 0x0124 -+#define MTXORB_FTDI_RANGE_0125_PID 0x0125 -+#define MTXORB_FTDI_RANGE_0126_PID 0x0126 -+#define MTXORB_FTDI_RANGE_0127_PID 0x0127 -+#define MTXORB_FTDI_RANGE_0128_PID 0x0128 -+#define MTXORB_FTDI_RANGE_0129_PID 0x0129 -+#define MTXORB_FTDI_RANGE_012A_PID 0x012A -+#define MTXORB_FTDI_RANGE_012B_PID 0x012B -+#define MTXORB_FTDI_RANGE_012C_PID 0x012C -+#define MTXORB_FTDI_RANGE_012D_PID 0x012D -+#define MTXORB_FTDI_RANGE_012E_PID 0x012E -+#define MTXORB_FTDI_RANGE_012F_PID 0x012F -+#define MTXORB_FTDI_RANGE_0130_PID 0x0130 -+#define MTXORB_FTDI_RANGE_0131_PID 0x0131 -+#define MTXORB_FTDI_RANGE_0132_PID 0x0132 -+#define MTXORB_FTDI_RANGE_0133_PID 0x0133 -+#define MTXORB_FTDI_RANGE_0134_PID 0x0134 -+#define MTXORB_FTDI_RANGE_0135_PID 0x0135 -+#define MTXORB_FTDI_RANGE_0136_PID 0x0136 -+#define MTXORB_FTDI_RANGE_0137_PID 0x0137 -+#define MTXORB_FTDI_RANGE_0138_PID 0x0138 -+#define MTXORB_FTDI_RANGE_0139_PID 0x0139 -+#define MTXORB_FTDI_RANGE_013A_PID 0x013A -+#define MTXORB_FTDI_RANGE_013B_PID 0x013B -+#define MTXORB_FTDI_RANGE_013C_PID 0x013C -+#define MTXORB_FTDI_RANGE_013D_PID 0x013D -+#define MTXORB_FTDI_RANGE_013E_PID 0x013E -+#define MTXORB_FTDI_RANGE_013F_PID 0x013F -+#define MTXORB_FTDI_RANGE_0140_PID 0x0140 -+#define MTXORB_FTDI_RANGE_0141_PID 0x0141 -+#define MTXORB_FTDI_RANGE_0142_PID 0x0142 -+#define MTXORB_FTDI_RANGE_0143_PID 0x0143 -+#define MTXORB_FTDI_RANGE_0144_PID 0x0144 -+#define MTXORB_FTDI_RANGE_0145_PID 0x0145 -+#define MTXORB_FTDI_RANGE_0146_PID 0x0146 -+#define MTXORB_FTDI_RANGE_0147_PID 0x0147 -+#define MTXORB_FTDI_RANGE_0148_PID 0x0148 -+#define MTXORB_FTDI_RANGE_0149_PID 0x0149 -+#define MTXORB_FTDI_RANGE_014A_PID 0x014A -+#define MTXORB_FTDI_RANGE_014B_PID 0x014B -+#define MTXORB_FTDI_RANGE_014C_PID 0x014C -+#define MTXORB_FTDI_RANGE_014D_PID 0x014D -+#define MTXORB_FTDI_RANGE_014E_PID 0x014E -+#define MTXORB_FTDI_RANGE_014F_PID 0x014F -+#define MTXORB_FTDI_RANGE_0150_PID 0x0150 -+#define MTXORB_FTDI_RANGE_0151_PID 0x0151 -+#define MTXORB_FTDI_RANGE_0152_PID 0x0152 -+#define MTXORB_FTDI_RANGE_0153_PID 0x0153 -+#define MTXORB_FTDI_RANGE_0154_PID 0x0154 -+#define MTXORB_FTDI_RANGE_0155_PID 0x0155 -+#define MTXORB_FTDI_RANGE_0156_PID 0x0156 -+#define MTXORB_FTDI_RANGE_0157_PID 0x0157 -+#define MTXORB_FTDI_RANGE_0158_PID 0x0158 -+#define MTXORB_FTDI_RANGE_0159_PID 0x0159 -+#define MTXORB_FTDI_RANGE_015A_PID 0x015A -+#define MTXORB_FTDI_RANGE_015B_PID 0x015B -+#define MTXORB_FTDI_RANGE_015C_PID 0x015C -+#define MTXORB_FTDI_RANGE_015D_PID 0x015D -+#define MTXORB_FTDI_RANGE_015E_PID 0x015E -+#define MTXORB_FTDI_RANGE_015F_PID 0x015F -+#define MTXORB_FTDI_RANGE_0160_PID 0x0160 -+#define MTXORB_FTDI_RANGE_0161_PID 0x0161 -+#define MTXORB_FTDI_RANGE_0162_PID 0x0162 -+#define MTXORB_FTDI_RANGE_0163_PID 0x0163 -+#define MTXORB_FTDI_RANGE_0164_PID 0x0164 -+#define MTXORB_FTDI_RANGE_0165_PID 0x0165 -+#define MTXORB_FTDI_RANGE_0166_PID 0x0166 -+#define MTXORB_FTDI_RANGE_0167_PID 0x0167 -+#define MTXORB_FTDI_RANGE_0168_PID 0x0168 -+#define MTXORB_FTDI_RANGE_0169_PID 0x0169 -+#define MTXORB_FTDI_RANGE_016A_PID 0x016A -+#define MTXORB_FTDI_RANGE_016B_PID 0x016B -+#define MTXORB_FTDI_RANGE_016C_PID 0x016C -+#define MTXORB_FTDI_RANGE_016D_PID 0x016D -+#define MTXORB_FTDI_RANGE_016E_PID 0x016E -+#define MTXORB_FTDI_RANGE_016F_PID 0x016F -+#define MTXORB_FTDI_RANGE_0170_PID 0x0170 -+#define MTXORB_FTDI_RANGE_0171_PID 0x0171 -+#define MTXORB_FTDI_RANGE_0172_PID 0x0172 -+#define MTXORB_FTDI_RANGE_0173_PID 0x0173 -+#define MTXORB_FTDI_RANGE_0174_PID 0x0174 -+#define MTXORB_FTDI_RANGE_0175_PID 0x0175 -+#define MTXORB_FTDI_RANGE_0176_PID 0x0176 -+#define MTXORB_FTDI_RANGE_0177_PID 0x0177 -+#define MTXORB_FTDI_RANGE_0178_PID 0x0178 -+#define MTXORB_FTDI_RANGE_0179_PID 0x0179 -+#define MTXORB_FTDI_RANGE_017A_PID 0x017A -+#define MTXORB_FTDI_RANGE_017B_PID 0x017B -+#define MTXORB_FTDI_RANGE_017C_PID 0x017C -+#define MTXORB_FTDI_RANGE_017D_PID 0x017D -+#define MTXORB_FTDI_RANGE_017E_PID 0x017E -+#define MTXORB_FTDI_RANGE_017F_PID 0x017F -+#define MTXORB_FTDI_RANGE_0180_PID 0x0180 -+#define MTXORB_FTDI_RANGE_0181_PID 0x0181 -+#define MTXORB_FTDI_RANGE_0182_PID 0x0182 -+#define MTXORB_FTDI_RANGE_0183_PID 0x0183 -+#define MTXORB_FTDI_RANGE_0184_PID 0x0184 -+#define MTXORB_FTDI_RANGE_0185_PID 0x0185 -+#define MTXORB_FTDI_RANGE_0186_PID 0x0186 -+#define MTXORB_FTDI_RANGE_0187_PID 0x0187 -+#define MTXORB_FTDI_RANGE_0188_PID 0x0188 -+#define MTXORB_FTDI_RANGE_0189_PID 0x0189 -+#define MTXORB_FTDI_RANGE_018A_PID 0x018A -+#define MTXORB_FTDI_RANGE_018B_PID 0x018B -+#define MTXORB_FTDI_RANGE_018C_PID 0x018C -+#define MTXORB_FTDI_RANGE_018D_PID 0x018D -+#define MTXORB_FTDI_RANGE_018E_PID 0x018E -+#define MTXORB_FTDI_RANGE_018F_PID 0x018F -+#define MTXORB_FTDI_RANGE_0190_PID 0x0190 -+#define MTXORB_FTDI_RANGE_0191_PID 0x0191 -+#define MTXORB_FTDI_RANGE_0192_PID 0x0192 -+#define MTXORB_FTDI_RANGE_0193_PID 0x0193 -+#define MTXORB_FTDI_RANGE_0194_PID 0x0194 -+#define MTXORB_FTDI_RANGE_0195_PID 0x0195 -+#define MTXORB_FTDI_RANGE_0196_PID 0x0196 -+#define MTXORB_FTDI_RANGE_0197_PID 0x0197 -+#define MTXORB_FTDI_RANGE_0198_PID 0x0198 -+#define MTXORB_FTDI_RANGE_0199_PID 0x0199 -+#define MTXORB_FTDI_RANGE_019A_PID 0x019A -+#define MTXORB_FTDI_RANGE_019B_PID 0x019B -+#define MTXORB_FTDI_RANGE_019C_PID 0x019C -+#define MTXORB_FTDI_RANGE_019D_PID 0x019D -+#define MTXORB_FTDI_RANGE_019E_PID 0x019E -+#define MTXORB_FTDI_RANGE_019F_PID 0x019F -+#define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 -+#define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 -+#define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 -+#define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 -+#define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 -+#define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 -+#define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 -+#define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 -+#define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 -+#define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 -+#define MTXORB_FTDI_RANGE_01AA_PID 0x01AA -+#define MTXORB_FTDI_RANGE_01AB_PID 0x01AB -+#define MTXORB_FTDI_RANGE_01AC_PID 0x01AC -+#define MTXORB_FTDI_RANGE_01AD_PID 0x01AD -+#define MTXORB_FTDI_RANGE_01AE_PID 0x01AE -+#define MTXORB_FTDI_RANGE_01AF_PID 0x01AF -+#define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 -+#define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 -+#define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 -+#define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 -+#define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 -+#define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 -+#define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 -+#define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 -+#define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 -+#define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 -+#define MTXORB_FTDI_RANGE_01BA_PID 0x01BA -+#define MTXORB_FTDI_RANGE_01BB_PID 0x01BB -+#define MTXORB_FTDI_RANGE_01BC_PID 0x01BC -+#define MTXORB_FTDI_RANGE_01BD_PID 0x01BD -+#define MTXORB_FTDI_RANGE_01BE_PID 0x01BE -+#define MTXORB_FTDI_RANGE_01BF_PID 0x01BF -+#define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 -+#define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 -+#define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 -+#define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 -+#define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 -+#define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 -+#define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 -+#define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 -+#define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 -+#define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 -+#define MTXORB_FTDI_RANGE_01CA_PID 0x01CA -+#define MTXORB_FTDI_RANGE_01CB_PID 0x01CB -+#define MTXORB_FTDI_RANGE_01CC_PID 0x01CC -+#define MTXORB_FTDI_RANGE_01CD_PID 0x01CD -+#define MTXORB_FTDI_RANGE_01CE_PID 0x01CE -+#define MTXORB_FTDI_RANGE_01CF_PID 0x01CF -+#define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 -+#define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 -+#define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 -+#define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 -+#define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 -+#define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 -+#define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 -+#define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 -+#define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 -+#define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 -+#define MTXORB_FTDI_RANGE_01DA_PID 0x01DA -+#define MTXORB_FTDI_RANGE_01DB_PID 0x01DB -+#define MTXORB_FTDI_RANGE_01DC_PID 0x01DC -+#define MTXORB_FTDI_RANGE_01DD_PID 0x01DD -+#define MTXORB_FTDI_RANGE_01DE_PID 0x01DE -+#define MTXORB_FTDI_RANGE_01DF_PID 0x01DF -+#define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 -+#define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 -+#define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 -+#define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 -+#define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 -+#define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 -+#define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 -+#define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 -+#define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 -+#define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 -+#define MTXORB_FTDI_RANGE_01EA_PID 0x01EA -+#define MTXORB_FTDI_RANGE_01EB_PID 0x01EB -+#define MTXORB_FTDI_RANGE_01EC_PID 0x01EC -+#define MTXORB_FTDI_RANGE_01ED_PID 0x01ED -+#define MTXORB_FTDI_RANGE_01EE_PID 0x01EE -+#define MTXORB_FTDI_RANGE_01EF_PID 0x01EF -+#define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 -+#define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 -+#define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 -+#define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 -+#define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 -+#define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 -+#define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 -+#define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 -+#define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 -+#define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 -+#define MTXORB_FTDI_RANGE_01FA_PID 0x01FA -+#define MTXORB_FTDI_RANGE_01FB_PID 0x01FB -+#define MTXORB_FTDI_RANGE_01FC_PID 0x01FC -+#define MTXORB_FTDI_RANGE_01FD_PID 0x01FD -+#define MTXORB_FTDI_RANGE_01FE_PID 0x01FE -+#define MTXORB_FTDI_RANGE_01FF_PID 0x01FF -+ -+ - - /* Interbiometrics USB I/O Board */ - /* Developed for Interbiometrics by Rudolf Gugler */ diff --git a/usb.current/usb-pl2303-another-product-id.patch b/usb.current/usb-pl2303-another-product-id.patch deleted file mode 100644 index 4cbd2b5d1435d6..00000000000000 --- a/usb.current/usb-pl2303-another-product-id.patch +++ /dev/null @@ -1,41 +0,0 @@ -From steve@gnusis.org Wed May 28 14:12:33 2008 -From: Steve Murphy <steve@gnusis.org> -Date: Fri, 23 May 2008 23:39:05 +0530 -Subject: USB: pl2303: another product ID -To: greg@kroah.com -Message-ID: <48370841.4090008@gnusis.org> - -I've just got a USB GPRS/EDGE modem branded Manufacturer Micromax Model -MMX610U (see http://www.airtel.in/level2_t3data.aspx?path=1/106/179) -working by adding another product ID to pl2303. Modem info reports same -module as Max Arnold's i.e.SIMCOM SIM600 but with product ID 0x0612 -(cf Ox0611). - -From: Steve Murphy <steve@gnusis.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/pl2303.c | 1 + - drivers/usb/serial/pl2303.h | 1 + - 2 files changed, 2 insertions(+) - ---- a/drivers/usb/serial/pl2303.c -+++ b/drivers/usb/serial/pl2303.c -@@ -56,6 +56,7 @@ static struct usb_device_id id_table [] - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) }, - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) }, - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) }, -+ { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MMX) }, - { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, - { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, - { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, ---- a/drivers/usb/serial/pl2303.h -+++ b/drivers/usb/serial/pl2303.h -@@ -14,6 +14,7 @@ - #define PL2303_PRODUCT_ID_PHAROS 0xaaa0 - #define PL2303_PRODUCT_ID_RSAQ3 0xaaa2 - #define PL2303_PRODUCT_ID_ALDIGA 0x0611 -+#define PL2303_PRODUCT_ID_MMX 0x0612 - - #define ATEN_VENDOR_ID 0x0557 - #define ATEN_VENDOR_ID2 0x0547 diff --git a/usb.current/usb-usb-serial-option-don-t-match-huawei-driver-cd-images.patch b/usb.current/usb-usb-serial-option-don-t-match-huawei-driver-cd-images.patch deleted file mode 100644 index a7ef990993f4e5..00000000000000 --- a/usb.current/usb-usb-serial-option-don-t-match-huawei-driver-cd-images.patch +++ /dev/null @@ -1,69 +0,0 @@ -From kernel@mkarcher.dialup.fu-berlin.de Wed May 28 15:01:10 2008 -From: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> -Date: Wed, 28 May 2008 23:58:18 +0200 -Subject: USB: usb-serial: option: Don't match Huawei driver CD images -To: Greg KH <greg@kroah.com> -Cc: smurf@smurf.noris.de, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org -Message-ID: <1212011898.11658.2.camel@hermes2.karcher.local> - - -From: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> - -Add the interface info matching to all Huawei cards, as they all also -contain a Mass Storage Device interface (usually containing Windows -drivers) which should not get bound by this driver. - -See also drivers/usb/storage/unusual_devs.h - -Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -236,25 +236,25 @@ static struct usb_device_id option_ids[] - { 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(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, -+ { 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) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1413) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1414) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1415) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1416) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418) }, -- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 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_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_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_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) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1413, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1414, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1415, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1416, 0xff, 0xff, 0xff) }, -+ { 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(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 */ diff --git a/usb.current/usb-usb-storage-unusual_devs-update-for-cypress-atacb.patch b/usb.current/usb-usb-storage-unusual_devs-update-for-cypress-atacb.patch deleted file mode 100644 index 89b95c1c12ac9b..00000000000000 --- a/usb.current/usb-usb-storage-unusual_devs-update-for-cypress-atacb.patch +++ /dev/null @@ -1,32 +0,0 @@ -From stern@rowland.harvard.edu Wed May 21 16:36:12 2008 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Wed, 21 May 2008 13:53:01 -0400 (EDT) -Subject: USB: usb-storage: unusual_devs update for Cypress ATACB -To: Greg KH <greg@kroah.com>, Phil Dibowitz <phil@ipom.com> -Cc: Jan Kees Joosse <jcjoosse@gmail.com>, USB list <linux-usb@vger.kernel.org>, USB Storage list <usb-storage@lists.one-eyed-alien.net> -Message-ID: <Pine.LNX.4.44L0.0805211351580.3409-100000@iolanthe.rowland.org> - - -This patch (as1101) updates the unusual_devs entry for the Cypress -ATACB pass-through. The protocol field is changed from US_PR_BULK to -US_PR_DEVICE, since the Cypress devices already set bInterfaceProtocol -to Bulk-only. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -405,7 +405,7 @@ UNUSUAL_DEV( 0x04a5, 0x3010, 0x0100, 0x - UNUSUAL_DEV( 0x04b4, 0x6830, 0x0000, 0x9999, - "Cypress", - "Cypress AT2LP", -- US_SC_CYP_ATACB, US_PR_BULK, NULL, -+ US_SC_CYP_ATACB, US_PR_DEVICE, NULL, - 0), - #endif - |
