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

Commit 2cbecff4 authored by Oscar Mateo's avatar Oscar Mateo Committed by Rodrigo Vivi
Browse files

drm/i915/cnl: WaPushConstantDereferenceHoldDisable



CS sometimes hangs on 3D Push Constant dispatches with the new
deref enhancement logic in CNL.

v2: Improve the commit message (Rodrigo)

Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Signed-off-by: default avatarOscar Mateo <oscar.mateo@intel.com>
Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1503518191-19116-1-git-send-email-oscar.mateo@intel.com
parent 66df1014
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -8055,6 +8055,7 @@ enum {
#define GEN7_ROW_CHICKEN2		_MMIO(0xe4f4)
#define GEN7_ROW_CHICKEN2		_MMIO(0xe4f4)
#define GEN7_ROW_CHICKEN2_GT2		_MMIO(0xf4f4)
#define GEN7_ROW_CHICKEN2_GT2		_MMIO(0xf4f4)
#define   DOP_CLOCK_GATING_DISABLE	(1<<0)
#define   DOP_CLOCK_GATING_DISABLE	(1<<0)
#define   PUSH_CONSTANT_DEREF_DISABLE	(1<<8)


#define HSW_ROW_CHICKEN3		_MMIO(0xe49c)
#define HSW_ROW_CHICKEN3		_MMIO(0xe49c)
#define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
#define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
+3 −0
Original line number Original line Diff line number Diff line
@@ -1083,6 +1083,9 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
	WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
	WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
		   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
		   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);


	/* WaPushConstantDereferenceHoldDisable:cnl */
	WA_SET_BIT(GEN7_ROW_CHICKEN2, PUSH_CONSTANT_DEREF_DISABLE);

	/* WaEnablePreemptionGranularityControlByUMD:cnl */
	/* WaEnablePreemptionGranularityControlByUMD:cnl */
	ret= wa_ring_whitelist_reg(engine, GEN8_CS_CHICKEN1);
	ret= wa_ring_whitelist_reg(engine, GEN8_CS_CHICKEN1);
	if (ret)
	if (ret)