Commit d6cf886f authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-intel-fixes-2023-01-19' of...

Merge tag 'drm-intel-fixes-2023-01-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes

- Reject display plane with height == 0 (Drew)
- re-disable RC6p on Sandy Bridge (Sasa)
- Fix hugepages' selftest (Chris)
- DG2 hw workarounds (Matt Atwood)
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/Y8mf3/ANNWctpc7R@intel.com
parents fc70e13d afdecb23
...@@ -1627,7 +1627,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state) ...@@ -1627,7 +1627,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
u32 offset; u32 offset;
int ret; int ret;
if (w > max_width || w < min_width || h > max_height) { if (w > max_width || w < min_width || h > max_height || h < 1) {
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(&dev_priv->drm,
"requested Y/RGB source size %dx%d outside limits (min: %dx1 max: %dx%d)\n", "requested Y/RGB source size %dx%d outside limits (min: %dx1 max: %dx%d)\n",
w, h, min_width, max_width, max_height); w, h, min_width, max_width, max_height);
......
...@@ -1847,7 +1847,7 @@ static int igt_shrink_thp(void *arg) ...@@ -1847,7 +1847,7 @@ static int igt_shrink_thp(void *arg)
I915_SHRINK_ACTIVE); I915_SHRINK_ACTIVE);
i915_vma_unpin(vma); i915_vma_unpin(vma);
if (err) if (err)
goto out_put; goto out_wf;
/* /*
* Now that the pages are *unpinned* shrinking should invoke * Now that the pages are *unpinned* shrinking should invoke
...@@ -1863,19 +1863,19 @@ static int igt_shrink_thp(void *arg) ...@@ -1863,19 +1863,19 @@ static int igt_shrink_thp(void *arg)
pr_err("unexpected pages mismatch, should_swap=%s\n", pr_err("unexpected pages mismatch, should_swap=%s\n",
str_yes_no(should_swap)); str_yes_no(should_swap));
err = -EINVAL; err = -EINVAL;
goto out_put; goto out_wf;
} }
if (should_swap == (obj->mm.page_sizes.sg || obj->mm.page_sizes.phys)) { if (should_swap == (obj->mm.page_sizes.sg || obj->mm.page_sizes.phys)) {
pr_err("unexpected residual page-size bits, should_swap=%s\n", pr_err("unexpected residual page-size bits, should_swap=%s\n",
str_yes_no(should_swap)); str_yes_no(should_swap));
err = -EINVAL; err = -EINVAL;
goto out_put; goto out_wf;
} }
err = i915_vma_pin(vma, 0, 0, flags); err = i915_vma_pin(vma, 0, 0, flags);
if (err) if (err)
goto out_put; goto out_wf;
while (n--) { while (n--) {
err = cpu_check(obj, n, 0xdeadbeaf); err = cpu_check(obj, n, 0xdeadbeaf);
......
...@@ -429,9 +429,10 @@ ...@@ -429,9 +429,10 @@
#define RC_OP_FLUSH_ENABLE (1 << 0) #define RC_OP_FLUSH_ENABLE (1 << 0)
#define HIZ_RAW_STALL_OPT_DISABLE (1 << 2) #define HIZ_RAW_STALL_OPT_DISABLE (1 << 2)
#define CACHE_MODE_1 _MMIO(0x7004) /* IVB+ */ #define CACHE_MODE_1 _MMIO(0x7004) /* IVB+ */
#define PIXEL_SUBSPAN_COLLECT_OPT_DISABLE (1 << 6) #define MSAA_OPTIMIZATION_REDUC_DISABLE REG_BIT(11)
#define GEN8_4x4_STC_OPTIMIZATION_DISABLE (1 << 6) #define PIXEL_SUBSPAN_COLLECT_OPT_DISABLE REG_BIT(6)
#define GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE (1 << 1) #define GEN8_4x4_STC_OPTIMIZATION_DISABLE REG_BIT(6)
#define GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE REG_BIT(1)
#define GEN7_GT_MODE _MMIO(0x7008) #define GEN7_GT_MODE _MMIO(0x7008)
#define GEN9_IZ_HASHING_MASK(slice) (0x3 << ((slice) * 2)) #define GEN9_IZ_HASHING_MASK(slice) (0x3 << ((slice) * 2))
...@@ -457,6 +458,9 @@ ...@@ -457,6 +458,9 @@
#define GEN8_L3CNTLREG _MMIO(0x7034) #define GEN8_L3CNTLREG _MMIO(0x7034)
#define GEN8_ERRDETBCTRL (1 << 9) #define GEN8_ERRDETBCTRL (1 << 9)
#define PSS_MODE2 _MMIO(0x703c)
#define SCOREBOARD_STALL_FLUSH_CONTROL REG_BIT(5)
#define GEN7_SC_INSTDONE _MMIO(0x7100) #define GEN7_SC_INSTDONE _MMIO(0x7100)
#define GEN12_SC_INSTDONE_EXTRA _MMIO(0x7104) #define GEN12_SC_INSTDONE_EXTRA _MMIO(0x7104)
#define GEN12_SC_INSTDONE_EXTRA2 _MMIO(0x7108) #define GEN12_SC_INSTDONE_EXTRA2 _MMIO(0x7108)
......
...@@ -771,11 +771,19 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, ...@@ -771,11 +771,19 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine,
/* Wa_14014947963:dg2 */ /* Wa_14014947963:dg2 */
if (IS_DG2_GRAPHICS_STEP(engine->i915, G10, STEP_B0, STEP_FOREVER) || if (IS_DG2_GRAPHICS_STEP(engine->i915, G10, STEP_B0, STEP_FOREVER) ||
IS_DG2_G11(engine->i915) || IS_DG2_G12(engine->i915)) IS_DG2_G11(engine->i915) || IS_DG2_G12(engine->i915))
wa_masked_field_set(wal, VF_PREEMPTION, PREEMPTION_VERTEX_COUNT, 0x4000); wa_masked_field_set(wal, VF_PREEMPTION, PREEMPTION_VERTEX_COUNT, 0x4000);
/* Wa_18018764978:dg2 */
if (IS_DG2_GRAPHICS_STEP(engine->i915, G10, STEP_C0, STEP_FOREVER) ||
IS_DG2_G11(engine->i915) || IS_DG2_G12(engine->i915))
wa_masked_en(wal, PSS_MODE2, SCOREBOARD_STALL_FLUSH_CONTROL);
/* Wa_15010599737:dg2 */ /* Wa_15010599737:dg2 */
wa_mcr_masked_en(wal, CHICKEN_RASTER_1, DIS_SF_ROUND_NEAREST_EVEN); wa_mcr_masked_en(wal, CHICKEN_RASTER_1, DIS_SF_ROUND_NEAREST_EVEN);
/* Wa_18019271663:dg2 */
wa_masked_en(wal, CACHE_MODE_1, MSAA_OPTIMIZATION_REDUC_DISABLE);
} }
static void fakewa_disable_nestedbb_mode(struct intel_engine_cs *engine, static void fakewa_disable_nestedbb_mode(struct intel_engine_cs *engine,
......
...@@ -423,7 +423,8 @@ static const struct intel_device_info ilk_m_info = { ...@@ -423,7 +423,8 @@ static const struct intel_device_info ilk_m_info = {
.has_coherent_ggtt = true, \ .has_coherent_ggtt = true, \
.has_llc = 1, \ .has_llc = 1, \
.has_rc6 = 1, \ .has_rc6 = 1, \
.has_rc6p = 1, \ /* snb does support rc6p, but enabling it causes various issues */ \
.has_rc6p = 0, \
.has_rps = true, \ .has_rps = true, \
.dma_mask_size = 40, \ .dma_mask_size = 40, \
.__runtime.ppgtt_type = INTEL_PPGTT_ALIASING, \ .__runtime.ppgtt_type = INTEL_PPGTT_ALIASING, \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment