]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/vc4: crtc: Move assigned_channel to a variable
authorMaxime Ripard <mripard@kernel.org>
Fri, 21 Jun 2024 15:20:37 +0000 (16:20 +0100)
committerDave Stevenson <dave.stevenson@raspberrypi.com>
Mon, 9 Sep 2024 12:02:53 +0000 (13:02 +0100)
We access multiple times the vc4_crtc_state->assigned_channel variable
in the vc4_crtc_get_scanout_position() function, so let's store it in a
local variable.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240621152055.4180873-14-dave.stevenson@raspberrypi.com
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/vc4/vc4_crtc.c

index 1d54176cf8116a0dabfd4b81fd3e03b9d00e54b3..ef5ad0ca4c2ddd2745d9bc16d1fe5deb99a03fe9 100644 (file)
@@ -105,6 +105,7 @@ static bool vc4_crtc_get_scanout_position(struct drm_crtc *crtc,
        struct vc4_hvs *hvs = vc4->hvs;
        struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
        struct vc4_crtc_state *vc4_crtc_state = to_vc4_crtc_state(crtc->state);
+       unsigned int channel = vc4_crtc_state->assigned_channel;
        unsigned int cob_size;
        u32 val;
        int fifo_lines;
@@ -121,7 +122,7 @@ static bool vc4_crtc_get_scanout_position(struct drm_crtc *crtc,
         * Read vertical scanline which is currently composed for our
         * pixelvalve by the HVS, and also the scaler status.
         */
-       val = HVS_READ(SCALER_DISPSTATX(vc4_crtc_state->assigned_channel));
+       val = HVS_READ(SCALER_DISPSTATX(channel));
 
        /* Get optional system timestamp after query. */
        if (etime)
@@ -137,11 +138,11 @@ static bool vc4_crtc_get_scanout_position(struct drm_crtc *crtc,
                *vpos /= 2;
 
                /* Use hpos to correct for field offset in interlaced mode. */
-               if (vc4_hvs_get_fifo_frame_count(hvs, vc4_crtc_state->assigned_channel) % 2)
+               if (vc4_hvs_get_fifo_frame_count(hvs, channel) % 2)
                        *hpos += mode->crtc_htotal / 2;
        }
 
-       cob_size = vc4_crtc_get_cob_allocation(vc4, vc4_crtc_state->assigned_channel);
+       cob_size = vc4_crtc_get_cob_allocation(vc4, channel);
        /* This is the offset we need for translating hvs -> pv scanout pos. */
        fifo_lines = cob_size / mode->crtc_hdisplay;