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 <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>
This commit is contained in:
committed by
Dave Stevenson
parent
5171d86a62
commit
dbe101b106
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user