[PATCH 13/23] drm: omapdrm: crtc: update plane fifos on lcd config change

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Mar 26 17:00:53 UTC 2016


Hi Sebastian,

Thank you for the patch.

On Tuesday 08 Mar 2016 17:39:45 Sebastian Reichel wrote:
> Due to a hardware bug, FIFOs thresholds must be
> configured very carefully for manually updated
> displays.

Could you please provide more information about the bug and how the code 
handles it ?

> Signed-off-by: Sebastian Reichel <sre at kernel.org>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c
> b/drivers/gpu/drm/omapdrm/omap_crtc.c index 8967013c1fb5..094e89a2fa94
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -253,6 +253,10 @@ static void omap_crtc_dss_set_lcd_config(struct
> omap_overlay_manager *mgr, omap_crtc->manually_updated =
> dss_lcd_mgr_config_get_stallmode(config);
> 
>  	dispc_mgr_set_lcd_config(omap_crtc->channel, config);
> +
> +	drm_for_each_plane(plane, dev) {
> +		omap_plane_update_fifo(plane);
> +	}

This seems fishy :-/ To start with you shouldn't touch planes that don't 
belong to this CRTC. Then, updating the FIFO thresholds here in addition to 
omap_plane_atomic_update() makes me wonder if both are needed, and if so, why.

>  }
> 
>  static int omap_crtc_dss_register_framedone(

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list