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 at bwidawsk.net> --- drivers/gpu/drm/i915/i915_dma.c | 7 +++++-- include/uapi/drm/i915_drm.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 9955dc7..d354c64 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -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; diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 923ed7f..5cb9fd1 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -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; -- 1.8.3.1