Skip to content

Commit

Permalink
xHCI: store ring's last segment and segment numbers
Browse files Browse the repository at this point in the history
Store the ring's last segment pointer and number of segments for ring
expansion usage.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
  • Loading branch information
Andiry Xu authored and Sarah Sharp committed Mar 13, 2012
1 parent 3b72fca commit 3fe4fe0
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/usb/host/xhci-mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci,
if (!ring)
return NULL;

ring->num_segs = num_segs;
INIT_LIST_HEAD(&ring->td_list);
ring->type = type;
if (num_segs == 0)
Expand All @@ -177,6 +178,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci,
num_segs--;
}
xhci_link_segments(xhci, prev, ring->first_seg, type);
ring->last_seg = prev;

/* Only event ring does not use link TRB */
if (type != TYPE_EVENT) {
Expand Down
2 changes: 2 additions & 0 deletions drivers/usb/host/xhci.h
Original file line number Diff line number Diff line change
Expand Up @@ -1262,6 +1262,7 @@ enum xhci_ring_type {

struct xhci_ring {
struct xhci_segment *first_seg;
struct xhci_segment *last_seg;
union xhci_trb *enqueue;
struct xhci_segment *enq_seg;
unsigned int enq_updates;
Expand All @@ -1276,6 +1277,7 @@ struct xhci_ring {
*/
u32 cycle_state;
unsigned int stream_id;
unsigned int num_segs;
enum xhci_ring_type type;
bool last_td_was_short;
};
Expand Down

0 comments on commit 3fe4fe0

Please sign in to comment.