All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
@ 2013-07-27 16:23 Chris Wilson
  2013-07-27 22:13 ` Ben Widawsky
  0 siblings, 1 reply; 7+ messages in thread
From: Chris Wilson @ 2013-07-27 16:23 UTC (permalink / raw)
  To: intel-gfx

Almost invariably the reason why FBC cannot be turned on is the same
every time (disabled via parameter, too many pipes, pipe too large etc)
as modesetting and framebuffer configuration changes less frequently
than trying to enable FBC.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_debugfs.c |  6 ++++
 drivers/gpu/drm/i915/i915_drv.h     |  4 ++-
 drivers/gpu/drm/i915/intel_pm.c     | 59 +++++++++++++++++++++++--------------
 3 files changed, 46 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index cc3e74a..9324798 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1099,6 +1099,12 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
 	} else {
 		seq_puts(m, "FBC disabled: ");
 		switch (dev_priv->fbc.no_fbc_reason) {
+		case FBC_OK:
+			seq_puts(m, "FBC actived, but currently disabled in hardware");
+			break;
+		case FBC_UNSUPPORTED:
+			seq_puts(m, "unsupported by this chipset");
+			break;
 		case FBC_NO_OUTPUT:
 			seq_puts(m, "no outputs");
 			break;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 71232bc..34d2b9d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -589,7 +589,9 @@ struct i915_fbc {
 		int interval;
 	} *fbc_work;
 
-	enum {
+	enum no_fbc_reason {
+		FBC_OK, /* FBC is enabled */
+		FBC_UNSUPPORTED, /* FBC is not supported by this chipset */
 		FBC_NO_OUTPUT, /* no outputs enabled to compress */
 		FBC_STOLEN_TOO_SMALL, /* not enough space for buffers */
 		FBC_UNSUPPORTED_MODE, /* interlace or doublescanned mode */
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index e9e467c..983ed14 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -421,6 +421,16 @@ void intel_disable_fbc(struct drm_device *dev)
 	dev_priv->fbc.plane = -1;
 }
 
+static bool set_no_fbc_reason(struct drm_i915_private *dev_priv,
+			      enum no_fbc_reason reason)
+{
+	if (dev_priv->fbc.no_fbc_reason == reason)
+		return false;
+
+	dev_priv->fbc.no_fbc_reason = reason;
+	return true;
+}
+
 /**
  * intel_update_fbc - enable/disable FBC as needed
  * @dev: the drm_device
@@ -450,11 +460,16 @@ void intel_update_fbc(struct drm_device *dev)
 	struct drm_i915_gem_object *obj;
 	unsigned int max_hdisplay, max_vdisplay;
 
-	if (!i915_powersave)
+	if (!I915_HAS_FBC(dev)) {
+		set_no_fbc_reason(dev_priv, FBC_UNSUPPORTED);
 		return;
+	}
 
-	if (!I915_HAS_FBC(dev))
+	if (!i915_powersave) {
+		if (set_no_fbc_reason(dev_priv, FBC_MODULE_PARAM))
+			DRM_DEBUG_KMS("fbc disabled per module param\n");
 		return;
+	}
 
 	/*
 	 * If FBC is already on, we just have to verify that we can
@@ -469,9 +484,8 @@ void intel_update_fbc(struct drm_device *dev)
 		if (intel_crtc_active(tmp_crtc) &&
 		    !to_intel_crtc(tmp_crtc)->primary_disabled) {
 			if (crtc) {
-				DRM_DEBUG_KMS("more than one pipe active, disabling compression\n");
-				dev_priv->fbc.no_fbc_reason =
-					FBC_MULTIPLE_PIPES;
+				if (set_no_fbc_reason(dev_priv, FBC_MULTIPLE_PIPES))
+					DRM_DEBUG_KMS("more than one pipe active, disabling compression\n");
 				goto out_disable;
 			}
 			crtc = tmp_crtc;
@@ -479,8 +493,8 @@ void intel_update_fbc(struct drm_device *dev)
 	}
 
 	if (!crtc || crtc->fb == NULL) {
-		DRM_DEBUG_KMS("no output, disabling\n");
-		dev_priv->fbc.no_fbc_reason = FBC_NO_OUTPUT;
+		if (set_no_fbc_reason(dev_priv, FBC_NO_OUTPUT))
+			DRM_DEBUG_KMS("no output, disabling\n");
 		goto out_disable;
 	}
 
@@ -491,20 +505,20 @@ void intel_update_fbc(struct drm_device *dev)
 
 	if (i915_enable_fbc < 0 &&
 	    INTEL_INFO(dev)->gen <= 7 && !IS_HASWELL(dev)) {
-		DRM_DEBUG_KMS("disabled per chip default\n");
-		dev_priv->fbc.no_fbc_reason = FBC_CHIP_DEFAULT;
+		if (set_no_fbc_reason(dev_priv, FBC_CHIP_DEFAULT))
+			DRM_DEBUG_KMS("disabled per chip default\n");
 		goto out_disable;
 	}
 	if (!i915_enable_fbc) {
-		DRM_DEBUG_KMS("fbc disabled per module param\n");
-		dev_priv->fbc.no_fbc_reason = FBC_MODULE_PARAM;
+		if (set_no_fbc_reason(dev_priv, FBC_MODULE_PARAM))
+			DRM_DEBUG_KMS("fbc disabled per module param\n");
 		goto out_disable;
 	}
 	if ((crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) ||
 	    (crtc->mode.flags & DRM_MODE_FLAG_DBLSCAN)) {
-		DRM_DEBUG_KMS("mode incompatible with compression, "
-			      "disabling\n");
-		dev_priv->fbc.no_fbc_reason = FBC_UNSUPPORTED_MODE;
+		if (set_no_fbc_reason(dev_priv, FBC_UNSUPPORTED_MODE))
+			DRM_DEBUG_KMS("mode incompatible with compression, "
+				      "disabling\n");
 		goto out_disable;
 	}
 
@@ -517,14 +531,14 @@ void intel_update_fbc(struct drm_device *dev)
 	}
 	if ((crtc->mode.hdisplay > max_hdisplay) ||
 	    (crtc->mode.vdisplay > max_vdisplay)) {
-		DRM_DEBUG_KMS("mode too large for compression, disabling\n");
-		dev_priv->fbc.no_fbc_reason = FBC_MODE_TOO_LARGE;
+		if (set_no_fbc_reason(dev_priv, FBC_MODE_TOO_LARGE))
+			DRM_DEBUG_KMS("mode too large for compression, disabling\n");
 		goto out_disable;
 	}
 	if ((IS_I915GM(dev) || IS_I945GM(dev) || IS_HASWELL(dev)) &&
 	    intel_crtc->plane != 0) {
-		DRM_DEBUG_KMS("plane not 0, disabling compression\n");
-		dev_priv->fbc.no_fbc_reason = FBC_BAD_PLANE;
+		if (set_no_fbc_reason(dev_priv, FBC_BAD_PLANE))
+			DRM_DEBUG_KMS("plane not 0, disabling compression\n");
 		goto out_disable;
 	}
 
@@ -533,8 +547,8 @@ void intel_update_fbc(struct drm_device *dev)
 	 */
 	if (obj->tiling_mode != I915_TILING_X ||
 	    obj->fence_reg == I915_FENCE_REG_NONE) {
-		DRM_DEBUG_KMS("framebuffer not tiled or fenced, disabling compression\n");
-		dev_priv->fbc.no_fbc_reason = FBC_NOT_TILED;
+		if (set_no_fbc_reason(dev_priv, FBC_NOT_TILED))
+			DRM_DEBUG_KMS("framebuffer not tiled or fenced, disabling compression\n");
 		goto out_disable;
 	}
 
@@ -543,8 +557,8 @@ void intel_update_fbc(struct drm_device *dev)
 		goto out_disable;
 
 	if (i915_gem_stolen_setup_compression(dev, intel_fb->obj->base.size)) {
-		DRM_DEBUG_KMS("framebuffer too large, disabling compression\n");
-		dev_priv->fbc.no_fbc_reason = FBC_STOLEN_TOO_SMALL;
+		if (set_no_fbc_reason(dev_priv, FBC_STOLEN_TOO_SMALL))
+			DRM_DEBUG_KMS("framebuffer too large, disabling compression\n");
 		goto out_disable;
 	}
 
@@ -587,6 +601,7 @@ void intel_update_fbc(struct drm_device *dev)
 	}
 
 	intel_enable_fbc(crtc, 500);
+	dev_priv->fbc.no_fbc_reason = FBC_OK;
 	return;
 
 out_disable:
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-27 16:23 [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated Chris Wilson
@ 2013-07-27 22:13 ` Ben Widawsky
  2013-07-27 22:30   ` Chris Wilson
  0 siblings, 1 reply; 7+ messages in thread
From: Ben Widawsky @ 2013-07-27 22:13 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

On Sat, Jul 27, 2013 at 05:23:55PM +0100, Chris Wilson wrote:
> Almost invariably the reason why FBC cannot be turned on is the same
> every time (disabled via parameter, too many pipes, pipe too large etc)
> as modesetting and framebuffer configuration changes less frequently
> than trying to enable FBC.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c |  6 ++++
>  drivers/gpu/drm/i915/i915_drv.h     |  4 ++-
>  drivers/gpu/drm/i915/intel_pm.c     | 59 +++++++++++++++++++++++--------------
>  3 files changed, 46 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index cc3e74a..9324798 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1099,6 +1099,12 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
>  	} else {
>  		seq_puts(m, "FBC disabled: ");
>  		switch (dev_priv->fbc.no_fbc_reason) {
> +		case FBC_OK:
> +			seq_puts(m, "FBC actived, but currently disabled in hardware");
> +			break;
> +		case FBC_UNSUPPORTED:
> +			seq_puts(m, "unsupported by this chipset");
> +			break;
>  		case FBC_NO_OUTPUT:
>  			seq_puts(m, "no outputs");
>  			break;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 71232bc..34d2b9d 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -589,7 +589,9 @@ struct i915_fbc {
>  		int interval;
>  	} *fbc_work;
>  
> -	enum {
> +	enum no_fbc_reason {
> +		FBC_OK, /* FBC is enabled */
> +		FBC_UNSUPPORTED, /* FBC is not supported by this chipset */

Don't we already have FBC_CHIP_DEFAULT for this?

>  		FBC_NO_OUTPUT, /* no outputs enabled to compress */
>  		FBC_STOLEN_TOO_SMALL, /* not enough space for buffers */
>  		FBC_UNSUPPORTED_MODE, /* interlace or doublescanned mode */
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index e9e467c..983ed14 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -421,6 +421,16 @@ void intel_disable_fbc(struct drm_device *dev)
>  	dev_priv->fbc.plane = -1;
>  }
>  
> +static bool set_no_fbc_reason(struct drm_i915_private *dev_priv,
> +			      enum no_fbc_reason reason)
> +{
> +	if (dev_priv->fbc.no_fbc_reason == reason)
> +		return false;
> +
> +	dev_priv->fbc.no_fbc_reason = reason;
> +	return true;
> +}
> +

This should only return true if no_fbc_reason != FBC_OK, right?

>  /**
>   * intel_update_fbc - enable/disable FBC as needed
>   * @dev: the drm_device
> @@ -450,11 +460,16 @@ void intel_update_fbc(struct drm_device *dev)
>  	struct drm_i915_gem_object *obj;
>  	unsigned int max_hdisplay, max_vdisplay;
>  
> -	if (!i915_powersave)
> +	if (!I915_HAS_FBC(dev)) {
> +		set_no_fbc_reason(dev_priv, FBC_UNSUPPORTED);
>  		return;
> +	}
>  
> -	if (!I915_HAS_FBC(dev))
> +	if (!i915_powersave) {
> +		if (set_no_fbc_reason(dev_priv, FBC_MODULE_PARAM))
> +			DRM_DEBUG_KMS("fbc disabled per module param\n");
>  		return;
> +	}
>  
>  	/*
>  	 * If FBC is already on, we just have to verify that we can
> @@ -469,9 +484,8 @@ void intel_update_fbc(struct drm_device *dev)
>  		if (intel_crtc_active(tmp_crtc) &&
>  		    !to_intel_crtc(tmp_crtc)->primary_disabled) {
>  			if (crtc) {
> -				DRM_DEBUG_KMS("more than one pipe active, disabling compression\n");
> -				dev_priv->fbc.no_fbc_reason =
> -					FBC_MULTIPLE_PIPES;
> +				if (set_no_fbc_reason(dev_priv, FBC_MULTIPLE_PIPES))
> +					DRM_DEBUG_KMS("more than one pipe active, disabling compression\n");
>  				goto out_disable;
>  			}
>  			crtc = tmp_crtc;
> @@ -479,8 +493,8 @@ void intel_update_fbc(struct drm_device *dev)
>  	}
>  
>  	if (!crtc || crtc->fb == NULL) {
> -		DRM_DEBUG_KMS("no output, disabling\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_NO_OUTPUT;
> +		if (set_no_fbc_reason(dev_priv, FBC_NO_OUTPUT))
> +			DRM_DEBUG_KMS("no output, disabling\n");
>  		goto out_disable;
>  	}
>  
> @@ -491,20 +505,20 @@ void intel_update_fbc(struct drm_device *dev)
>  
>  	if (i915_enable_fbc < 0 &&
>  	    INTEL_INFO(dev)->gen <= 7 && !IS_HASWELL(dev)) {
> -		DRM_DEBUG_KMS("disabled per chip default\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_CHIP_DEFAULT;
> +		if (set_no_fbc_reason(dev_priv, FBC_CHIP_DEFAULT))
> +			DRM_DEBUG_KMS("disabled per chip default\n");
>  		goto out_disable;
>  	}
>  	if (!i915_enable_fbc) {
> -		DRM_DEBUG_KMS("fbc disabled per module param\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_MODULE_PARAM;
> +		if (set_no_fbc_reason(dev_priv, FBC_MODULE_PARAM))
> +			DRM_DEBUG_KMS("fbc disabled per module param\n");
>  		goto out_disable;
>  	}
>  	if ((crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) ||
>  	    (crtc->mode.flags & DRM_MODE_FLAG_DBLSCAN)) {
> -		DRM_DEBUG_KMS("mode incompatible with compression, "
> -			      "disabling\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_UNSUPPORTED_MODE;
> +		if (set_no_fbc_reason(dev_priv, FBC_UNSUPPORTED_MODE))
> +			DRM_DEBUG_KMS("mode incompatible with compression, "
> +				      "disabling\n");
>  		goto out_disable;
>  	}
>  
> @@ -517,14 +531,14 @@ void intel_update_fbc(struct drm_device *dev)
>  	}
>  	if ((crtc->mode.hdisplay > max_hdisplay) ||
>  	    (crtc->mode.vdisplay > max_vdisplay)) {
> -		DRM_DEBUG_KMS("mode too large for compression, disabling\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_MODE_TOO_LARGE;
> +		if (set_no_fbc_reason(dev_priv, FBC_MODE_TOO_LARGE))
> +			DRM_DEBUG_KMS("mode too large for compression, disabling\n");
>  		goto out_disable;
>  	}
>  	if ((IS_I915GM(dev) || IS_I945GM(dev) || IS_HASWELL(dev)) &&
>  	    intel_crtc->plane != 0) {
> -		DRM_DEBUG_KMS("plane not 0, disabling compression\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_BAD_PLANE;
> +		if (set_no_fbc_reason(dev_priv, FBC_BAD_PLANE))
> +			DRM_DEBUG_KMS("plane not 0, disabling compression\n");
>  		goto out_disable;
>  	}
>  
> @@ -533,8 +547,8 @@ void intel_update_fbc(struct drm_device *dev)
>  	 */
>  	if (obj->tiling_mode != I915_TILING_X ||
>  	    obj->fence_reg == I915_FENCE_REG_NONE) {
> -		DRM_DEBUG_KMS("framebuffer not tiled or fenced, disabling compression\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_NOT_TILED;
> +		if (set_no_fbc_reason(dev_priv, FBC_NOT_TILED))
> +			DRM_DEBUG_KMS("framebuffer not tiled or fenced, disabling compression\n");
>  		goto out_disable;
>  	}
>  
> @@ -543,8 +557,8 @@ void intel_update_fbc(struct drm_device *dev)
>  		goto out_disable;
>  
>  	if (i915_gem_stolen_setup_compression(dev, intel_fb->obj->base.size)) {
> -		DRM_DEBUG_KMS("framebuffer too large, disabling compression\n");
> -		dev_priv->fbc.no_fbc_reason = FBC_STOLEN_TOO_SMALL;
> +		if (set_no_fbc_reason(dev_priv, FBC_STOLEN_TOO_SMALL))
> +			DRM_DEBUG_KMS("framebuffer too large, disabling compression\n");
>  		goto out_disable;
>  	}
>  
> @@ -587,6 +601,7 @@ void intel_update_fbc(struct drm_device *dev)
>  	}
>  
>  	intel_enable_fbc(crtc, 500);
> +	dev_priv->fbc.no_fbc_reason = FBC_OK;
>  	return;
>  
>  out_disable:

Looks good to me otherwise.

-- 
Ben Widawsky, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-27 22:13 ` Ben Widawsky
@ 2013-07-27 22:30   ` Chris Wilson
  2013-07-27 22:56     ` Ben Widawsky
  0 siblings, 1 reply; 7+ messages in thread
From: Chris Wilson @ 2013-07-27 22:30 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: intel-gfx

On Sat, Jul 27, 2013 at 03:13:16PM -0700, Ben Widawsky wrote:
> On Sat, Jul 27, 2013 at 05:23:55PM +0100, Chris Wilson wrote:
> > -	enum {
> > +	enum no_fbc_reason {
> > +		FBC_OK, /* FBC is enabled */
> > +		FBC_UNSUPPORTED, /* FBC is not supported by this chipset */
> 
> Don't we already have FBC_CHIP_DEFAULT for this?

No CHIP_DEFAULT is used for when the module parameter is -1 and the
default behaviour is to off. (So really FBC_MODULE_PARAM). This is
another scenario where we don't even try and perform fbc as there is no
code. It should not be possible for i915_fbc_status to ever report
FBC_UNSUPPORTED, but is possible for it to report CHIP_DEFAULT. It's a
subtle distinction. :)

> > +static bool set_no_fbc_reason(struct drm_i915_private *dev_priv,
> > +			      enum no_fbc_reason reason)
> > +{
> > +	if (dev_priv->fbc.no_fbc_reason == reason)
> > +		return false;
> > +
> > +	dev_priv->fbc.no_fbc_reason = reason;
> > +	return true;
> > +}
> > +
> 
> This should only return true if no_fbc_reason != FBC_OK, right?

We want the message on transition from FBC_OK -> error as well so that
we log when we go from enabling FBC to having to disable it for some
reason. That reason is likely to be the same over many off -> on -> off
loops, but useful info I think. You could argue that it would be useful
to refresh the no_fbc_reason message on every modeset for debugging
convenience - but I'm biased as I've found this message to always be
noise.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-27 22:30   ` Chris Wilson
@ 2013-07-27 22:56     ` Ben Widawsky
  2013-07-27 23:02       ` Chris Wilson
  0 siblings, 1 reply; 7+ messages in thread
From: Ben Widawsky @ 2013-07-27 22:56 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

On Sat, Jul 27, 2013 at 11:30:16PM +0100, Chris Wilson wrote:
> On Sat, Jul 27, 2013 at 03:13:16PM -0700, Ben Widawsky wrote:
> > On Sat, Jul 27, 2013 at 05:23:55PM +0100, Chris Wilson wrote:

> > 
> > This should only return true if no_fbc_reason != FBC_OK, right?
> 
> We want the message on transition from FBC_OK -> error as well so that
> we log when we go from enabling FBC to having to disable it for some
> reason. That reason is likely to be the same over many off -> on -> off
> loops, but useful info I think. You could argue that it would be useful
> to refresh the no_fbc_reason message on every modeset for debugging
> convenience - but I'm biased as I've found this message to always be
> noise.
> -Chris

What I meant is, you don't want it to return true if you go from:
FBC_OFF_FOR_REASON_A->FBC_OFF_FOR_REASON_B

Only when you go from:
FBC_OK -> !FBC_OK

-- 
Ben Widawsky, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-27 22:56     ` Ben Widawsky
@ 2013-07-27 23:02       ` Chris Wilson
  2013-07-31  7:43         ` Ben Widawsky
  0 siblings, 1 reply; 7+ messages in thread
From: Chris Wilson @ 2013-07-27 23:02 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: intel-gfx

On Sat, Jul 27, 2013 at 03:56:29PM -0700, Ben Widawsky wrote:
> What I meant is, you don't want it to return true if you go from:
> FBC_OFF_FOR_REASON_A->FBC_OFF_FOR_REASON_B
> 
> Only when you go from:
> FBC_OK -> !FBC_OK

I wanted the A -> B messages as when looking at the logs knowing the
current reason why FBC is disabled is important (imo).
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-27 23:02       ` Chris Wilson
@ 2013-07-31  7:43         ` Ben Widawsky
  2013-08-05  5:37           ` Daniel Vetter
  0 siblings, 1 reply; 7+ messages in thread
From: Ben Widawsky @ 2013-07-31  7:43 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

On Sun, Jul 28, 2013 at 12:02:16AM +0100, Chris Wilson wrote:
> On Sat, Jul 27, 2013 at 03:56:29PM -0700, Ben Widawsky wrote:
> > What I meant is, you don't want it to return true if you go from:
> > FBC_OFF_FOR_REASON_A->FBC_OFF_FOR_REASON_B
> > 
> > Only when you go from:
> > FBC_OK -> !FBC_OK
> 
> I wanted the A -> B messages as when looking at the logs knowing the
> current reason why FBC is disabled is important (imo).
> -Chris
> 
> -- 
> Chris Wilson, Intel Open Source Technology Centre

Merged this to my temporary tree for when Daniel returns.

-- 
Ben Widawsky, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated
  2013-07-31  7:43         ` Ben Widawsky
@ 2013-08-05  5:37           ` Daniel Vetter
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2013-08-05  5:37 UTC (permalink / raw)
  To: Ben Widawsky; +Cc: intel-gfx

On Wed, Jul 31, 2013 at 12:43:55AM -0700, Ben Widawsky wrote:
> On Sun, Jul 28, 2013 at 12:02:16AM +0100, Chris Wilson wrote:
> > On Sat, Jul 27, 2013 at 03:56:29PM -0700, Ben Widawsky wrote:
> > > What I meant is, you don't want it to return true if you go from:
> > > FBC_OFF_FOR_REASON_A->FBC_OFF_FOR_REASON_B
> > > 
> > > Only when you go from:
> > > FBC_OK -> !FBC_OK
> > 
> > I wanted the A -> B messages as when looking at the logs knowing the
> > current reason why FBC is disabled is important (imo).
> > -Chris
> > 
> > -- 
> > Chris Wilson, Intel Open Source Technology Centre
> 
> Merged this to my temporary tree for when Daniel returns.

Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-08-05  5:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-27 16:23 [PATCH] drm/i915: Squelch repeated reasoning for why FBC cannot be activated Chris Wilson
2013-07-27 22:13 ` Ben Widawsky
2013-07-27 22:30   ` Chris Wilson
2013-07-27 22:56     ` Ben Widawsky
2013-07-27 23:02       ` Chris Wilson
2013-07-31  7:43         ` Ben Widawsky
2013-08-05  5:37           ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.