diff options
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.patch | 30 |
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)) { |