Merge tag 'drm-intel-gt-next-2021-12-23' of git://anongit.freedesktop.org/drm/drm...
authorDave Airlie <airlied@redhat.com>
Thu, 23 Dec 2021 20:08:29 +0000 (06:08 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 23 Dec 2021 20:14:51 +0000 (06:14 +1000)
Driver Changes:

- Added bits of DG2 support around page table handling (Stuart Summers, Matthew Auld)
- Fixed wakeref leak in PMU busyness during reset in GuC mode (Umesh Nerlige Ramappa)
- Fixed debugfs access crash if GuC failed to load (John Harrison)
- Bring back GuC error log to error capture, undoing accidental earlier breakage (Thomas Hellström)
- Fixed memory leak in error capture caused by earlier refactoring (Thomas Hellström)
- Exclude reserved stolen from driver use (Chris Wilson)
- Add memory region sanity checking and optional full test (Chris Wilson)
- Fixed buffer size truncation in TTM shmemfs backend (Robert Beckett)
- Use correct lock and don't overwrite internal data structures when stealing GuC context ids (Matthew Brost)
- Don't hog IRQs when destroying GuC contexts (John Harrison)
- Make GuC to Host communication more robust (Matthew Brost)
- Continuation of locking refactoring around VMA and backing store handling (Maarten Lankhorst)
- Improve performance of reading GuC log from debugfs (John Harrison)
- Log when GuC fails to reset an engine (John Harrison)
- Speed up GuC/HuC firmware loading by requesting RP0 (Vinay Belgaumkar)
- Further work on asynchronous VMA unbinding (Thomas Hellström, Christian König)

- Refactor GuC/HuC firmware handling to prepare for future platforms (John Harrison)
- Prepare for future different GuC/HuC firmware signing key sizes (Daniele Ceraolo Spurio, Michal Wajdeczko)
- Add noreclaim annotations (Matthew Auld)
- Remove racey GEM_BUG_ON between GPU reset and GuC communication handling (Matthew Brost)
- Refactor i915->gt with to_gt(i915) to prepare for future platforms (Michał Winiarski, Andi Shyti)
- Increase GuC log size for CONFIG_DEBUG_GEM (John Harrison)

- Fixed engine busyness in selftests when in GuC mode (Umesh Nerlige Ramappa)
- Make engine parking work with PREEMPT_RT (Sebastian Andrzej Siewior)
- Replace X86_FEATURE_PAT with pat_enabled() (Lucas De Marchi)
- Selftest for stealing of guc ids (Matthew Brost)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/YcRvKO5cyPvIxVCi@tursulin-mobl2
24 files changed:
1  2 
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/display/intel_atomic_plane.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_dpt.c
drivers/gpu/drm/i915/display/skl_universal_plane.c
drivers/gpu/drm/i915/gem/i915_gem_context.c
drivers/gpu/drm/i915/gem/i915_gem_mman.c
drivers/gpu/drm/i915/gt/intel_ggtt.c
drivers/gpu/drm/i915/gt/intel_gt.c
drivers/gpu/drm/i915/gt/intel_gtt.c
drivers/gpu/drm/i915/gt/intel_gtt.h
drivers/gpu/drm/i915/gt/selftest_gt_pm.c
drivers/gpu/drm/i915/gt/uc/intel_uc.c
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_driver.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_request.c
drivers/gpu/drm/i915/i915_vma_types.h
drivers/gpu/drm/i915/intel_device_info.h
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c

Simple merge
@@@ -958,9 -1307,29 +958,9 @@@ unlock
        drm_modeset_acquire_fini(ctx);
        mutex_unlock(&dev->mode_config.mutex);
  
-       clear_bit_unlock(I915_RESET_MODESET, &dev_priv->gt.reset.flags);
+       clear_bit_unlock(I915_RESET_MODESET, &to_gt(dev_priv)->reset.flags);
  }
  
 -static bool underrun_recovery_supported(const struct intel_crtc_state *crtc_state)
 -{
 -      if (crtc_state->pch_pfit.enabled &&
 -          (crtc_state->pipe_src_w > drm_rect_width(&crtc_state->pch_pfit.dst) ||
 -           crtc_state->pipe_src_h > drm_rect_height(&crtc_state->pch_pfit.dst) ||
 -           crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420))
 -              return false;
 -
 -      if (crtc_state->dsc.compression_enable)
 -              return false;
 -
 -      if (crtc_state->has_psr2)
 -              return false;
 -
 -      if (crtc_state->splitter.enable)
 -              return false;
 -
 -      return true;
 -}
 -
  static void icl_set_pipe_chicken(const struct intel_crtc_state *crtc_state)
  {
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@@ -1733,18 -1737,6 +1733,18 @@@ static bool skl_fb_scalable(const struc
        }
  }
  
-       return intel_pxp_key_check(&i915->gt.pxp, obj, false) == 0;
 +static bool bo_has_valid_encryption(struct drm_i915_gem_object *obj)
 +{
 +      struct drm_i915_private *i915 = to_i915(obj->base.dev);
 +
++      return intel_pxp_key_check(&to_gt(i915)->pxp, obj, false) == 0;
 +}
 +
 +static bool pxp_is_borked(struct drm_i915_gem_object *obj)
 +{
 +      return i915_gem_object_is_protected(obj) && !bo_has_valid_encryption(obj);
 +}
 +
  static int skl_plane_check(struct intel_crtc_state *crtc_state,
                           struct intel_plane_state *plane_state)
  {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1027,6 -1015,8 +1027,7 @@@ static const struct intel_device_info x
        DGFX_FEATURES,
        PLATFORM(INTEL_XEHPSDV),
        .display = { },
 -      .pipe_mask = 0,
+       .has_64k_pages = 1,
        .platform_engine_mask =
                BIT(RCS0) | BIT(BCS0) |
                BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) |
Simple merge
Simple merge
Simple merge
Simple merge