drm/mcde: Fix frame sync setup for video mode panels
authorStephan Gerhold <stephan@gerhold.net>
Wed, 6 Nov 2019 16:58:30 +0000 (17:58 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Sat, 9 Nov 2019 21:18:51 +0000 (22:18 +0100)
commitd920e8da3d837bcc041800b8da9b335a728490f7
tree363da2014b2625063a1750f257dc792651dc246d
parent768859c239922264f91d8a49ff8b1b227e7ad7d9
drm/mcde: Fix frame sync setup for video mode panels

The MCDE driver differentiates only between "te_sync"
(for hardware TE0 sync) and software sync
(i.e. manually triggered updates) at the moment.

However, none of these options work correctly for video mode panels.
Therefore, we need to make some changes to make them work correctly:

  - Select hardware sync coming from the (DSI) formatter.
  - Keep the FIFO permanently enabled (otherwise MCDE will stop
    feeding data to the panel).
  - Skip manual software sync (this is not necessary in video mode).

Automatically detect if the connected panel is using video mode
and enable the necessary changes in that case.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191106165835.2863-3-stephan@gerhold.net
drivers/gpu/drm/mcde/mcde_display.c
drivers/gpu/drm/mcde/mcde_drm.h
drivers/gpu/drm/mcde/mcde_drv.c
drivers/gpu/drm/mcde/mcde_dsi.c