diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-09-03 11:30:16 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-09-03 11:30:16 -0700 |
| commit | e422188b040abcae963a7a3099fd0d6aff7b6747 (patch) | |
| tree | 9c11971039181c63c64c640d7257a6251a1b6abe | |
| parent | 1ca42735e263e47d8f37557a46fcbbe38972f2d4 (diff) | |
| download | patches-e422188b040abcae963a7a3099fd0d6aff7b6747.tar.gz | |
usb patches
| -rw-r--r-- | series | 6 | ||||
| -rw-r--r-- | usb.current/usb-fix-ehci-periodic-transfers.patch | 127 | ||||
| -rw-r--r-- | usb.current/usb-fixing-nokia-3310c-in-storage-mode.patch | 36 | ||||
| -rw-r--r-- | usb.current/usb-gadget-fix-omap_udc-dma-regression.patch | 45 | ||||
| -rw-r--r-- | usb.current/usb-musb-fix-include-path.patch | 61 | ||||
| -rw-r--r-- | usb.current/usb-update-of-documentation-usb-anchors.txt.patch | 43 |
6 files changed, 318 insertions, 0 deletions
@@ -22,6 +22,12 @@ usb.current/usb-ehci-fix-some-ehci-hangs-and-crashes.patch usb.current/usb-fix-the-nokia-6300-storage-mode.patch usb.current/usb-correct-sierra-wireless-usb-evdo-modem-device-id.patch usb.current/usb-fix-hcd-interrupt-disabling.patch +usb.current/usb-update-of-documentation-usb-anchors.txt.patch +usb.current/usb-gadget-fix-omap_udc-dma-regression.patch +usb.current/usb-fixing-nokia-3310c-in-storage-mode.patch +usb.current/usb-musb-fix-include-path.patch +usb.current/usb-fix-ehci-periodic-transfers.patch + usb.current/usb-added-driver-for-a-delcom-usb-7-segment-led-display.patch usb.current/usb-add-usb-test-and-measurement-class-driver.patch diff --git a/usb.current/usb-fix-ehci-periodic-transfers.patch b/usb.current/usb-fix-ehci-periodic-transfers.patch new file mode 100644 index 00000000000000..a9b2333b22786b --- /dev/null +++ b/usb.current/usb-fix-ehci-periodic-transfers.patch @@ -0,0 +1,127 @@ +From david-b@pacbell.net Wed Sep 3 11:20:17 2008 +From: David Brownell <david-b@pacbell.net> +Date: Tue, 26 Aug 2008 23:35:04 -0700 +Subject: USB: fix EHCI periodic transfers +To: amruth_pv@yahoo.com +Cc: Alan Stern <stern@rowland.harvard.edu>, Karsten Wiese <fzu@wemgehoertderstaat.de>, Oliver Neukum <oliver@neukum.org>, Greg KH <greg@kroah.com> +Message-ID: <200808262335.05204.david-b@pacbell.net> +Content-Disposition: inline + +From: David Brownell <dbrownell@users.sourceforge.net> + +As noted by Stefan Neis <Stefan.Neis@kobil.com>, we had a recent +regression with EHCI periodic transfers, in some (seemingly not +all that common) cases. + +The root cause was that the schedule activation was only loosely +coupled to the addition or removal of transfers, so two different +execution contexts could both think they had to deactivate (or +conversely activate) the schedule. So this fix tightens that +coupling, managing it more like a refcount. + +Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/host/ehci-sched.c | 32 ++++++++++++++------------------ + 1 file changed, 14 insertions(+), 18 deletions(-) + +--- a/drivers/usb/host/ehci-sched.c ++++ b/drivers/usb/host/ehci-sched.c +@@ -437,6 +437,9 @@ static int enable_periodic (struct ehci_ + u32 cmd; + int status; + ++ if (ehci->periodic_sched++) ++ return 0; ++ + /* did clearing PSE did take effect yet? + * takes effect only at frame boundaries... + */ +@@ -461,6 +464,9 @@ static int disable_periodic (struct ehci + u32 cmd; + int status; + ++ if (--ehci->periodic_sched) ++ return 0; ++ + /* did setting PSE not take effect yet? + * takes effect only at frame boundaries... + */ +@@ -544,13 +550,10 @@ static int qh_link_periodic (struct ehci + : (qh->usecs * 8); + + /* maybe enable periodic schedule processing */ +- if (!ehci->periodic_sched++) +- return enable_periodic (ehci); +- +- return 0; ++ return enable_periodic(ehci); + } + +-static void qh_unlink_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) ++static int qh_unlink_periodic(struct ehci_hcd *ehci, struct ehci_qh *qh) + { + unsigned i; + unsigned period; +@@ -586,9 +589,7 @@ static void qh_unlink_periodic (struct e + qh_put (qh); + + /* maybe turn off periodic schedule */ +- ehci->periodic_sched--; +- if (!ehci->periodic_sched) +- (void) disable_periodic (ehci); ++ return disable_periodic(ehci); + } + + static void intr_deschedule (struct ehci_hcd *ehci, struct ehci_qh *qh) +@@ -1562,9 +1563,7 @@ itd_link_urb ( + urb->hcpriv = NULL; + + timer_action (ehci, TIMER_IO_WATCHDOG); +- if (unlikely (!ehci->periodic_sched++)) +- return enable_periodic (ehci); +- return 0; ++ return enable_periodic(ehci); + } + + #define ISO_ERRS (EHCI_ISOC_BUF_ERR | EHCI_ISOC_BABBLE | EHCI_ISOC_XACTERR) +@@ -1642,7 +1641,7 @@ itd_complete ( + ehci_urb_done(ehci, urb, 0); + retval = true; + urb = NULL; +- ehci->periodic_sched--; ++ (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + + if (unlikely (list_empty (&stream->td_list))) { +@@ -1951,9 +1950,7 @@ sitd_link_urb ( + urb->hcpriv = NULL; + + timer_action (ehci, TIMER_IO_WATCHDOG); +- if (!ehci->periodic_sched++) +- return enable_periodic (ehci); +- return 0; ++ return enable_periodic(ehci); + } + + /*-------------------------------------------------------------------------*/ +@@ -2019,7 +2016,7 @@ sitd_complete ( + ehci_urb_done(ehci, urb, 0); + retval = true; + urb = NULL; +- ehci->periodic_sched--; ++ (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + + if (list_empty (&stream->td_list)) { +@@ -2243,8 +2240,7 @@ restart: + if (unlikely (modified)) { + if (likely(ehci->periodic_sched > 0)) + goto restart; +- /* maybe we can short-circuit this scan! */ +- disable_periodic(ehci); ++ /* short-circuit this scan */ + now_uframe = clock; + break; + } diff --git a/usb.current/usb-fixing-nokia-3310c-in-storage-mode.patch b/usb.current/usb-fixing-nokia-3310c-in-storage-mode.patch new file mode 100644 index 00000000000000..ef8f99ec2bf181 --- /dev/null +++ b/usb.current/usb-fixing-nokia-3310c-in-storage-mode.patch @@ -0,0 +1,36 @@ +From filip@blueturtle.nu Wed Sep 3 11:18:04 2008 +From: Filip Joelsson <filip@blueturtle.nu> +Date: Sun, 31 Aug 2008 08:22:16 +0200 +Subject: USB: Fixing Nokia 3310c in storage mode +To: phil@ipom.com +Cc: linux-usb@vger.kernel.org, usb-storage@lists.one-eyed-alien.net +Message-ID: <48BA3898.7010707@blueturtle.nu> + + +I had trouble connecting my cell phone as a storage device - so I added +it to the unusual_devs.h list. I had trouble with the bcdDeviceMin and +Max values - so after some experimenting I made it pretty inclusive. + +From: Filip Joelsson <filip@blueturtle.nu> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/storage/unusual_devs.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -160,6 +160,13 @@ UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + ++/* Reported by Filip Joelsson <filip@blueturtle.nu> */ ++UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600, ++ "Nokia", ++ "Nokia 3110c", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ US_FL_FIX_CAPACITY ), ++ + /* Reported by Mario Rettig <mariorettig@web.de> */ + UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, + "Nokia", diff --git a/usb.current/usb-gadget-fix-omap_udc-dma-regression.patch b/usb.current/usb-gadget-fix-omap_udc-dma-regression.patch new file mode 100644 index 00000000000000..f080e9458eff7b --- /dev/null +++ b/usb.current/usb-gadget-fix-omap_udc-dma-regression.patch @@ -0,0 +1,45 @@ +From david-b@pacbell.net Wed Sep 3 11:17:37 2008 +From: David Brownell <david-b@pacbell.net> +Date: Sun, 31 Aug 2008 18:04:27 -0700 +Subject: usb gadget: fix omap_udc DMA regression +To: linux-usb@vger.kernel.org +Cc: Greg KH <greg@kroah.com>, Russell King <rmk@arm.linux.org.uk> +Message-ID: <200808311804.27829.david-b@pacbell.net> +Content-Disposition: inline + + +From: David Brownell <dbrownell@users.sourceforge.net> + +This resolves another regression caused by the "use omap_read/write +instead of __REG" patch: the hardware address used for DMA to/from +the UDC became wrong. Bug noted by Russell King. + +Reported-by: Russell King <rmk@arm.linux.org.uk> +Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> +Acked-by: Russell King <rmk@arm.linux.org.uk> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/gadget/omap_udc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/gadget/omap_udc.c ++++ b/drivers/usb/gadget/omap_udc.c +@@ -787,7 +787,7 @@ static void dma_channel_claim(struct oma + omap_set_dma_dest_params(ep->lch, + OMAP_DMA_PORT_TIPB, + OMAP_DMA_AMODE_CONSTANT, +- (unsigned long) io_v2p(UDC_DATA_DMA), ++ UDC_DATA_DMA, + 0, 0); + } + } else { +@@ -804,7 +804,7 @@ static void dma_channel_claim(struct oma + omap_set_dma_src_params(ep->lch, + OMAP_DMA_PORT_TIPB, + OMAP_DMA_AMODE_CONSTANT, +- (unsigned long) io_v2p(UDC_DATA_DMA), ++ UDC_DATA_DMA, + 0, 0); + /* EMIFF or SDRC */ + omap_set_dma_dest_burst_mode(ep->lch, diff --git a/usb.current/usb-musb-fix-include-path.patch b/usb.current/usb-musb-fix-include-path.patch new file mode 100644 index 00000000000000..894face50961fd --- /dev/null +++ b/usb.current/usb-musb-fix-include-path.patch @@ -0,0 +1,61 @@ +From me@felipebalbi.com Wed Sep 3 11:18:46 2008 +From: Felipe Balbi <me@felipebalbi.com> +Date: Sat, 30 Aug 2008 19:42:02 +0300 +Subject: usb: musb: fix include path +To: linux-usb@vger.kernel.org +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1220114522-18213-1-git-send-email-me@felipebalbi.com> + + +From: Felipe Balbi <felipe.balbi@nokia.com> + +headers were moved, fixing. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 4 ++-- + drivers/usb/musb/omap2430.c | 4 ++-- + drivers/usb/musb/omap2430.h | 4 ++-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -100,8 +100,8 @@ + #include <linux/io.h> + + #ifdef CONFIG_ARM +-#include <asm/arch/hardware.h> +-#include <asm/arch/memory.h> ++#include <mach/hardware.h> ++#include <mach/memory.h> + #include <asm/mach-types.h> + #endif + +--- a/drivers/usb/musb/omap2430.c ++++ b/drivers/usb/musb/omap2430.c +@@ -35,8 +35,8 @@ + #include <linux/io.h> + + #include <asm/mach-types.h> +-#include <asm/arch/hardware.h> +-#include <asm/arch/mux.h> ++#include <mach/hardware.h> ++#include <mach/mux.h> + + #include "musb_core.h" + #include "omap2430.h" +--- a/drivers/usb/musb/omap2430.h ++++ b/drivers/usb/musb/omap2430.h +@@ -11,8 +11,8 @@ + #define __MUSB_OMAP243X_H__ + + #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430) +-#include <asm/arch/hardware.h> +-#include <asm/arch/usb.h> ++#include <mach/hardware.h> ++#include <mach/usb.h> + + /* + * OMAP2430-specific definitions diff --git a/usb.current/usb-update-of-documentation-usb-anchors.txt.patch b/usb.current/usb-update-of-documentation-usb-anchors.txt.patch new file mode 100644 index 00000000000000..e17bbe1e704899 --- /dev/null +++ b/usb.current/usb-update-of-documentation-usb-anchors.txt.patch @@ -0,0 +1,43 @@ +From oliver@neukum.org Wed Sep 3 11:17:05 2008 +From: Oliver Neukum <oliver@neukum.org> +Date: Tue, 2 Sep 2008 10:52:08 +0200 +Subject: USB: update of Documentation/usb/anchors.txt +To: greg@kroah.com +Cc: linux-usb@vger.kernel.org +Message-ID: <200809021052.08650.oliver@neukum.org> +Content-Disposition: inline + + +The extended anchor API is documented + +Signed-off-by: Oliver Neukum <oneukum@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + Documentation/usb/anchors.txt | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/Documentation/usb/anchors.txt ++++ b/Documentation/usb/anchors.txt +@@ -42,9 +42,21 @@ This function kills all URBs associated + are called in the reverse temporal order they were submitted. + This way no data can be reordered. + ++usb_unlink_anchored_urbs() ++-------------------------- ++ ++This function unlinks all URBs associated with an anchor. The URBs ++are processed in the reverse temporal order they were submitted. ++This is similar to usb_kill_anchored_urbs(), but it will not sleep. ++Therefore no guarantee is made that the URBs have been unlinked when ++the call returns. They may be unlinked later but will be unlinked in ++finite time. ++ + usb_wait_anchor_empty_timeout() + ------------------------------- + + This function waits for all URBs associated with an anchor to finish + or a timeout, whichever comes first. Its return value will tell you + whether the timeout was reached. ++ ++ |
