[Intel-gfx] [PATCH 13/22] drm/i915: expose _SUBSLICE_MASK GETPARM

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu May 11 15:43:36 UTC 2017


From: Robert Bragg <robert at sixbynine.org>

Assuming a uniform mask across all slices, this enables userspace to
determine the specific sub slices enabled. This information is required,
for example, to be able to analyse some OA counter reports where the
counter configuration depends on the HW sub slice configuration.

Signed-off-by: Robert Bragg <robert at sixbynine.org>
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Matthew Auld <matthew.auld at intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 12 ++++++++++++
 include/uapi/drm/i915_drm.h     |  5 +++++
 2 files changed, 17 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 1ebe0a2b328f..927e1ed5130e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -370,6 +370,18 @@ static int i915_getparam(struct drm_device *dev, void *data,
 		mutex_unlock(&dev_priv->drm.struct_mutex);
 		break;
 	}
+	case I915_PARAM_SUBSLICE_MASK: {
+		const const struct sseu_dev_info *sseu;
+		int ret = i915_mutex_lock_interruptible(&dev_priv->drm);
+		if (ret)
+			return ret;
+
+		sseu = i915_oa_get_sseu(dev_priv, NULL);
+		value = sseu->subslice_mask;
+
+		mutex_unlock(&dev_priv->drm.struct_mutex);
+		break;
+	}
 	default:
 		DRM_DEBUG("Unknown parameter %d\n", param->param);
 		return -EINVAL;
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index 25695c3d9a76..464547d08173 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -421,6 +421,11 @@ typedef struct drm_i915_irq_wait {
 /* Query the mask of slices available for this system */
 #define I915_PARAM_SLICE_MASK		 46
 
+/* Assuming it's uniform for each slice, this queries the mask of subslices
+ * per-slice for this system.
+ */
+#define I915_PARAM_SUBSLICE_MASK	 47
+
 typedef struct drm_i915_getparam {
 	__s32 param;
 	/*
-- 
2.11.0



More information about the Intel-gfx mailing list