Hi,

On Tue, Jun 13, 2017 at 12:02:08PM +0300, Tomi Valkeinen wrote:
> Seems that on omap3 enabling a crtc without any planes causes a sync
> lost flood. This only happens on the first enable, and after that it
> works. This looks like an HW issue.
> 
> It's unclear why this is happening or how to fix it, but as a quick
> work-around, this patch enables i734 errata work-around for omap2 and
> omap3 too. The errata work-around enables and disables the LCD output
> with a plane once when waking up the DSS IP, and it seems to resolve the
> omap3 problem too. It is unclear if omap2 has the same issue, but it
> probably has and the WA should have no side effects so it should be safe
> to enable on omap2 too.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkei...@ti.com>

Tested-by: Aaro Koskinen <aaro.koski...@iki.fi>

This fixes the LCD errors I'm seeing on N900 with v4.11, and I get a working
display.

A.

> ---
>  drivers/gpu/drm/omapdrm/dss/dispc.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c 
> b/drivers/gpu/drm/omapdrm/dss/dispc.c
> index 5ac0145fbae6..75e89707a70a 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dispc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
> @@ -4004,6 +4004,11 @@ static const struct dispc_features 
> omap24xx_dispc_feats = {
>       .no_framedone_tv        =       true,
>       .set_max_preload        =       false,
>       .last_pixel_inc_missing =       true,
> +     /*
> +      * HACK: see comment in omap34xx_rev1_0_dispc_feats. OMAP2 probably
> +      * has the same issue.
> +      */
> +     .has_gamma_i734_bug     =       true,
>  };
>  
>  static const struct dispc_features omap34xx_rev1_0_dispc_feats = {
> @@ -4025,6 +4030,13 @@ static const struct dispc_features 
> omap34xx_rev1_0_dispc_feats = {
>       .no_framedone_tv        =       true,
>       .set_max_preload        =       false,
>       .last_pixel_inc_missing =       true,
> +     /*
> +      * HACK: OMAP3 doesn't have i734, but enabling the lcd output without
> +      * planes causes synclost flood. This only happens on initial enable,
> +      * not after that.
> +      * Piggyback on i734 flag until we understand this better.
> +      */
> +     .has_gamma_i734_bug     =       true,
>  };
>  
>  static const struct dispc_features omap34xx_rev3_0_dispc_feats = {
> @@ -4046,6 +4058,8 @@ static const struct dispc_features 
> omap34xx_rev3_0_dispc_feats = {
>       .no_framedone_tv        =       true,
>       .set_max_preload        =       false,
>       .last_pixel_inc_missing =       true,
> +     /* HACK: see comment in omap34xx_rev1_0_dispc_feats */
> +     .has_gamma_i734_bug     =       true,
>  };
>  
>  static const struct dispc_features omap44xx_dispc_feats = {
> -- 
> 2.7.4
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to