aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Bragg <robert@sixbynine.org>2017-06-13 07:23:00 -0400
committerBen Widawsky <ben@bwidawsk.net>2017-06-14 15:31:57 -0400
commitf532023381df49ac00cb2d1e70df607cf534720d (patch)
treeb5813cf263ffbb024f3d3cf024ef593e76fbe930
parent7fed555c02f754af44f8963890b5ef8e30e97391 (diff)
drm/i915: expose _SUBSLICE_MASK GETPARM
Assuming a uniform mask across all slices, this enables userspace to determine the specific sub slices can be 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@sixbynine.org> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c5
-rw-r--r--include/uapi/drm/i915_drm.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index d503612a7fc1..a534412a5551 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -379,6 +379,11 @@ static int i915_getparam(struct drm_device *dev, void *data,
379 if (!value) 379 if (!value)
380 return -ENODEV; 380 return -ENODEV;
381 break; 381 break;
382 case I915_PARAM_SUBSLICE_MASK:
383 value = INTEL_INFO(dev_priv)->sseu.subslice_mask;
384 if (!value)
385 return -ENODEV;
386 break;
382 default: 387 default:
383 DRM_DEBUG("Unknown parameter %d\n", param->param); 388 DRM_DEBUG("Unknown parameter %d\n", param->param);
384 return -EINVAL; 389 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 {
421/* Query the mask of slices available for this system */ 421/* Query the mask of slices available for this system */
422#define I915_PARAM_SLICE_MASK 46 422#define I915_PARAM_SLICE_MASK 46
423 423
424/* Assuming it's uniform for each slice, this queries the mask of subslices
425 * per-slice for this system.
426 */
427#define I915_PARAM_SUBSLICE_MASK 47
428
424typedef struct drm_i915_getparam { 429typedef struct drm_i915_getparam {
425 __s32 param; 430 __s32 param;
426 /* 431 /*