mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 11:40:19 -04:00
drm/i915/dsb: Introduce intel_dsb_wait_usec()
Add a function to emit the DSB "wait usecs" instruction. This is just a usleep() for the DSB. As a lower bound it seems pretty accurate, but the upper bound seemed oddly relaxed (ie. sometimes I've seen waits that are quite a bit longer than specified, not sure why). Reviewed-by: Animesh Manna <animesh.manna@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240930170415.23841-7-ville.syrjala@linux.intel.com
This commit is contained in:
@@ -393,6 +393,12 @@ void intel_dsb_interrupt(struct intel_dsb *dsb)
|
||||
DSB_OPCODE_INTERRUPT << DSB_OPCODE_SHIFT);
|
||||
}
|
||||
|
||||
void intel_dsb_wait_usec(struct intel_dsb *dsb, int count)
|
||||
{
|
||||
intel_dsb_emit(dsb, count,
|
||||
DSB_OPCODE_WAIT_USEC << DSB_OPCODE_SHIFT);
|
||||
}
|
||||
|
||||
static void intel_dsb_emit_wait_dsl(struct intel_dsb *dsb,
|
||||
u32 opcode, int lower, int upper)
|
||||
{
|
||||
|
||||
@@ -40,6 +40,7 @@ void intel_dsb_noop(struct intel_dsb *dsb, int count);
|
||||
void intel_dsb_nonpost_start(struct intel_dsb *dsb);
|
||||
void intel_dsb_nonpost_end(struct intel_dsb *dsb);
|
||||
void intel_dsb_interrupt(struct intel_dsb *dsb);
|
||||
void intel_dsb_wait_usec(struct intel_dsb *dsb, int count);
|
||||
void intel_dsb_wait_scanline_in(struct intel_atomic_state *state,
|
||||
struct intel_dsb *dsb,
|
||||
int lower, int upper);
|
||||
|
||||
Reference in New Issue
Block a user