Merge tag 'drm-intel-gt-next-2021-10-21' of git://anongit.freedesktop.org/drm/drm...
authorDave Airlie <airlied@redhat.com>
Thu, 21 Oct 2021 20:30:33 +0000 (06:30 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 21 Oct 2021 20:30:34 +0000 (06:30 +1000)
UAPI Changes:

- Expose multi-LRC submission interface

  Similar to the bonded submission interface but simplified.
  Comes with GuC only implementation for now. See kerneldoc
  for more details.

  Userspace changes: https://github.com/intel/media-driver/pull/1252

- Expose logical engine instance to user

  Needed by the multi-LRC submission interface for GuC

  Userspace changes: https://github.com/intel/media-driver/pull/1252

Driver Changes:

- Fix blank screen booting crashes when CONFIG_CC_OPTIMIZE_FOR_SIZE=y (Hugh)
- Add support for multi-LRC submission in the GuC backend (Matt B)
- Add extra cache flushing before making pages userspace visible (Matt A, Thomas)
- Mark internal GPU object pages dirty so they will be flushed properly (Matt A)

- Move remaining debugfs interfaces i915_wedged/i915_forcewake_user into gt (Andi)
- Replace the unconditional clflushes with drm_clflush_virt_range() (Ville)
- Remove IS_ACTIVE macro completely (Lucas)
- Improve kerneldocs for cache_dirty (Matt A)

- Add missing includes (Lucas)
- Selftest improvements (Matt R, Ran, Matt A)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/YXFmLKoq8Fg9JxSd@jlahtine-mobl.ger.corp.intel.com
1  2 
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
drivers/gpu/drm/i915/gt/intel_llc.c
drivers/gpu/drm/i915/i915_debugfs.c
include/uapi/drm/i915_drm.h

  #include "intel_rc6.h"
  #include "intel_rps.h"
  #include "intel_runtime_pm.h"
 -#include "intel_sideband.h"
  #include "intel_uncore.h"
 +#include "vlv_sideband.h"
  
+ int intel_gt_pm_debugfs_forcewake_user_open(struct intel_gt *gt)
+ {
+       atomic_inc(&gt->user_wakeref);
+       intel_gt_pm_get(gt);
+       if (GRAPHICS_VER(gt->i915) >= 6)
+               intel_uncore_forcewake_user_get(gt->uncore);
+       return 0;
+ }
+ int intel_gt_pm_debugfs_forcewake_user_release(struct intel_gt *gt)
+ {
+       if (GRAPHICS_VER(gt->i915) >= 6)
+               intel_uncore_forcewake_user_put(gt->uncore);
+       intel_gt_pm_put(gt);
+       atomic_dec(&gt->user_wakeref);
+       return 0;
+ }
+ static int forcewake_user_open(struct inode *inode, struct file *file)
+ {
+       struct intel_gt *gt = inode->i_private;
+       return intel_gt_pm_debugfs_forcewake_user_open(gt);
+ }
+ static int forcewake_user_release(struct inode *inode, struct file *file)
+ {
+       struct intel_gt *gt = inode->i_private;
+       return intel_gt_pm_debugfs_forcewake_user_release(gt);
+ }
+ static const struct file_operations forcewake_user_fops = {
+       .owner = THIS_MODULE,
+       .open = forcewake_user_open,
+       .release = forcewake_user_release,
+ };
  static int fw_domains_show(struct seq_file *m, void *data)
  {
        struct intel_gt *gt = m->private;
Simple merge
Simple merge
Simple merge