mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
xhci: expand next_trb() helper to support more ring types
The next_trb() helper relies on a link TRB at the end of a ring segment to know a segment ends. This works well with transfer rings that use link trbs, but not with event rings. Event rings segments are always filled by host to segment size before moving to next segment. It does not use link TRBs Check for both link trb and full segment in next_trb() helper to support event rings. Useful if several interrupters with several event rings are supported. Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Link: https://lore.kernel.org/r/20231019102924.2797346-4-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
15626ba965
commit
e2d3ac9cd9
|
|
@ -144,7 +144,7 @@ static void next_trb(struct xhci_hcd *xhci,
|
|||
struct xhci_segment **seg,
|
||||
union xhci_trb **trb)
|
||||
{
|
||||
if (trb_is_link(*trb)) {
|
||||
if (trb_is_link(*trb) || last_trb_on_seg(*seg, *trb)) {
|
||||
*seg = (*seg)->next;
|
||||
*trb = ((*seg)->trbs);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user