From: Maxime Ripard <mrip...@kernel.org>

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 <mrip...@kernel.org>
Signed-off-by: Dave Stevenson <dave.steven...@raspberrypi.com>
---
 drivers/gpu/drm/vc4/vc4_crtc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 1d54176cf811..ef5ad0ca4c2d 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -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;
 
-- 
2.34.1

Reply via email to