Commit a9422ec9 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915/dsb: Try to document that DSB_STATUS bit 16 is level triggered



DSB_STATUS bit 16 is supposed to be a sticky bit informing us whether
the DSB was idle or not when the pipe's delayed vblank (when double
buffered registers latch) occurred. Unfortunately it turns out this
is a level triggred signal, ie. the bit will be set whenever the
DSB is busy during the scanline window between start of delayed
vblank and vtotal. Try to document that fact by renaming the bit.

Sadly this also thwarts my plan to use this bit to sanity check
that the (to be introduced) DSB based vblank evasion did its job
correctly. That would require an edge triggered signal instead.
So looks like we'll have to rely mostly on luck instead :(

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240611133344.30673-12-ville.syrjala@linux.intel.com


Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
parent aaf9dc86
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@
#define   DSB_TLBTRANS_SM_STATE_MASK	REG_GENMASK(21, 20)
#define   DSB_SAFE_WINDOW		REG_BIT(19)
#define   DSB_POINTERS_SM_STATE_MASK	REG_GENMASK(18, 17)
#define   DSB_BUSY_ON_DELAYED_VBLANK	REG_BIT(16)
#define   DSB_BUSY_DURING_DELAYED_VBLANK	REG_BIT(16)
#define   DSB_MMIO_ARB_SM_STATE_MASK	REG_GENMASK(15, 13)
#define   DSB_MMIO_INST_SM_STATE_MASK	REG_GENMASK(11, 7)
#define   DSB_RESET_SM_STATE_MASK	REG_GENMASK(5, 4)