Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23477289 authored by Rodrigo Vivi's avatar Rodrigo Vivi Committed by Jani Nikula
Browse files

drm/i915/cfl: Fix Workarounds.



During the review of Coffee Lake workarounds Mika pointed out
that WaDisableKillLogic and GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC
should be removed from CFL and with that I should carry the rv-b.

However when doing the v2 I removed another Workaround that should
remain because although not mentioned by spec the history of hangs
around it advocates on its favor.

On some follow-up patches I continued operating on the wrong
workardound, but Ville noticed that, so here is the fix for the
current CFL code that is upstream already.

Fixes: 46c26662 ("drm/i915/cfl: Introduce Coffee Lake workarounds.")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
(cherry picked from commit 98eed3d1)
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 4ec654bf
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -821,7 +821,8 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine)
	I915_WRITE(BDW_SCRATCH1, I915_READ(BDW_SCRATCH1) |
	I915_WRITE(BDW_SCRATCH1, I915_READ(BDW_SCRATCH1) |
		   GEN9_LBS_SLA_RETRY_TIMER_DECREMENT_ENABLE);
		   GEN9_LBS_SLA_RETRY_TIMER_DECREMENT_ENABLE);


	/* WaDisableKillLogic:bxt,skl,kbl,cfl */
	/* WaDisableKillLogic:bxt,skl,kbl */
	if (!IS_COFFEELAKE(dev_priv))
		I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
		I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
			   ECOCHK_DIS_TLB);
			   ECOCHK_DIS_TLB);


@@ -894,8 +895,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine)
	WA_SET_BIT_MASKED(HDC_CHICKEN0,
	WA_SET_BIT_MASKED(HDC_CHICKEN0,
			  HDC_FORCE_NON_COHERENT);
			  HDC_FORCE_NON_COHERENT);


	/* WaDisableHDCInvalidation:skl,bxt,kbl */
	/* WaDisableHDCInvalidation:skl,bxt,kbl,cfl */
	if (!IS_COFFEELAKE(dev_priv))
	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
		   BDW_DISABLE_HDC_INVALIDATION);
		   BDW_DISABLE_HDC_INVALIDATION);