diff mbox

drm/i915: Bail out of pipe config compute loop on LPT

Message ID 1462264381-7573-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter May 3, 2016, 8:33 a.m. UTC
LPT is pch, so might run into the fdi bandwidth constraint (especially
since it has only 2 lanes). But right now we just force pipe_bpp back
to 24, resulting in a nice loop (which we bail out with a loud
WARN_ON). Fix this.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=93477
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/i915/intel_crt.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Chris Wilson May 3, 2016, 9:15 a.m. UTC | #1
On Tue, May 03, 2016 at 10:33:01AM +0200, Daniel Vetter wrote:
> LPT is pch, so might run into the fdi bandwidth constraint (especially
> since it has only 2 lanes). But right now we just force pipe_bpp back
> to 24, resulting in a nice loop (which we bail out with a loud
> WARN_ON). Fix this.
> 
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=93477
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
Maarten Lankhorst May 3, 2016, 9:29 a.m. UTC | #2
Op 03-05-16 om 10:33 schreef Daniel Vetter:
> LPT is pch, so might run into the fdi bandwidth constraint (especially
> since it has only 2 lanes). But right now we just force pipe_bpp back
> to 24, resulting in a nice loop (which we bail out with a loud
> WARN_ON). Fix this.
>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=93477
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_crt.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index a2a31fd01d1d..3fbb6fc66451 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -261,8 +261,14 @@ static bool intel_crt_compute_config(struct intel_encoder *encoder,
>  		pipe_config->has_pch_encoder = true;
>  
>  	/* LPT FDI RX only supports 8bpc. */
> -	if (HAS_PCH_LPT(dev))
> +	if (HAS_PCH_LPT(dev)) {
> +		if (pipe_config->bw_constrained && pipe_config->pipe_bpp < 24) {
> +			DRM_DEBUG_KMS("LPT only supports 24bpp\n");
> +			return false;
> +		}
> +
>  		pipe_config->pipe_bpp = 24;
> +	}
>  
>  	/* FDI must always be 2.7 GHz */
>  	if (HAS_DDI(dev))

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Chris Wilson May 3, 2016, 9:33 a.m. UTC | #3
On Tue, May 03, 2016 at 09:25:06AM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Bail out of pipe config compute loop on LPT
> URL   : https://patchwork.freedesktop.org/series/6646/
> State : warning
> 
> == Summary ==
> 
> Series 6646v1 drm/i915: Bail out of pipe config compute loop on LPT
> http://patchwork.freedesktop.org/api/1.0/series/6646/revisions/1/mbox/
> 
> Test kms_force_connector_basic:
>         Subgroup force-edid:
>                 pass       -> SKIP       (snb-x220t)
>         Subgroup force-load-detect:
>                 skip       -> PASS       (snb-x220t)
> Test kms_pipe_crc_basic:
>         Subgroup hang-read-crc-pipe-b:
>                 pass       -> DMESG-WARN (snb-dellxps)
> Test kms_sink_crc_basic:
>                 pass       -> SKIP       (bdw-ultra)
> 
> bdw-nuci7-2      total:221  pass:209  dwarn:0   dfail:0   fail:0   skip:12 
> bdw-ultra        total:221  pass:195  dwarn:0   dfail:0   fail:0   skip:26 
> bsw-nuc-2        total:220  pass:176  dwarn:0   dfail:0   fail:3   skip:41 
> byt-nuc          total:220  pass:176  dwarn:0   dfail:0   fail:3   skip:41 
> hsw-brixbox      total:221  pass:195  dwarn:0   dfail:0   fail:0   skip:26 
> hsw-gt2          total:26   pass:23   dwarn:0   dfail:0   fail:0   skip:2  
> ilk-hp8440p      total:221  pass:158  dwarn:0   dfail:0   fail:2   skip:61 
> ivb-t430s        total:221  pass:190  dwarn:0   dfail:0   fail:0   skip:31 
> skl-i7k-2        total:221  pass:194  dwarn:0   dfail:0   fail:0   skip:27 
> skl-nuci5        total:221  pass:210  dwarn:0   dfail:0   fail:0   skip:11 
> snb-dellxps      total:221  pass:178  dwarn:1   dfail:0   fail:0   skip:42 
> snb-x220t        total:221  pass:177  dwarn:0   dfail:0   fail:1   skip:43 

Aside: What's the reason for distinguishing dfail and fail?

A fail is a fail, and there are cases that are outright failures that
get marked as dfail instead.
-Chris
Daniel Vetter May 4, 2016, 3:14 p.m. UTC | #4
On Tue, May 03, 2016 at 09:25:06AM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Bail out of pipe config compute loop on LPT
> URL   : https://patchwork.freedesktop.org/series/6646/
> State : warning
> 
> == Summary ==
> 
> Series 6646v1 drm/i915: Bail out of pipe config compute loop on LPT
> http://patchwork.freedesktop.org/api/1.0/series/6646/revisions/1/mbox/
> 
> Test kms_force_connector_basic:
>         Subgroup force-edid:
>                 pass       -> SKIP       (snb-x220t)
>         Subgroup force-load-detect:
>                 skip       -> PASS       (snb-x220t)

Both an old classic:

https://bugs.freedesktop.org/show_bug.cgi?id=93769

> Test kms_pipe_crc_basic:
>         Subgroup hang-read-crc-pipe-b:
>                 pass       -> DMESG-WARN (snb-dellxps)

Shows up a few times in CI, but no bug yet filed. I made a new one:

https://bugs.freedesktop.org/show_bug.cgi?id=95262

> Test kms_sink_crc_basic:
>                 pass       -> SKIP       (bdw-ultra)

Seems to be a dupe of the existing bug:

https://bugs.freedesktop.org/show_bug.cgi?id=94417

> 
> bdw-nuci7-2      total:221  pass:209  dwarn:0   dfail:0   fail:0   skip:12 
> bdw-ultra        total:221  pass:195  dwarn:0   dfail:0   fail:0   skip:26 
> bsw-nuc-2        total:220  pass:176  dwarn:0   dfail:0   fail:3   skip:41 
> byt-nuc          total:220  pass:176  dwarn:0   dfail:0   fail:3   skip:41 
> hsw-brixbox      total:221  pass:195  dwarn:0   dfail:0   fail:0   skip:26 
> hsw-gt2          total:26   pass:23   dwarn:0   dfail:0   fail:0   skip:2  
> ilk-hp8440p      total:221  pass:158  dwarn:0   dfail:0   fail:2   skip:61 
> ivb-t430s        total:221  pass:190  dwarn:0   dfail:0   fail:0   skip:31 
> skl-i7k-2        total:221  pass:194  dwarn:0   dfail:0   fail:0   skip:27 
> skl-nuci5        total:221  pass:210  dwarn:0   dfail:0   fail:0   skip:11 
> snb-dellxps      total:221  pass:178  dwarn:1   dfail:0   fail:0   skip:42 
> snb-x220t        total:221  pass:177  dwarn:0   dfail:0   fail:1   skip:43 
> 
> Results at /archive/results/CI_IGT_test/Patchwork_2126/
> 
> 4c6b0d9cea0a81653fc290fe64d5c43e7d5c5762 drm-intel-nightly: 2016y-05m-03d-08h-18m-32s UTC integration manifest
> 1581c79 drm/i915: Bail out of pipe config compute loop on LPT
>
Daniel Vetter May 4, 2016, 3:16 p.m. UTC | #5
On Tue, May 03, 2016 at 11:29:21AM +0200, Maarten Lankhorst wrote:
> Op 03-05-16 om 10:33 schreef Daniel Vetter:
> > LPT is pch, so might run into the fdi bandwidth constraint (especially
> > since it has only 2 lanes). But right now we just force pipe_bpp back
> > to 24, resulting in a nice loop (which we bail out with a loud
> > WARN_ON). Fix this.
> >
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=93477
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_crt.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> > index a2a31fd01d1d..3fbb6fc66451 100644
> > --- a/drivers/gpu/drm/i915/intel_crt.c
> > +++ b/drivers/gpu/drm/i915/intel_crt.c
> > @@ -261,8 +261,14 @@ static bool intel_crt_compute_config(struct intel_encoder *encoder,
> >  		pipe_config->has_pch_encoder = true;
> >  
> >  	/* LPT FDI RX only supports 8bpc. */
> > -	if (HAS_PCH_LPT(dev))
> > +	if (HAS_PCH_LPT(dev)) {
> > +		if (pipe_config->bw_constrained && pipe_config->pipe_bpp < 24) {
> > +			DRM_DEBUG_KMS("LPT only supports 24bpp\n");
> > +			return false;
> > +		}
> > +
> >  		pipe_config->pipe_bpp = 24;
> > +	}
> >  
> >  	/* FDI must always be 2.7 GHz */
> >  	if (HAS_DDI(dev))
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Applied the patch to dinq.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index a2a31fd01d1d..3fbb6fc66451 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -261,8 +261,14 @@  static bool intel_crt_compute_config(struct intel_encoder *encoder,
 		pipe_config->has_pch_encoder = true;
 
 	/* LPT FDI RX only supports 8bpc. */
-	if (HAS_PCH_LPT(dev))
+	if (HAS_PCH_LPT(dev)) {
+		if (pipe_config->bw_constrained && pipe_config->pipe_bpp < 24) {
+			DRM_DEBUG_KMS("LPT only supports 24bpp\n");
+			return false;
+		}
+
 		pipe_config->pipe_bpp = 24;
+	}
 
 	/* FDI must always be 2.7 GHz */
 	if (HAS_DDI(dev))