OSDN Git Service

drm/i915/tgl: Limit ourselves to just rcs0
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 13 Sep 2019 14:55:56 +0000 (15:55 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 13 Sep 2019 16:17:34 +0000 (17:17 +0100)
More pruning away of features until we have a stable system and a basis
for debugging what's missing.

v2: Fixup vdbox/vebox fusing

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190913145556.23912-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c

index 9236fcc..ee9a795 100644 (file)
@@ -799,6 +799,7 @@ static const struct intel_device_info intel_tigerlake_12_info = {
                BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
        .has_rc6 = false, /* XXX disabled for debugging */
        .has_logical_ring_preemption = false, /* XXX disabled for debugging */
+       .engine_mask = BIT(RCS0), /* XXX reduced for debugging */
 };
 
 #undef GEN
index 50b05a5..727089d 100644 (file)
@@ -1004,8 +1004,10 @@ void intel_device_info_init_mmio(struct drm_i915_private *dev_priv)
                      GEN11_GT_VEBOX_DISABLE_SHIFT;
 
        for (i = 0; i < I915_MAX_VCS; i++) {
-               if (!HAS_ENGINE(dev_priv, _VCS(i)))
+               if (!HAS_ENGINE(dev_priv, _VCS(i))) {
+                       vdbox_mask &= ~BIT(i);
                        continue;
+               }
 
                if (!(BIT(i) & vdbox_mask)) {
                        info->engine_mask &= ~BIT(_VCS(i));
@@ -1026,8 +1028,10 @@ void intel_device_info_init_mmio(struct drm_i915_private *dev_priv)
        GEM_BUG_ON(vdbox_mask != VDBOX_MASK(dev_priv));
 
        for (i = 0; i < I915_MAX_VECS; i++) {
-               if (!HAS_ENGINE(dev_priv, _VECS(i)))
+               if (!HAS_ENGINE(dev_priv, _VECS(i))) {
+                       vebox_mask &= ~BIT(i);
                        continue;
+               }
 
                if (!(BIT(i) & vebox_mask)) {
                        info->engine_mask &= ~BIT(_VECS(i));