@@ -977,8 +977,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
value = HAS_LLC(dev);
break;
case I915_PARAM_HAS_ALIASING_PPGTT:
- if (intel_enable_ppgtt(dev) && dev_priv->gtt.aliasing_ppgtt)
- value = 1;
+ value = 0;
break;
case I915_PARAM_HAS_WAIT_TIMEOUT:
value = 1;
@@ -1001,6 +1000,10 @@ static int i915_getparam(struct drm_device *dev, void *data,
case I915_PARAM_HAS_EXEC_HANDLE_LUT:
value = 1;
break;
+ case I915_PARAM_HAS_FULL_PPGTT:
+ if (intel_enable_ppgtt(dev) && dev_priv->gtt.aliasing_ppgtt)
+ value = 1;
+ break;
default:
DRM_DEBUG("Unknown parameter %d\n", param->param);
return -EINVAL;
@@ -310,6 +310,7 @@ typedef struct drm_i915_irq_wait {
#define I915_PARAM_HAS_PINNED_BATCHES 24
#define I915_PARAM_HAS_EXEC_NO_RELOC 25
#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26
+#define I915_PARAM_HAS_FULL_PPGTT 27
typedef struct drm_i915_getparam {
int param;
As of now (and this may change) we can't have aliasing PPGTT anymore (it just won't happen). We do still have the aliasing ppgtt internally though so we can use that to tell userspace if we have full PPGTT. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> --- drivers/gpu/drm/i915/i915_dma.c | 7 +++++-- include/uapi/drm/i915_drm.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-)