summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/xe/regs/xe_gt_regs.h
diff options
context:
space:
mode:
authorNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>2023-10-09 13:10:27 -0700
committerRodrigo Vivi <rodrigo.vivi@intel.com>2023-12-21 11:45:26 -0500
commit0d97ecce16bd26a1f90022cf0466ff15c4a0bd91 (patch)
tree54054df933f7fa114dc31f3f72b1b84ea73da897 /drivers/gpu/drm/xe/regs/xe_gt_regs.h
parentb279b53015079bda2a311b48892dff362ac8ebc3 (diff)
downloadlinux-stable-0d97ecce16bd26a1f90022cf0466ff15c4a0bd91.tar.gz
linux-stable-0d97ecce16bd26a1f90022cf0466ff15c4a0bd91.tar.bz2
linux-stable-0d97ecce16bd26a1f90022cf0466ff15c4a0bd91.zip
drm/xe: Enable Fixed CCS mode setting
Disable dynamic HW load balancing of compute resource assignment to engines and instead enabled fixed mode of mapping compute resources to engines on all platforms with more than one compute engine. By default enable only one CCS engine with all compute slices assigned to it. This is the desired configuration for common workloads. PVC platform supports only the fixed CCS mode (workaround 16016805146). v2: Rebase, make it platform agnostic v3: Minor code refactoring Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/regs/xe_gt_regs.h')
-rw-r--r--drivers/gpu/drm/xe/regs/xe_gt_regs.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
index e8dc463a49f6..9744ed0be3a5 100644
--- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
@@ -402,8 +402,22 @@
#define COMP_CKN_IN REG_GENMASK(30, 29)
#define RCU_MODE XE_REG(0x14800, XE_REG_OPTION_MASKED)
+#define RCU_MODE_FIXED_SLICE_CCS_MODE REG_BIT(1)
#define RCU_MODE_CCS_ENABLE REG_BIT(0)
+/*
+ * Total of 4 cslices, where each cslice is in the form:
+ * [0-3] CCS ID
+ * [4-6] RSVD
+ * [7] Disabled
+ */
+#define CCS_MODE XE_REG(0x14804)
+#define CCS_MODE_CSLICE_0_3_MASK REG_GENMASK(11, 0) /* 3 bits per cslice */
+#define CCS_MODE_CSLICE_MASK 0x7 /* CCS0-3 + rsvd */
+#define CCS_MODE_CSLICE_WIDTH ilog2(CCS_MODE_CSLICE_MASK + 1)
+#define CCS_MODE_CSLICE(cslice, ccs) \
+ ((ccs) << ((cslice) * CCS_MODE_CSLICE_WIDTH))
+
#define FORCEWAKE_ACK_GT XE_REG(0x130044)
#define FORCEWAKE_KERNEL BIT(0)
#define FORCEWAKE_USER BIT(1)