summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gt/intel_sseu.h
diff options
context:
space:
mode:
authorStuart Summers <stuart.summers@intel.com>2019-08-23 09:03:04 -0700
committerChris Wilson <chris@chris-wilson.co.uk>2019-08-23 19:14:25 +0100
commite1210bbfb1f8dc2865e8ebd6884afa895333b6e4 (patch)
tree48e925687c53b918ab8e4ef836a3ed1775cf2e31 /drivers/gpu/drm/i915/gt/intel_sseu.h
parent6db40ec80f544e289fe836319b20fcc19a454e8d (diff)
downloadlinux-e1210bbfb1f8dc2865e8ebd6884afa895333b6e4.tar.bz2
drm/i915: Add function to determine if a slice has a subslice
Add a new function to determine whether a particular slice has a given subslice. Signed-off-by: Stuart Summers <stuart.summers@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190823160307.180813-9-stuart.summers@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_sseu.h')
-rw-r--r--drivers/gpu/drm/i915/gt/intel_sseu.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gt/intel_sseu.h b/drivers/gpu/drm/i915/gt/intel_sseu.h
index 73a9064291a2..7703d75f2da3 100644
--- a/drivers/gpu/drm/i915/gt/intel_sseu.h
+++ b/drivers/gpu/drm/i915/gt/intel_sseu.h
@@ -10,6 +10,8 @@
#include <linux/types.h>
#include <linux/kernel.h>
+#include "i915_gem.h"
+
struct drm_i915_private;
#define GEN_MAX_SLICES (6) /* CNL upper bound */
@@ -69,6 +71,20 @@ intel_sseu_from_device_info(const struct sseu_dev_info *sseu)
return value;
}
+static inline bool
+intel_sseu_has_subslice(const struct sseu_dev_info *sseu, int slice,
+ int subslice)
+{
+ u8 mask;
+ int ss_idx = subslice / BITS_PER_BYTE;
+
+ GEM_BUG_ON(ss_idx >= sseu->ss_stride);
+
+ mask = sseu->subslice_mask[slice * sseu->ss_stride + ss_idx];
+
+ return mask & BIT(subslice % BITS_PER_BYTE);
+}
+
void intel_sseu_set_info(struct sseu_dev_info *sseu, u8 max_slices,
u8 max_subslices, u8 max_eus_per_subslice);