drm/i915: expose _SUBSLICE_MASK GETPARM
authorRobert Bragg <robert@sixbynine.org>
Tue, 13 Jun 2017 11:23:00 +0000 (12:23 +0100)
committerBen Widawsky <ben@bwidawsk.net>
Wed, 14 Jun 2017 19:31:57 +0000 (12:31 -0700)
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>
drivers/gpu/drm/i915/i915_drv.c
include/uapi/drm/i915_drm.h

index d503612a7fc11196823e4277ee60a636c3bc4b9c..a534412a5551d467043480d7a28332dfe8d69a09 100644 (file)
@@ -379,6 +379,11 @@ static int i915_getparam(struct drm_device *dev, void *data,
                if (!value)
                        return -ENODEV;
                break;
+       case I915_PARAM_SUBSLICE_MASK:
+               value = INTEL_INFO(dev_priv)->sseu.subslice_mask;
+               if (!value)
+                       return -ENODEV;
+               break;
        default:
                DRM_DEBUG("Unknown parameter %d\n", param->param);
                return -EINVAL;
index 25695c3d9a76bd22fc5951ddbb7d00307af66e9c..464547d0817389fe63cf61d032d49a17f0b13523 100644 (file)
@@ -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;
        /*