On Wed, Nov 07, 2018 at 11:35:20PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> ironlake_check_fdi_lanes() may try to grab some extra crtc locks.
> If that fails we need to propagate the -EDEADLK all the way up,
> and we shouldn't dump out the crtc state or other debug messages
> either since it wasn't the crtc state that caused the failure.
> 
> Just hit this on my IVB:
> [drm:intel_atomic_check [i915]] checking fdi config on pipe C, lanes 3
> [drm:intel_atomic_check [i915]] only 2 lanes on pipe C: required 3 lanes
> [drm:intel_atomic_check [i915]] fdi link bw constraint, reducing pipe bpp to 
> 18
> [drm:intel_atomic_check [i915]] checking fdi config on pipe C, lanes 2
> [drm:intel_atomic_check [i915]] CRTC bw constrained, retrying
> [drm:intel_dp_compute_config [i915]] DP link computation with max lane count 
> 4 max rate 270000 max bpp 18 pixel clock 185580KHz
> [drm:intel_dp_compute_config [i915]] DP lane count 4 clock 162000 bpp 18
> [drm:intel_dp_compute_config [i915]] DP link rate required 417555 available 
> 648000
> [drm:intel_atomic_check [i915]] checking fdi config on pipe C, lanes 2
> WARNING: CPU: 4 PID: 25115 at ../drivers/gpu/drm/drm_modeset_lock.c:241 
> drm_modeset_lock+0xbc/0xd0 [drm]
> ...
> WARNING: CPU: 4 PID: 25115 at ../drivers/gpu/drm/drm_modeset_lock.c:223 
> drm_modeset_drop_locks+0x4a/0x50 [drm]
> 
> The warnings are from 'WARN_ON(ctx->contended)'.
> 
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

Series looks ok:
Reviewed-by: Imre Deak <imre.d...@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_display.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index ae6d58dbf1ed..de989b4265b6 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -6447,6 +6447,9 @@ static int ironlake_fdi_compute_config(struct 
> intel_crtc *intel_crtc,
>                              link_bw, &pipe_config->fdi_m_n, false);
>  
>       ret = ironlake_check_fdi_lanes(dev, intel_crtc->pipe, pipe_config);
> +     if (ret == -EDEADLK)
> +             return ret;
> +
>       if (ret == -EINVAL && pipe_config->pipe_bpp > 6*3) {
>               pipe_config->pipe_bpp -= 2*3;
>               DRM_DEBUG_KMS("fdi link bw constraint, reducing pipe bpp to 
> %i\n",
> @@ -11388,6 +11391,8 @@ intel_modeset_pipe_config(struct drm_crtc *crtc,
>                       * pipe_config->pixel_multiplier;
>  
>       ret = intel_crtc_compute_config(to_intel_crtc(crtc), pipe_config);
> +     if (ret == -EDEADLK)
> +             goto fail;
>       if (ret < 0) {
>               DRM_DEBUG_KMS("CRTC fixup failed\n");
>               goto fail;
> @@ -12525,6 +12530,8 @@ static int intel_atomic_check(struct drm_device *dev,
>               }
>  
>               ret = intel_modeset_pipe_config(crtc, pipe_config);
> +             if (ret == -EDEADLK)
> +                     return ret;
>               if (ret) {
>                       intel_dump_pipe_config(to_intel_crtc(crtc),
>                                              pipe_config, "[failed]");
> -- 
> 2.18.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to