Commit 3fe4fe08 authored by Andiry Xu's avatar Andiry Xu Committed by Sarah Sharp

xHCI: store ring's last segment and segment numbers

Store the ring's last segment pointer and number of segments for ring
expansion usage.
Signed-off-by: default avatarAndiry Xu <andiry.xu@amd.com>
Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: default avatarPaul Zimmerman <Paul.Zimmerman@synopsys.com>
parent 3b72fca0
...@@ -154,6 +154,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci, ...@@ -154,6 +154,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci,
if (!ring) if (!ring)
return NULL; return NULL;
ring->num_segs = num_segs;
INIT_LIST_HEAD(&ring->td_list); INIT_LIST_HEAD(&ring->td_list);
ring->type = type; ring->type = type;
if (num_segs == 0) if (num_segs == 0)
...@@ -177,6 +178,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci, ...@@ -177,6 +178,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci,
num_segs--; num_segs--;
} }
xhci_link_segments(xhci, prev, ring->first_seg, type); xhci_link_segments(xhci, prev, ring->first_seg, type);
ring->last_seg = prev;
/* Only event ring does not use link TRB */ /* Only event ring does not use link TRB */
if (type != TYPE_EVENT) { if (type != TYPE_EVENT) {
......
...@@ -1262,6 +1262,7 @@ enum xhci_ring_type { ...@@ -1262,6 +1262,7 @@ enum xhci_ring_type {
struct xhci_ring { struct xhci_ring {
struct xhci_segment *first_seg; struct xhci_segment *first_seg;
struct xhci_segment *last_seg;
union xhci_trb *enqueue; union xhci_trb *enqueue;
struct xhci_segment *enq_seg; struct xhci_segment *enq_seg;
unsigned int enq_updates; unsigned int enq_updates;
...@@ -1276,6 +1277,7 @@ struct xhci_ring { ...@@ -1276,6 +1277,7 @@ struct xhci_ring {
*/ */
u32 cycle_state; u32 cycle_state;
unsigned int stream_id; unsigned int stream_id;
unsigned int num_segs;
enum xhci_ring_type type; enum xhci_ring_type type;
bool last_td_was_short; bool last_td_was_short;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment