mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
|
From 295e80d1c3c29084bb9874b08f320446c422fdcb Mon Sep 17 00:00:00 2001
|
||
|
From: Maxime Ripard <maxime@cerno.tech>
|
||
|
Date: Fri, 17 Feb 2023 13:39:13 +0100
|
||
|
Subject: [PATCH 0584/1085] drm/vc4: crtc: Move assigned_channel to a variable
|
||
|
|
||
|
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 <maxime@cerno.tech>
|
||
|
---
|
||
|
drivers/gpu/drm/vc4/vc4_crtc.c | 7 ++++---
|
||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||
|
|
||
|
--- 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_positio
|
||
|
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_positio
|
||
|
* 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_positio
|
||
|
*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;
|
||
|
|