summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-01-31 14:51:16 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-01-31 14:51:16 +0000
commitfe28750ae5a5a71621fe8a23d188d9f2ea3eae43 (patch)
treee4b344488569863f8077ca6f73f193a97180afa0 /target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch
parentec0afcf3a79d12d2a294efc8ad3818c77e192a67 (diff)
[adm5120] add 2.6.24 specific patchset for the usb driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10338 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch')
-rw-r--r--target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch b/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch
new file mode 100644
index 000000000..b4e0fb089
--- /dev/null
+++ b/target/linux/adm5120/patches-2.6.24/911-usb_centralize_eremoteio_handling.patch
@@ -0,0 +1,30 @@
+Index: linux-2.6.24/drivers/usb/host/adm5120-q.c
+===================================================================
+--- linux-2.6.24.orig/drivers/usb/host/adm5120-q.c
++++ linux-2.6.24/drivers/usb/host/adm5120-q.c
+@@ -28,25 +28,10 @@ __releases(ahcd->lock)
+ __acquires(ahcd->lock)
+ {
+ urb_priv_free(ahcd, urb->hcpriv);
+- urb->hcpriv = NULL;
+
+ spin_lock(&urb->lock);
+ if (likely(urb->status == -EINPROGRESS))
+ urb->status = 0;
+-
+- /* report short control reads right even though the data TD always
+- * has TD_R set. (much simpler, but creates the 1-td limit.)
+- */
+- if (unlikely(urb->transfer_flags & URB_SHORT_NOT_OK)
+- && unlikely(usb_pipecontrol(urb->pipe))
+- && urb->actual_length < urb->transfer_buffer_length
+- && usb_pipein(urb->pipe)
+- && urb->status == 0) {
+- urb->status = -EREMOTEIO;
+-#ifdef ADMHC_VERBOSE_DEBUG
+- urb_print(ahcd, urb, "SHORT", usb_pipeout(urb->pipe));
+-#endif
+- }
+ spin_unlock(&urb->lock);
+
+ switch (usb_pipetype(urb->pipe)) {