mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
usb: xhci: Remove isochronous URB_SHORT_NOT_OK handling
This URB flag was never supposed to have any effect on isoc endpoints. No kernel code uses the flag except usb_sg_init(), on non-isoc only. USBFS can't use it on isoc because proc_do_submiturb() rejects it. Signed-off-by: Michal Pecio <michal.pecio@gmail.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Link: https://patch.msgid.link/20260603091132.1110849-6-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d20405dcdf
commit
298ff13271
|
|
@ -2395,7 +2395,6 @@ static void process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
|
|||
u32 trb_comp_code;
|
||||
bool sum_trbs_for_length = false;
|
||||
u32 remaining, requested, ep_trb_len;
|
||||
int short_framestatus;
|
||||
|
||||
trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len));
|
||||
urb_priv = td->urb->hcpriv;
|
||||
|
|
@ -2404,8 +2403,6 @@ static void process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
|
|||
requested = frame->length;
|
||||
remaining = EVENT_TRB_LEN(le32_to_cpu(event->transfer_len));
|
||||
ep_trb_len = TRB_LEN(le32_to_cpu(ep_trb->generic.field[2]));
|
||||
short_framestatus = td->urb->transfer_flags & URB_SHORT_NOT_OK ?
|
||||
-EREMOTEIO : 0;
|
||||
|
||||
/* handle completion code */
|
||||
switch (trb_comp_code) {
|
||||
|
|
@ -2413,15 +2410,12 @@ static void process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
|
|||
/* Don't overwrite status if TD had an error, see xHCI 4.9.1 */
|
||||
if (td->error_mid_td)
|
||||
break;
|
||||
if (remaining) {
|
||||
frame->status = short_framestatus;
|
||||
if (remaining)
|
||||
sum_trbs_for_length = true;
|
||||
break;
|
||||
}
|
||||
frame->status = 0;
|
||||
break;
|
||||
case COMP_SHORT_PACKET:
|
||||
frame->status = short_framestatus;
|
||||
frame->status = 0;
|
||||
sum_trbs_for_length = true;
|
||||
break;
|
||||
case COMP_BANDWIDTH_OVERRUN_ERROR:
|
||||
|
|
@ -2456,7 +2450,7 @@ static void process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
|
|||
break;
|
||||
case COMP_STOPPED_SHORT_PACKET:
|
||||
/* field normally containing residue now contains transferred */
|
||||
frame->status = short_framestatus;
|
||||
frame->status = 0;
|
||||
requested = remaining;
|
||||
break;
|
||||
case COMP_STOPPED_LENGTH_INVALID:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user