drm/i915/skl: drop workarounds for A0 and B0 revisions
Pre-production hardware is not supported. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/7929af62a68504c84038a8db1625bd96ebaa9e6f.1474034059.git.jani.nikula@intel.com
This commit is contained in:
Родитель
4c0b8a8bc4
Коммит
a117f378f4
|
@ -1299,10 +1299,6 @@ bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp)
|
||||||
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
|
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
|
||||||
struct drm_device *dev = dig_port->base.base.dev;
|
struct drm_device *dev = dig_port->base.base.dev;
|
||||||
|
|
||||||
/* WaDisableHBR2:skl */
|
|
||||||
if (IS_SKL_REVID(dev, 0, SKL_REVID_B0))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ((IS_HASWELL(dev) && !IS_HSW_ULX(dev)) || IS_BROADWELL(dev) ||
|
if ((IS_HASWELL(dev) && !IS_HSW_ULX(dev)) || IS_BROADWELL(dev) ||
|
||||||
(INTEL_INFO(dev)->gen >= 9))
|
(INTEL_INFO(dev)->gen >= 9))
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -225,9 +225,6 @@ static u32 intel_dp_training_pattern(struct intel_dp *intel_dp)
|
||||||
* Intel platforms that support HBR2 also support TPS3. TPS3 support is
|
* Intel platforms that support HBR2 also support TPS3. TPS3 support is
|
||||||
* also mandatory for downstream devices that support HBR2. However, not
|
* also mandatory for downstream devices that support HBR2. However, not
|
||||||
* all sinks follow the spec.
|
* all sinks follow the spec.
|
||||||
*
|
|
||||||
* Due to WaDisableHBR2 SKL < B0 is the only exception where TPS3 is
|
|
||||||
* supported in source but still not enabled.
|
|
||||||
*/
|
*/
|
||||||
source_tps3 = intel_dp_source_supports_hbr2(intel_dp);
|
source_tps3 = intel_dp_source_supports_hbr2(intel_dp);
|
||||||
sink_tps3 = drm_dp_tps3_supported(intel_dp->dpcd);
|
sink_tps3 = drm_dp_tps3_supported(intel_dp->dpcd);
|
||||||
|
|
|
@ -375,9 +375,8 @@ static int guc_ucode_xfer(struct drm_i915_private *dev_priv)
|
||||||
/* Enable MIA caching. GuC clock gating is disabled. */
|
/* Enable MIA caching. GuC clock gating is disabled. */
|
||||||
I915_WRITE(GUC_SHIM_CONTROL, GUC_SHIM_CONTROL_VALUE);
|
I915_WRITE(GUC_SHIM_CONTROL, GUC_SHIM_CONTROL_VALUE);
|
||||||
|
|
||||||
/* WaDisableMinuteIaClockGating:skl,bxt */
|
/* WaDisableMinuteIaClockGating:bxt */
|
||||||
if (IS_SKL_REVID(dev, 0, SKL_REVID_B0) ||
|
if (IS_BXT_REVID(dev, 0, BXT_REVID_A1)) {
|
||||||
IS_BXT_REVID(dev, 0, BXT_REVID_A1)) {
|
|
||||||
I915_WRITE(GUC_SHIM_CONTROL, (I915_READ(GUC_SHIM_CONTROL) &
|
I915_WRITE(GUC_SHIM_CONTROL, (I915_READ(GUC_SHIM_CONTROL) &
|
||||||
~GUC_ENABLE_MIA_CLOCK_GATING));
|
~GUC_ENABLE_MIA_CLOCK_GATING));
|
||||||
}
|
}
|
||||||
|
|
|
@ -269,8 +269,7 @@ logical_ring_init_platform_invariants(struct intel_engine_cs *engine)
|
||||||
struct drm_i915_private *dev_priv = engine->i915;
|
struct drm_i915_private *dev_priv = engine->i915;
|
||||||
|
|
||||||
engine->disable_lite_restore_wa =
|
engine->disable_lite_restore_wa =
|
||||||
(IS_SKL_REVID(dev_priv, 0, SKL_REVID_B0) ||
|
IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1) &&
|
||||||
IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1)) &&
|
|
||||||
(engine->id == VCS || engine->id == VCS2);
|
(engine->id == VCS || engine->id == VCS2);
|
||||||
|
|
||||||
engine->ctx_desc_template = GEN8_CTX_VALID;
|
engine->ctx_desc_template = GEN8_CTX_VALID;
|
||||||
|
@ -1068,9 +1067,8 @@ static int gen9_init_perctx_bb(struct intel_engine_cs *engine,
|
||||||
{
|
{
|
||||||
uint32_t index = wa_ctx_start(wa_ctx, *offset, CACHELINE_DWORDS);
|
uint32_t index = wa_ctx_start(wa_ctx, *offset, CACHELINE_DWORDS);
|
||||||
|
|
||||||
/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:skl,bxt */
|
/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:bxt */
|
||||||
if (IS_SKL_REVID(engine->i915, 0, SKL_REVID_B0) ||
|
if (IS_BXT_REVID(engine->i915, 0, BXT_REVID_A1)) {
|
||||||
IS_BXT_REVID(engine->i915, 0, BXT_REVID_A1)) {
|
|
||||||
wa_ctx_emit(batch, index, MI_LOAD_REGISTER_IMM(1));
|
wa_ctx_emit(batch, index, MI_LOAD_REGISTER_IMM(1));
|
||||||
wa_ctx_emit_reg(batch, index, GEN9_SLICE_COMMON_ECO_CHICKEN0);
|
wa_ctx_emit_reg(batch, index, GEN9_SLICE_COMMON_ECO_CHICKEN0);
|
||||||
wa_ctx_emit(batch, index,
|
wa_ctx_emit(batch, index,
|
||||||
|
|
|
@ -851,15 +851,13 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine)
|
||||||
WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3,
|
WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3,
|
||||||
GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC);
|
GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC);
|
||||||
|
|
||||||
/* WaDisableDgMirrorFixInHalfSliceChicken5:skl,bxt */
|
/* WaDisableDgMirrorFixInHalfSliceChicken5:bxt */
|
||||||
if (IS_SKL_REVID(dev_priv, 0, SKL_REVID_B0) ||
|
if (IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1))
|
||||||
IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1))
|
|
||||||
WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
|
WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
|
||||||
GEN9_DG_MIRROR_FIX_ENABLE);
|
GEN9_DG_MIRROR_FIX_ENABLE);
|
||||||
|
|
||||||
/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:skl,bxt */
|
/* WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken:bxt */
|
||||||
if (IS_SKL_REVID(dev_priv, 0, SKL_REVID_B0) ||
|
if (IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1)) {
|
||||||
IS_BXT_REVID(dev_priv, 0, BXT_REVID_A1)) {
|
|
||||||
WA_SET_BIT_MASKED(GEN7_COMMON_SLICE_CHICKEN1,
|
WA_SET_BIT_MASKED(GEN7_COMMON_SLICE_CHICKEN1,
|
||||||
GEN9_RHWO_OPTIMIZATION_DISABLE);
|
GEN9_RHWO_OPTIMIZATION_DISABLE);
|
||||||
/*
|
/*
|
||||||
|
@ -1023,15 +1021,8 @@ static int skl_init_workarounds(struct intel_engine_cs *engine)
|
||||||
GEN8_LQSC_RO_PERF_DIS);
|
GEN8_LQSC_RO_PERF_DIS);
|
||||||
|
|
||||||
/* WaEnableGapsTsvCreditFix:skl */
|
/* WaEnableGapsTsvCreditFix:skl */
|
||||||
if (IS_SKL_REVID(dev_priv, SKL_REVID_C0, REVID_FOREVER)) {
|
I915_WRITE(GEN8_GARBCNTL, (I915_READ(GEN8_GARBCNTL) |
|
||||||
I915_WRITE(GEN8_GARBCNTL, (I915_READ(GEN8_GARBCNTL) |
|
GEN9_GAPS_TSV_CREDIT_DISABLE));
|
||||||
GEN9_GAPS_TSV_CREDIT_DISABLE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* WaDisablePowerCompilerClockGating:skl */
|
|
||||||
if (IS_SKL_REVID(dev_priv, SKL_REVID_B0, SKL_REVID_B0))
|
|
||||||
WA_SET_BIT_MASKED(HIZ_CHICKEN,
|
|
||||||
BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE);
|
|
||||||
|
|
||||||
/* WaBarrierPerformanceFixDisable:skl */
|
/* WaBarrierPerformanceFixDisable:skl */
|
||||||
if (IS_SKL_REVID(dev_priv, SKL_REVID_C0, SKL_REVID_D0))
|
if (IS_SKL_REVID(dev_priv, SKL_REVID_C0, SKL_REVID_D0))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче