From: Jernej Skrabec Date: Tue, 4 Nov 2025 18:09:41 +0000 (+0100) Subject: drm/sun4i: vi_scaler: Find mixer from crtc X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=345bca734c577e27fd609077d41dbda1576f2dbf;p=thirdparty%2Fkernel%2Flinux.git drm/sun4i: vi_scaler: Find mixer from crtc With "floating" planes in DE33, mixer can't be stored in layer structure anymore. Find mixer using currently bound crtc. Reviewed-by: Chen-Yu Tsai Tested-by: Ryan Walklin Signed-off-by: Jernej Skrabec Link: https://patch.msgid.link/20251104180942.61538-30-jernej.skrabec@gmail.com Signed-off-by: Chen-Yu Tsai --- diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index 5f91011425bf4..da0d9167d3281 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c @@ -14,6 +14,7 @@ #include #include +#include "sun4i_crtc.h" #include "sun8i_csc.h" #include "sun8i_mixer.h" #include "sun8i_vi_layer.h" @@ -63,8 +64,9 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, struct drm_plane *plane) { struct drm_plane_state *state = plane->state; + struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(state->crtc); + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(scrtc->engine); const struct drm_format_info *format = state->fb->format; - struct sun8i_mixer *mixer = layer->mixer; u32 src_w, src_h, dst_w, dst_h; u32 outsize, insize; u32 hphase, vphase;