[Intel-gfx] [PATCH] drm/i915/bdw: Don't allow the FBC base to be 0
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri May 2 10:19:27 CEST 2014
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.runyan at intel.com>
> Signed-off-by: Ben Widawsky <ben at 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list