Patch "drm/i915/gen9: Add WaInPlaceDecompressionHang" has been added to the 4.7-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/i915/gen9: Add WaInPlaceDecompressionHang
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-i915-gen9-add-wainplacedecompressionhang.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f15f6ca1e706e11fd07611bd4c7f903625349b33Mon Sep 17 00:00:00 2001
From: Mika Kuoppala <[email protected]>
Date: Wed, 20 Jul 2016 14:26:12 +0300
Subject: drm/i915/gen9: Add WaInPlaceDecompressionHang
From: Mika Kuoppala <[email protected]>
commit f15f6ca1e706e11fd07611bd4c7f903625349b33 upstream.
Add this workaround to prevent hang when in place compression is used.
References: HSD#2135774
--- drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_ringbuffer.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+)
drivers/gpu/drm/i915/i915_drv.h +2 -0
@@ -2591,6 +2591,8 @@ struct drm_i915_cmd_table {#define SKL_REVID_D0 0x3#define SKL_REVID_E0 0x4#define SKL_REVID_F0 0x5 +#define SKL_REVID_G0 0x6 +#define SKL_REVID_H0 0x7#define IS_SKL_REVID (p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since, until))
drivers/gpu/drm/i915/i915_reg.h +3 -0
@@ -1672,6 +1672,9 @@ enum skl_disp_power_wells {#define GEN7_TLB_RD_ADDR _MMIO(0x4700) +#define GEN9_GAMT_ECO_REG_RW_IA _MMIO(0x4ab0) +#define GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS (1<<18) +#define GAMT_CHKN_BIT_REG _MMIO(0x4ab8)#define GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING (1<<28)
drivers/gpu/drm/i915/intel_ringbuffer.c +14 -0
@@ -1135,6 +1135,11 @@ static int skl_init_workarounds(struct i/* WaDisableGafsUnitClkGating:skl */ WA_SET_BIT (GEN7_UCGCTL4 ,GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE ); +/* WaInPlaceDecompressionHang:skl */ +if (IS_SKL_REVID (dev_priv,SKL_REVID_H0 ,REVID_FOREVER )) +WA_SET_BIT (GEN9_GAMT_ECO_REG_RW_IA , +GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS ); +/* WaDisableLSQCROPERFforOCL:skl */ ret =wa_ring_whitelist_reg (engine,GEN8_L3SQCREG4 );if (ret)
@@ -1194,6 +1199,11 @@ static int bxt_init_workarounds(struct iWA_SET_BIT_MASKED (COMMON_SLICE_CHICKEN2 ,GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION ); +/* WaInPlaceDecompressionHang:bxt */ +if (IS_BXT_REVID (dev_priv,BXT_REVID_C0 ,REVID_FOREVER )) +WA_SET_BIT (GEN9_GAMT_ECO_REG_RW_IA , +GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS ); +return 0 ; }
@@ -1241,6 +1251,10 @@ static int kbl_init_workarounds(struct iGEN7_HALF_SLICE_CHICKEN1 , GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE); +/* WaInPlaceDecompressionHang:kbl */ +WA_SET_BIT (GEN9_GAMT_ECO_REG_RW_IA , +GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS ); +/* WaDisableLSQCROPERFforOCL:kbl */ ret =wa_ring_whitelist_reg (engine,GEN8_L3SQCREG4 );if (ret)
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/drm-i915-gen9-add-wainplacedecompressionhang.patch