lkml.org 
[lkml]   [2020]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 27/80] drm/vc4: crtc: Move HVS channel init before the PV initialisation
    Date
    In order to avoid stale pixels getting stuck in an intermediate FIFO
    between the HVS and the pixelvalve on BCM2711, we need to configure the HVS
    channel before the pixelvalve is reset and configured.

    Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Tested-by: Chanwoo Choi <cw00.choi@samsung.com>
    Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    ---
    drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
    index 2c5ff45dc315..b7b0e19e2fe1 100644
    --- a/drivers/gpu/drm/vc4/vc4_crtc.c
    +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
    @@ -427,10 +427,6 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc,

    require_hvs_enabled(dev);

    - vc4_crtc_config_pv(crtc);
    -
    - CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN);
    -
    /* Enable vblank irq handling before crtc is started otherwise
    * drm_crtc_get_vblank() fails in vc4_crtc_update_dlist().
    */
    @@ -438,6 +434,10 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc,

    vc4_hvs_atomic_enable(crtc, old_state);

    + vc4_crtc_config_pv(crtc);
    +
    + CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN);
    +
    /* When feeding the transposer block the pixelvalve is unneeded and
    * should not be enabled.
    */
    --
    git-series 0.9.1
    \
     
     \ /
      Last update: 2020-09-03 10:10    [W:2.263 / U:0.544 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site