Skip to content

Commit 7e3025c

Browse files
committed
drm/i915/mtl+: Disable DP/DSC SF insertion at EOL WA
Disable the workaround inserting an SF symbol between the last DSC EOC symbol and the subsequent BS symbol. The WA is enabled by default - based on the register's reset value - and Bspec requires disabling it explicitly. Bspec doesn't provide an actual WA ID for this. Bspec: 50054, 65448, 68849 Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240129175533.904590-6-imre.deak@intel.com
1 parent 377cc98 commit 7e3025c

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

drivers/gpu/drm/i915/display/intel_display.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,15 @@ void intel_enable_transcoder(const struct intel_crtc_state *new_crtc_state)
436436
intel_de_rmw(dev_priv, PIPE_ARB_CTL(pipe),
437437
0, PIPE_ARB_USE_PROG_SLOTS);
438438

439+
if (DISPLAY_VER(dev_priv) >= 14) {
440+
u32 clear = DP_DSC_INSERT_SF_AT_EOL_WA;
441+
u32 set = 0;
442+
443+
intel_de_rmw(dev_priv,
444+
hsw_chicken_trans_reg(dev_priv, cpu_transcoder),
445+
clear, set);
446+
}
447+
439448
val = intel_de_read(dev_priv, TRANSCONF(cpu_transcoder));
440449
if (val & TRANSCONF_ENABLE) {
441450
/* we keep both pipes enabled on 830 */

drivers/gpu/drm/i915/i915_reg.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4629,6 +4629,7 @@
46294629
#define DDIE_TRAINING_OVERRIDE_VALUE REG_BIT(16) /* CHICKEN_TRANS_A only */
46304630
#define PSR2_ADD_VERTICAL_LINE_COUNT REG_BIT(15)
46314631
#define PSR2_VSC_ENABLE_PROG_HEADER REG_BIT(12)
4632+
#define DP_DSC_INSERT_SF_AT_EOL_WA REG_BIT(4)
46324633

46334634
#define DISP_ARB_CTL _MMIO(0x45000)
46344635
#define DISP_FBC_MEMORY_WAKE REG_BIT(31)

0 commit comments

Comments
 (0)