On Thu, May 01, 2014 at 06:47:54PM -0700, Ben Widawsky wrote:
> "Restriction :
> The offset must be greater than 4K bytes, avoiding the first 4KB of
> stolen memory."

Isn't this a more generic issue that we must avoid the first 4k? If so
I think we should just reserve the first 4k permanently at driver init
time.

> 
> Since it looks like we currently allocate an overlay out of stolen
> before we get the compressed framebuffer, I believe this is not
> currently an issue which fixes anything. We simply want to make the code
> as future-proof, and as clear as possible, by match the spec.
> 
> Cc: Art Runyan <arthur.j.run...@intel.com>
> Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/i915_gem_stolen.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c 
> b/drivers/gpu/drm/i915/i915_gem_stolen.c
> index 62ef55b..65016b0 100644
> --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
> @@ -107,19 +107,24 @@ static int i915_setup_compression(struct drm_device 
> *dev, int size)
>  {
>       struct drm_i915_private *dev_priv = dev->dev_private;
>       struct drm_mm_node *compressed_fb, *uninitialized_var(compressed_llb);
> +     unsigned long start = 0;
>       int ret;
>  
>       compressed_fb = kzalloc(sizeof(*compressed_fb), GFP_KERNEL);
>       if (!compressed_fb)
>               goto err_llb;
>  
> +     if (IS_BROADWELL(dev))
> +             start = 0x1000;
> +
>       /* Try to over-allocate to reduce reallocations and fragmentation */
> -     ret = drm_mm_insert_node(&dev_priv->mm.stolen, compressed_fb,
> -                              size <<= 1, 4096, DRM_MM_SEARCH_DEFAULT);
> +     ret = drm_mm_insert_node_in_range(&dev_priv->mm.stolen, compressed_fb,
> +                                       size <<= 1, 4096, start, 
> dev_priv->gtt.stolen_size,
> +                                       DRM_MM_SEARCH_DEFAULT);
>       if (ret)
> -             ret = drm_mm_insert_node(&dev_priv->mm.stolen, compressed_fb,
> -                                      size >>= 1, 4096,
> -                                      DRM_MM_SEARCH_DEFAULT);
> +             ret = drm_mm_insert_node_in_range(&dev_priv->mm.stolen, 
> compressed_fb,
> +                                               size >>= 1, 4096, start, 
> dev_priv->gtt.stolen_size,
> +                                               DRM_MM_SEARCH_DEFAULT);
>       if (ret)
>               goto err_llb;
>  
> -- 
> 1.9.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to