]> Git Repo - J-linux.git/commitdiff
Merge drm/drm-next into drm-xe-next
authorThomas Hellström <[email protected]>
Thu, 2 May 2024 07:46:12 +0000 (09:46 +0200)
committerThomas Hellström <[email protected]>
Thu, 2 May 2024 07:46:12 +0000 (09:46 +0200)
Avoid falling too far behind drm-next.

Signed-off-by: Thomas Hellström <[email protected]>
1  2 
drivers/gpu/drm/xe/Makefile
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
drivers/gpu/drm/xe/xe_debugfs.c
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_gt_debugfs.c
drivers/gpu/drm/xe/xe_pci.c

index efd6605536735b1aa02a55806d97c1b41df34f07,8321ec4f9b4621f705333c92dfd895b617751a86..a67977edff5b8666be75d098f31fe29c5a89bd68
@@@ -163,9 -163,7 +163,9 @@@ xe-$(CONFIG_PCI_IOV) += 
        xe_gt_sriov_pf.o \
        xe_gt_sriov_pf_config.o \
        xe_gt_sriov_pf_control.o \
 +      xe_gt_sriov_pf_debugfs.o \
        xe_gt_sriov_pf_policy.o \
 +      xe_gt_sriov_pf_service.o \
        xe_lmtt.o \
        xe_lmtt_2l.o \
        xe_lmtt_ml.o \
@@@ -184,9 -182,6 +184,6 @@@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY
        -Ddrm_i915_gem_object=xe_bo \
        -Ddrm_i915_private=xe_device
  
- CFLAGS_i915-display/intel_fbdev.o = -Wno-override-init
- CFLAGS_i915-display/intel_display_device.o = -Wno-override-init
  # Rule to build SOC code shared with i915
  $(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
        $(call cmd,force_checksrc)
@@@ -291,6 -286,7 +288,7 @@@ xe-$(CONFIG_DRM_XE_DISPLAY) += 
        i915-display/intel_vdsc.o \
        i915-display/intel_vga.o \
        i915-display/intel_vrr.o \
+       i915-display/intel_dmc_wl.o \
        i915-display/intel_wm.o \
        i915-display/skl_scaler.o \
        i915-display/skl_universal_plane.o \
index 9ee694bf331f84425bdbdbae51f4d90eb5012fbc,ffaa4d2f1eed3d25fde17009af66ab8267d69978..cd4632276141b0c8eb7147da2bcfd6fd7eb565a0
  #include "xe_bo.h"
  #include "xe_pm.h"
  #include "xe_step.h"
- #include "i915_gem.h"
  #include "i915_gem_stolen.h"
  #include "i915_gpu_error.h"
  #include "i915_reg_defs.h"
  #include "i915_utils.h"
  #include "intel_gt_types.h"
  #include "intel_step.h"
- #include "intel_uc_fw.h"
  #include "intel_uncore.h"
  #include "intel_runtime_pm.h"
  #include <linux/pm_runtime.h>
@@@ -41,12 -39,8 +39,8 @@@ static inline struct drm_i915_private *
        return dev_get_drvdata(kdev);
  }
  
- #define INTEL_JASPERLAKE 0
- #define INTEL_ELKHARTLAKE 0
  #define IS_PLATFORM(xe, x) ((xe)->info.platform == x)
  #define INTEL_INFO(dev_priv)  (&((dev_priv)->info))
- #define INTEL_DEVID(dev_priv) ((dev_priv)->info.devid)
  #define IS_I830(dev_priv)     (dev_priv && 0)
  #define IS_I845G(dev_priv)    (dev_priv && 0)
  #define IS_I85X(dev_priv)     (dev_priv && 0)
  #define IS_ROCKETLAKE(dev_priv)       IS_PLATFORM(dev_priv, XE_ROCKETLAKE)
  #define IS_DG1(dev_priv)        IS_PLATFORM(dev_priv, XE_DG1)
  #define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_S)
 -#define IS_ALDERLAKE_P(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_P)
 +#define IS_ALDERLAKE_P(dev_priv) (IS_PLATFORM(dev_priv, XE_ALDERLAKE_P) || \
 +                                IS_PLATFORM(dev_priv, XE_ALDERLAKE_N))
- #define IS_XEHPSDV(dev_priv) (dev_priv && 0)
  #define IS_DG2(dev_priv)      IS_PLATFORM(dev_priv, XE_DG2)
- #define IS_PONTEVECCHIO(dev_priv) IS_PLATFORM(dev_priv, XE_PVC)
  #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
  #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
  #define IS_BATTLEMAGE(dev_priv)  IS_PLATFORM(dev_priv, XE_BATTLEMAGE)
  
  #define IP_VER(ver, rel)                ((ver) << 8 | (rel))
  
- #define INTEL_DISPLAY_ENABLED(xe) (HAS_DISPLAY((xe)) && !intel_opregion_headless_sku((xe)))
- #define IS_GRAPHICS_VER(xe, first, last) \
-       ((xe)->info.graphics_verx100 >= first * 100 && \
-        (xe)->info.graphics_verx100 <= (last*100 + 99))
  #define IS_MOBILE(xe) (xe && 0)
- #define HAS_LLC(xe) (!IS_DGFX((xe)))
  
  #define HAS_GMD_ID(xe) GRAPHICS_VERx100(xe) >= 1270
  
  /* Workarounds not handled yet */
  #define IS_DISPLAY_STEP(xe, first, last) ({u8 __step = (xe)->info.step.display; first <= __step && __step <= last; })
- #define IS_GRAPHICS_STEP(xe, first, last) ({u8 __step = (xe)->info.step.graphics; first <= __step && __step <= last; })
  
  #define IS_LP(xe) (0)
  #define IS_GEN9_LP(xe) (0)
  #define IS_KABYLAKE_ULT(xe) (xe && 0)
  #define IS_SKYLAKE_ULT(xe) (xe && 0)
  
- #define IS_DG1_GRAPHICS_STEP(xe, first, last) (IS_DG1(xe) && IS_GRAPHICS_STEP(xe, first, last))
- #define IS_DG2_GRAPHICS_STEP(xe, variant, first, last) \
-       ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_ ## variant && \
-        IS_GRAPHICS_STEP(xe, first, last))
- #define IS_XEHPSDV_GRAPHICS_STEP(xe, first, last) (IS_XEHPSDV(xe) && IS_GRAPHICS_STEP(xe, first, last))
- /* XXX: No basedie stepping support yet */
- #define IS_PVC_BD_STEP(xe, first, last) (!WARN_ON(1) && IS_PONTEVECCHIO(xe))
- #define IS_TIGERLAKE_DISPLAY_STEP(xe, first, last) (IS_TIGERLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_ROCKETLAKE_DISPLAY_STEP(xe, first, last) (IS_ROCKETLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_DG1_DISPLAY_STEP(xe, first, last) (IS_DG1(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_DG2_DISPLAY_STEP(xe, first, last) (IS_DG2(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_ADLP_DISPLAY_STEP(xe, first, last) (IS_ALDERLAKE_P(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_ADLS_DISPLAY_STEP(xe, first, last) (IS_ALDERLAKE_S(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_JSL_EHL_DISPLAY_STEP(xe, first, last) (IS_JSL_EHL(xe) && IS_DISPLAY_STEP(xe, first, last))
- #define IS_MTL_DISPLAY_STEP(xe, first, last) (IS_METEORLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
- /* FIXME: Add subplatform here */
- #define IS_MTL_GRAPHICS_STEP(xe, sub, first, last) (IS_METEORLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
  #define IS_DG2_G10(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G10)
  #define IS_DG2_G11(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G11)
  #define IS_DG2_G12(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G12)
  #define IS_ICL_WITH_PORT_F(xe) (xe && 0)
  #define HAS_FLAT_CCS(xe) (xe_device_has_flat_ccs(xe))
  #define to_intel_bo(x) gem_to_xe_bo((x))
- #define mkwrite_device_info(xe) (INTEL_INFO(xe))
  
  #define HAS_128_BYTE_Y_TILING(xe) (xe || 1)
  
- #define intel_has_gpu_reset(a) (a && 0)
  #include "intel_wakeref.h"
  
  static inline intel_wakeref_t intel_runtime_pm_get(struct xe_runtime_pm *pm)
@@@ -223,7 -183,6 +184,6 @@@ struct i915_sched_attr 
  #define RUNTIME_INFO(xe)              (&(xe)->info.i915_runtime)
  
  #define FORCEWAKE_ALL XE_FORCEWAKE_ALL
- #define HPD_STORM_DEFAULT_THRESHOLD 50
  
  #ifdef CONFIG_ARM64
  /*
index 0e61fa462c7b2a8a28f0b94d733382debe57438b,0b7aebaae8438000dcfde4cf9fad7ea5a014d905..98e3fbde50eabb30e221ea081e62250f42d0f002
@@@ -5,6 -5,7 +5,7 @@@
  
  #include "xe_debugfs.h"
  
+ #include <linux/debugfs.h>
  #include <linux/string_helpers.h>
  
  #include <drm/drm_debugfs.h>
@@@ -12,8 -13,6 +13,8 @@@
  #include "xe_bo.h"
  #include "xe_device.h"
  #include "xe_gt_debugfs.h"
 +#include "xe_gt_printk.h"
 +#include "xe_guc_ads.h"
  #include "xe_pm.h"
  #include "xe_sriov.h"
  #include "xe_step.h"
@@@ -119,56 -118,6 +120,56 @@@ static const struct file_operations for
        .release = forcewake_release,
  };
  
 +static ssize_t wedged_mode_show(struct file *f, char __user *ubuf,
 +                              size_t size, loff_t *pos)
 +{
 +      struct xe_device *xe = file_inode(f)->i_private;
 +      char buf[32];
 +      int len = 0;
 +
 +      len = scnprintf(buf, sizeof(buf), "%d\n", xe->wedged.mode);
 +
 +      return simple_read_from_buffer(ubuf, size, pos, buf, len);
 +}
 +
 +static ssize_t wedged_mode_set(struct file *f, const char __user *ubuf,
 +                             size_t size, loff_t *pos)
 +{
 +      struct xe_device *xe = file_inode(f)->i_private;
 +      struct xe_gt *gt;
 +      u32 wedged_mode;
 +      ssize_t ret;
 +      u8 id;
 +
 +      ret = kstrtouint_from_user(ubuf, size, 0, &wedged_mode);
 +      if (ret)
 +              return ret;
 +
 +      if (wedged_mode > 2)
 +              return -EINVAL;
 +
 +      if (xe->wedged.mode == wedged_mode)
 +              return 0;
 +
 +      xe->wedged.mode = wedged_mode;
 +
 +      for_each_gt(gt, xe, id) {
 +              ret = xe_guc_ads_scheduler_policy_toggle_reset(&gt->uc.guc.ads);
 +              if (ret) {
 +                      xe_gt_err(gt, "Failed to update GuC ADS scheduler policy. GuC may still cause engine reset even with wedged_mode=2\n");
 +                      return -EIO;
 +              }
 +      }
 +
 +      return size;
 +}
 +
 +static const struct file_operations wedged_mode_fops = {
 +      .owner = THIS_MODULE,
 +      .read = wedged_mode_show,
 +      .write = wedged_mode_set,
 +};
 +
  void xe_debugfs_register(struct xe_device *xe)
  {
        struct ttm_device *bdev = &xe->ttm;
        debugfs_create_file("forcewake_all", 0400, root, xe,
                            &forcewake_all_fops);
  
 +      debugfs_create_file("wedged_mode", 0400, root, xe,
 +                          &wedged_mode_fops);
 +
        for (mem_type = XE_PL_VRAM0; mem_type <= XE_PL_VRAM1; ++mem_type) {
                man = ttm_manager_type(bdev, mem_type);
  
index af509af922b98e65328fe18a0e38869c6f2f1b18,2e62450d86e1852316ef2969a58d4198f22bccb1..0f68c55ea40516ea8178cac322e8ec53f8e7fe08
@@@ -459,14 -459,6 +459,14 @@@ struct xe_device 
        /** @needs_flr_on_fini: requests function-reset on fini */
        bool needs_flr_on_fini;
  
 +      /** @wedged: Struct to control Wedged States and mode */
 +      struct {
 +              /** @wedged.flag: Xe device faced a critical error and is now blocked. */
 +              atomic_t flag;
 +              /** @wedged.mode: Mode controlled by kernel parameter and debugfs */
 +              int mode;
 +      } wedged;
 +
        /* private: */
  
  #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
        /* For pcode */
        struct mutex sb_lock;
  
-       /* Should be in struct intel_display */
-       u32 skl_preferred_vco_freq, max_dotclk_freq;
-       union {
-               /* only to allow build, not used functionally */
-               u32 irq_mask;
-               u32 de_irq_mask[I915_MAX_PIPES];
-       };
-       u32 pipestat_irq_mask[I915_MAX_PIPES];
+       /* only to allow build, not used functionally */
+       u32 irq_mask;
  
-       bool display_irqs_enabled;
        u32 enabled_irq_mask;
  
        struct intel_uncore {
                unsigned int hpll_freq;
                unsigned int czclk_freq;
                unsigned int fsb_freq, mem_freq, is_ddr3;
-               u8 vblank_enabled;
        };
-       struct {
-               const char *dmc_firmware_path;
-       } params;
  
        void *pxp;
  #endif
index 599aed47f2ba3d762ca0ac9d2580ce3e0fd4e6a1,8cf0b2625efc042a932e0ec041518a27fb1281ce..94f226a4438ec0b53935f5eb1a9e6483ee5f5e58
@@@ -5,6 -5,8 +5,8 @@@
  
  #include "xe_gt_debugfs.h"
  
+ #include <linux/debugfs.h>
  #include <drm/drm_debugfs.h>
  #include <drm/drm_managed.h>
  
@@@ -13,7 -15,6 +15,7 @@@
  #include "xe_ggtt.h"
  #include "xe_gt.h"
  #include "xe_gt_mcr.h"
 +#include "xe_gt_sriov_pf_debugfs.h"
  #include "xe_gt_topology.h"
  #include "xe_hw_engine.h"
  #include "xe_lrc.h"
@@@ -22,7 -23,6 +24,7 @@@
  #include "xe_pm.h"
  #include "xe_reg_sr.h"
  #include "xe_reg_whitelist.h"
 +#include "xe_sriov.h"
  #include "xe_uc_debugfs.h"
  #include "xe_wa.h"
  
@@@ -290,7 -290,4 +292,7 @@@ void xe_gt_debugfs_register(struct xe_g
                                 root, minor);
  
        xe_uc_debugfs_register(&gt->uc, root);
 +
 +      if (IS_SRIOV_PF(xe))
 +              xe_gt_sriov_pf_debugfs_register(gt, root);
  }
index d0d4d8f9749c70c02f9521752d446668f7072a90,f326dbb1cecd9f6729ed4cc0c47ec694999a9887..27edf4fd8bb8c1b5611ff3e34512902c3167f529
@@@ -211,8 -211,7 +211,8 @@@ static const struct xe_media_desc media
        .name = "Xe2_LPM / Xe2_HPM",
        .hw_engine_mask =
                GENMASK(XE_HW_ENGINE_VCS7, XE_HW_ENGINE_VCS0) |
 -              GENMASK(XE_HW_ENGINE_VECS3, XE_HW_ENGINE_VECS0), /* TODO: GSC0 */
 +              GENMASK(XE_HW_ENGINE_VECS3, XE_HW_ENGINE_VECS0) |
 +              BIT(XE_HW_ENGINE_GSCCS0)
  };
  
  static const struct xe_device_desc tgl_desc = {
@@@ -336,6 -335,7 +336,7 @@@ static const struct xe_device_desc mtl_
  
  static const struct xe_device_desc lnl_desc = {
        PLATFORM(XE_LUNARLAKE),
+       .has_display = true,
        .require_force_probe = true,
  };
  
This page took 0.074673 seconds and 4 git commands to generate.