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