[PATCH] drm: fixes crct set_mode when encoder mode_fixup is null.

Daniel Vetter daniel at ffwll.ch
Wed Feb 10 12:29:11 UTC 2016


On Wed, Feb 10, 2016 at 12:15:22PM +0000, Carlos Palminha wrote:
> Avoids null crash when encoders don't implement mode_fixup.
> 
> Signed-off-by: Carlos Palminha <palminha at synopsys.com>
> ---
>  drivers/gpu/drm/drm_crtc_helper.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
> index a02a7f9..ef3def7 100644
> --- a/drivers/gpu/drm/drm_crtc_helper.c
> +++ b/drivers/gpu/drm/drm_crtc_helper.c
> @@ -328,10 +328,12 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
>  		}
>  
>  		encoder_funcs = encoder->helper_private;
> -		if (!(ret = encoder_funcs->mode_fixup(encoder, mode,
> -						      adjusted_mode))) {
> -			DRM_DEBUG_KMS("Encoder fixup failed\n");
> -			goto done;
> +		if (encoder_funcs->mode_fixup) {
> +			if (!(ret = encoder_funcs->mode_fixup(encoder, mode,
> +							      adjusted_mode))) {
> +				DRM_DEBUG_KMS("Encoder fixup failed\n");
> +				goto done;
> +			}

At first I thought this isn't useful since it's the old legacy helper
code that no new driver should use. But from a quick

$ git grep mode_fixup.*encoder

it looks like there's piles of existing drivers that could benefit from
this with a small cleanup. So applied it, but can you pls follow up with
patches to get rid of the now unecessary dummy functions?

Thanks, Daniel

>  		}
>  	}
>  
> -- 
> 2.5.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list