lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 372/700] drm/vc4: crtc: Pass the drm_atomic_state to config_pv
    Date
    From: Maxime Ripard <maxime@cerno.tech>

    [ Upstream commit c6883985d46319e0d4f159de8932b09ff93e877d ]

    The vc4_crtc_config_pv will need to access the drm_atomic_state
    structure and its only parent function, vc4_crtc_atomic_enable already
    has access to it. Let's pass it as a parameter.

    Fixes: 792c3132bc1b ("drm/vc4: encoder: Add finer-grained encoder callbacks")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210507150515.257424-4-maxime@cerno.tech
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 76657dcdf9b0..d079303cc426 100644
    --- a/drivers/gpu/drm/vc4/vc4_crtc.c
    +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
    @@ -305,7 +305,7 @@ static void vc4_crtc_pixelvalve_reset(struct drm_crtc *crtc)
    CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_FIFO_CLR);
    }

    -static void vc4_crtc_config_pv(struct drm_crtc *crtc)
    +static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_atomic_state *state)
    {
    struct drm_device *dev = crtc->dev;
    struct vc4_dev *vc4 = to_vc4_dev(dev);
    @@ -313,8 +313,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc)
    struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder);
    struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
    const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc);
    - struct drm_crtc_state *state = crtc->state;
    - struct drm_display_mode *mode = &state->adjusted_mode;
    + struct drm_crtc_state *crtc_state = crtc->state;
    + struct drm_display_mode *mode = &crtc_state->adjusted_mode;
    bool interlace = mode->flags & DRM_MODE_FLAG_INTERLACE;
    u32 pixel_rep = (mode->flags & DRM_MODE_FLAG_DBLCLK) ? 2 : 1;
    bool is_dsi = (vc4_encoder->type == VC4_ENCODER_TYPE_DSI0 ||
    @@ -539,7 +539,7 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc,
    if (vc4_encoder->pre_crtc_configure)
    vc4_encoder->pre_crtc_configure(encoder, state);

    - vc4_crtc_config_pv(crtc);
    + vc4_crtc_config_pv(crtc, state);

    CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN);

    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 09:46    [W:4.327 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site