forked from Openwrt/openwrt
8c405cdccc
The patches were generated from the RPi repo with the following command: git format-patch v6.6.34..rpi-6.1.y Some patches needed rebasing and, as usual, the applied and reverted, wireless drivers, Github workflows, READMEs and defconfigs patches were removed. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
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;
|
|
|