]> www.infradead.org Git - nvme.git/commitdiff
drm/i915/dsb: Try to document that DSB_STATUS bit 16 is level triggered
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 11 Jun 2024 13:33:44 +0000 (16:33 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 27 Jun 2024 13:00:52 +0000 (16:00 +0300)
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: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240611133344.30673-12-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_dsb_regs.h

index 9c2664ff519aee5ef032c0ba52b36650ed60430f..cb6e0e5624a6a50de9e43cb78b3b955c39694323 100644 (file)
@@ -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)