Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
On Thu, Jun 19, 2014 at 12:06 PM, Ben Widawsky <benjamin.widaw...@intel.com> wrote: > Right now, there is no threshold (0 means fail, 1 means 1:1 compression > limit). This is to split the function/non-functional change of the next > patch. > > The next patch will start to attempt to reduce the amount of CFB space > we need for dire situations. It will be contained within this function. > > Signed-off-by: Ben Widawsky <b...@bwidawsk.net> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 26 ++++++++++++++++++++------ > 1 file changed, 20 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c > b/drivers/gpu/drm/i915/i915_gem_stolen.c > index 642fd36..a86b331 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -103,22 +103,36 @@ static unsigned long i915_stolen_to_physical(struct > drm_device *dev) > return base; > } > > -static int i915_setup_compression(struct drm_device *dev, int size) > +static int find_compression_threshold(struct drm_device *dev, > + struct drm_mm_node *node, > + int size) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - struct drm_mm_node *uninitialized_var(compressed_llb); > + const int compression_threshold = 1; > int ret; > > /* Try to over-allocate to reduce reallocations and fragmentation > */ > - ret = drm_mm_insert_node(&dev_priv->mm.stolen, > - &dev_priv->fbc.compressed_fb, > + ret = drm_mm_insert_node(&dev_priv->mm.stolen, node, > size <<= 1, 4096, DRM_MM_SEARCH_DEFAULT); > if (ret) > - ret = drm_mm_insert_node(&dev_priv->mm.stolen, > - &dev_priv->fbc.compressed_fb, > + ret = drm_mm_insert_node(&dev_priv->mm.stolen, node, > size >>= 1, 4096, > DRM_MM_SEARCH_DEFAULT); > if (ret) > + return 0; > + else > + return compression_threshold; > +} > + > +static int i915_setup_compression(struct drm_device *dev, int size) > +{ > + struct drm_i915_private *dev_priv = dev->dev_private; > + struct drm_mm_node *uninitialized_var(compressed_llb); > + int ret; > + > + ret = find_compression_threshold(dev, &dev_priv->fbc.compressed_fb, > + size); > + if (!ret) > goto err_llb; > > if (HAS_PCH_SPLIT(dev)) > -- > 2.0.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > -- Rodrigo Vivi Blog: http://blog.vivi.eng.br
_______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx