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

Commit 1827cad9 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2018-05-17' of...

Merge tag 'drm-intel-fixes-2018-05-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes

- Userptr IOCTL zero size check (Matt)
- Two hardware quirk fixes (Michel & Chris)

* tag 'drm-intel-fixes-2018-05-17' of git://anongit.freedesktop.org/drm/drm-intel:
  drm/i915/gen9: Add WaClearHIZ_WM_CHICKEN3 for bxt and glk
  drm/i915/execlists: Use rmb() to order CSB reads
  drm/i915/userptr: reject zero user_size
parents bc91d181 b579f924
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -778,6 +778,9 @@ i915_gem_userptr_ioctl(struct drm_device *dev,
			    I915_USERPTR_UNSYNCHRONIZED))
		return -EINVAL;

	if (!args->user_size)
		return -EINVAL;

	if (offset_in_page(args->user_ptr | args->user_size))
		return -EINVAL;

+3 −0
Original line number Diff line number Diff line
@@ -7326,6 +7326,9 @@ enum {
#define SLICE_ECO_CHICKEN0			_MMIO(0x7308)
#define   PIXEL_MASK_CAMMING_DISABLE		(1 << 14)

#define GEN9_WM_CHICKEN3			_MMIO(0x5588)
#define   GEN9_FACTOR_IN_CLR_VAL_HIZ		(1 << 9)

/* WaCatErrorRejectionIssue */
#define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG		_MMIO(0x9030)
#define  GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB	(1<<11)
+4 −0
Original line number Diff line number Diff line
@@ -1149,6 +1149,10 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine)
	WA_SET_FIELD_MASKED(GEN8_CS_CHICKEN1, GEN9_PREEMPT_GPGPU_LEVEL_MASK,
			    GEN9_PREEMPT_GPGPU_COMMAND_LEVEL);

	/* WaClearHIZ_WM_CHICKEN3:bxt,glk */
	if (IS_GEN9_LP(dev_priv))
		WA_SET_BIT_MASKED(GEN9_WM_CHICKEN3, GEN9_FACTOR_IN_CLR_VAL_HIZ);

	/* WaVFEStateAfterPipeControlwithMediaStateClear:skl,bxt,glk,cfl */
	ret = wa_ring_whitelist_reg(engine, GEN9_CTX_PREEMPT_REG);
	if (ret)
+1 −0
Original line number Diff line number Diff line
@@ -884,6 +884,7 @@ static void execlists_submission_tasklet(unsigned long data)

			head = execlists->csb_head;
			tail = READ_ONCE(buf[write_idx]);
			rmb(); /* Hopefully paired with a wmb() in HW */
		}
		GEM_TRACE("%s cs-irq head=%d [%d%s], tail=%d [%d%s]\n",
			  engine->name,