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

Commit e0f3fa09 authored by Arun Siluvery's avatar Arun Siluvery Committed by Daniel Vetter
Browse files

drm/i915/gen9: Add GEN8_CS_CHICKEN1 to HW whitelist



Required for WaEnablePreemptionGranularityControlByUMD:skl,bxt

This register is added to HW whitelist to support WA required for future
enabling of pre-emptive command execution, WA implementation will be in
userspace and it cannot program this register if it is not on HW whitelist.

v2: explain purpose of WA (Chris)

Reviewed-by: default avatarNick Hoath <nicholas.hoath@intel.com>
Signed-off-by: default avatarArun Siluvery <arun.siluvery@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1453412634-29238-3-git-send-email-arun.siluvery@linux.intel.com


Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 33136b06
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -5998,6 +5998,8 @@ enum skl_disp_power_wells {
#define FF_SLICE_CS_CHICKEN2			_MMIO(0x20e4)
#define  GEN9_TSG_BARRIER_ACK_DISABLE		(1<<8)

#define GEN8_CS_CHICKEN1		_MMIO(0x2580)

/* GEN7 chicken */
#define GEN7_COMMON_SLICE_CHICKEN1		_MMIO(0x7010)
# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC	((1<<10) | (1<<26))
+6 −0
Original line number Diff line number Diff line
@@ -910,6 +910,7 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
	struct drm_device *dev = ring->dev;
	struct drm_i915_private *dev_priv = dev->dev_private;
	uint32_t tmp;
	int ret;

	/* WaEnableLbsSlaRetryTimerDecrement:skl */
	I915_WRITE(BDW_SCRATCH1, I915_READ(BDW_SCRATCH1) |
@@ -980,6 +981,11 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
	/* WaDisableSTUnitPowerOptimization:skl,bxt */
	WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE);

	/* WaEnablePreemptionGranularityControlByUMD:skl,bxt */
	ret= wa_ring_whitelist_reg(ring, GEN8_CS_CHICKEN1);
	if (ret)
		return ret;

	return 0;
}