summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2024-04-11 03:35:19 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2024-04-11 03:35:19 +0000
commit5e2b9610bc6233530e542f1fe2c2c79ce50979a2 (patch)
treebeabab410643a20e02723c51924b9366f68e6da5 /sys
parent6d7e5b47b92449013db9ac4698e0a15cfa84066b (diff)
drm/i915/gt: Do not generate the command streamer for all the CCS
From Andi Shyti 726ff623869ddc3de887d99296cac3c849061b21 in linux-6.6.y/6.6.26 ea315f98e5d6d3191b74beb0c3e5fc16081d517c in mainline linux
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/drm/i915/gt/intel_engine_cs.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/i915/gt/intel_engine_cs.c b/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
index 8dab7b76fc6..32506b6b2ab 100644
--- a/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
+++ b/sys/dev/pci/drm/i915/gt/intel_engine_cs.c
@@ -916,6 +916,23 @@ static intel_engine_mask_t init_engine_mask(struct intel_gt *gt)
info->engine_mask &= ~BIT(GSC0);
}
+ /*
+ * Do not create the command streamer for CCS slices beyond the first.
+ * All the workload submitted to the first engine will be shared among
+ * all the slices.
+ *
+ * Once the user will be allowed to customize the CCS mode, then this
+ * check needs to be removed.
+ */
+ if (IS_DG2(gt->i915)) {
+ u8 first_ccs = __ffs(CCS_MASK(gt));
+
+ /* Mask off all the CCS engine */
+ info->engine_mask &= ~GENMASK(CCS3, CCS0);
+ /* Put back in the first CCS engine */
+ info->engine_mask |= BIT(_CCS(first_ccs));
+ }
+
return info->engine_mask;
}