mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
thunderbolt: Write descriptors in tb_ring_poll()
When the ring is not in interrupt mode, it depends on something enqueuing new frames to write the descriptors from ring->queue to the hardware, and that can take a long time. Since we know that we just released one slot, we can push the next frame directly from tb_ring_poll(). Reported-by: Alan Borzeszkowski <alan.borzeszkowski@linux.intel.com> Assisted-by: LLM Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
20bea8ceeb
commit
4d84caebab
|
|
@ -439,6 +439,13 @@ struct ring_frame *tb_ring_poll(struct tb_ring *ring)
|
|||
}
|
||||
|
||||
ring->tail = (ring->tail + 1) % ring->size;
|
||||
|
||||
/*
|
||||
* There is one more slot available so we can push next
|
||||
* descriptor to the ring. This is needed when the ring
|
||||
* is created with %RING_FLAG_NO_INTERRUPT.
|
||||
*/
|
||||
ring_write_descriptors(ring, true);
|
||||
}
|
||||
|
||||
unlock:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user