[Intel-gfx] [PATCH] drm/i915: pass adjusted_mode instead of mode to intel_choose_pipe_bpp_dither

Daniel Vetter daniel at ffwll.ch
Wed Sep 26 17:25:33 CEST 2012


On Wed, Sep 26, 2012 at 06:27:51PM +0300, Jani Nikula wrote:
> The dithering introduced in
> 
> commit 3b5c78a35cf7511c15e09a9b0ffab290a42d9bcf
> Author: Adam Jackson <ajax at redhat.com>
> Date:   Tue Dec 13 15:41:00 2011 -0800
> 
>     drm/i915/dp: Dither down to 6bpc if it makes the mode fit
> 
> stores the INTEL_MODE_DP_FORCE_6BPC flag in the private_flags of the
> adjusted mode, while intel_choose_pipe_bpp_dither() determining the color
> depth was passed the original mode, without the flag, so it would never
> have any effect. However, the BPC was clamped by VBT settings, making
> things work by coincidence, until that part was removed in
> 
> commit 4344b813f105a19f793f1fd93ad775b784648b95
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date:   Fri Aug 10 11:10:20 2012 +0200
> 
> Pass adjusted_mode instead of mode to intel_choose_pipe_bpp_dither() to
> make INTEL_MODE_DP_FORCE_6BPC have effect.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47621
> CC: stable at vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>

Awesome piece of debugging here. But can I point you to
i9xx_crtc_mode_set, where the same bug exists an ask for v2?

Cheers, Daniel

> ---
>  drivers/gpu/drm/i915/intel_display.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 08c3f69..0a9802a 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4936,7 +4936,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
>  	intel_crtc_update_cursor(crtc, true);
>  
>  	/* determine panel color depth */
> -	dither = intel_choose_pipe_bpp_dither(crtc, fb, &intel_crtc->bpp, mode);
> +	dither = intel_choose_pipe_bpp_dither(crtc, fb, &intel_crtc->bpp,
> +					      adjusted_mode);
>  	if (is_lvds && dev_priv->lvds_dither)
>  		dither = true;
>  
> -- 
> 1.7.9.5
> 

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



More information about the Intel-gfx mailing list