diff mbox

[3/3] drm/i915/gen9: Drop invalid WARN() during data rate calculation

Message ID 1465510495-30302-4-git-send-email-matthew.d.roper@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Matt Roper June 9, 2016, 10:14 p.m. UTC
It's possible to have a non-zero plane mask and still wind up with a
total data rate of zero.  There are two cases where this can happen:

 * planes are active (from the KMS point of view), but are
   all fully clipped (positioned offscreen)
 * the only active plane on a CRTC is the cursor (which is handled
   independently and not counted into the general data rate computations

These are both valid display setups (although unusual), so we need to
drop the WARN().

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Maarten Lankhorst June 13, 2016, 9:33 a.m. UTC | #1
Op 10-06-16 om 00:14 schreef Matt Roper:
> It's possible to have a non-zero plane mask and still wind up with a
> total data rate of zero.  There are two cases where this can happen:
>
>  * planes are active (from the KMS point of view), but are
>    all fully clipped (positioned offscreen)
>  * the only active plane on a CRTC is the cursor (which is handled
>    independently and not counted into the general data rate computations
>
> These are both valid display setups (although unusual), so we need to
> drop the WARN().
Is there a testcase that triggers this warn? Something for kms_universal_planes perhaps?

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Testcase: kms_universal_planes.cursor-only-pipe-* (will reply here as a patch)
Matt Roper June 17, 2016, 9:25 p.m. UTC | #2
On Mon, Jun 13, 2016 at 11:33:50AM +0200, Maarten Lankhorst wrote:
> Op 10-06-16 om 00:14 schreef Matt Roper:
> > It's possible to have a non-zero plane mask and still wind up with a
> > total data rate of zero.  There are two cases where this can happen:
> >
> >  * planes are active (from the KMS point of view), but are
> >    all fully clipped (positioned offscreen)
> >  * the only active plane on a CRTC is the cursor (which is handled
> >    independently and not counted into the general data rate computations
> >
> > These are both valid display setups (although unusual), so we need to
> > drop the WARN().
> Is there a testcase that triggers this warn? Something for
> kms_universal_planes perhaps?

I do have the start of a new IGT testcase that generates hundreds of
random display configurations (for the purposes of searching for
watermark corner cases); that test triggers this WARN(), but I haven't
posted it yet.

But having extra subtests in the universal plane test sounds good too;
thanks!


Matt

> 
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Testcase: kms_universal_planes.cursor-only-pipe-* (will reply here as a patch)
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index ba08639..2bd089e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3107,8 +3107,6 @@  skl_get_total_relative_data_rate(struct intel_crtc_state *intel_cstate)
 		total_data_rate += intel_cstate->wm.skl.plane_y_data_rate[id];
 	}
 
-	WARN_ON(cstate->plane_mask && total_data_rate == 0);
-
 	return total_data_rate;
 }