mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
drm/xe: Add xe_ring_lrc_is_idle() helper
Add helper to compare ring head and tail to determine if LRC is idle. v2: - Fix kernel doc (CI, Zhanjun) Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241114022522.1951351-2-matthew.brost@intel.com
This commit is contained in:
parent
68634b12d7
commit
1030479691
|
|
@ -1696,7 +1696,7 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
|
|||
ban = true;
|
||||
}
|
||||
} else if (xe_exec_queue_is_lr(q) &&
|
||||
(xe_lrc_ring_head(q->lrc[0]) != xe_lrc_ring_tail(q->lrc[0]))) {
|
||||
!xe_lrc_ring_is_idle(q->lrc[0])) {
|
||||
ban = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1763,3 +1763,16 @@ u32 xe_lrc_update_timestamp(struct xe_lrc *lrc, u32 *old_ts)
|
|||
|
||||
return lrc->ctx_timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* xe_lrc_ring_is_idle() - LRC is idle
|
||||
* @lrc: Pointer to the lrc.
|
||||
*
|
||||
* Compare LRC ring head and tail to determine if idle.
|
||||
*
|
||||
* Return: True is ring is idle, False otherwise
|
||||
*/
|
||||
bool xe_lrc_ring_is_idle(struct xe_lrc *lrc)
|
||||
{
|
||||
return xe_lrc_ring_head(lrc) == xe_lrc_ring_tail(lrc);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,8 @@ u32 xe_lrc_ring_head(struct xe_lrc *lrc);
|
|||
u32 xe_lrc_ring_space(struct xe_lrc *lrc);
|
||||
void xe_lrc_write_ring(struct xe_lrc *lrc, const void *data, size_t size);
|
||||
|
||||
bool xe_lrc_ring_is_idle(struct xe_lrc *lrc);
|
||||
|
||||
u32 xe_lrc_indirect_ring_ggtt_addr(struct xe_lrc *lrc);
|
||||
u32 xe_lrc_ggtt_addr(struct xe_lrc *lrc);
|
||||
u32 *xe_lrc_regs(struct xe_lrc *lrc);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user