]> Gentwo Git Trees - linux/.git/commitdiff
drm/sun4i: ui_layer: Change index meaning
authorJernej Skrabec <jernej.skrabec@gmail.com>
Tue, 4 Nov 2025 18:09:26 +0000 (19:09 +0100)
committerChen-Yu Tsai <wens@kernel.org>
Wed, 12 Nov 2025 09:18:22 +0000 (17:18 +0800)
In the pursuit of making UI/VI layer code independent of DE version,
change meaning of UI index to index of the plane within mixer. DE33 can
split amount of VI and UI planes between multiple mixer in whatever way
it deems acceptable, so simple calculation VI num + UI index won't be
meaningful anymore.

Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Tested-by: Ryan Walklin <ryan@testtoast.com>
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://patch.msgid.link/20251104180942.61538-15-jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
drivers/gpu/drm/sun4i/sun8i_mixer.c
drivers/gpu/drm/sun4i/sun8i_ui_layer.c

index cf6202099844c7c1bce9d2851a4dab1a6420cced..e15c59e0c52b35b57fbe9c4a443dc245592dac39 100644 (file)
@@ -344,6 +344,7 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
        }
 
        for (i = 0; i < mixer->cfg->ui_num; i++) {
+               unsigned int index = mixer->cfg->vi_num + i;
                struct sun8i_layer *layer;
 
                if (i == 0)
@@ -351,14 +352,14 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
                else
                        type = DRM_PLANE_TYPE_OVERLAY;
 
-               layer = sun8i_ui_layer_init_one(drm, mixer, type, i);
+               layer = sun8i_ui_layer_init_one(drm, mixer, type, index);
                if (IS_ERR(layer)) {
                        dev_err(drm->dev, "Couldn't initialize %s plane\n",
                                i ? "overlay" : "primary");
                        return ERR_CAST(layer);
                }
 
-               planes[mixer->cfg->vi_num + i] = &layer->plane;
+               planes[index] = &layer->plane;
        }
 
        return planes;
index c7bbdb37c2d7654c4bd9d3debbafb6753e80c5ef..67a59a4775421e521a7fbd4a14c3f9743e2ed4a1 100644 (file)
@@ -270,7 +270,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
                                            enum drm_plane_type type,
                                            int index)
 {
-       int channel = mixer->cfg->vi_num + index;
        struct sun8i_layer *layer;
        unsigned int plane_cnt;
        int ret;
@@ -281,7 +280,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
 
        layer->mixer = mixer;
        layer->type = SUN8I_LAYER_TYPE_UI;
-       layer->channel = channel;
+       layer->channel = index;
        layer->overlay = 0;
 
        /* possible crtcs are set later */
@@ -303,7 +302,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
                return ERR_PTR(ret);
        }
 
-       ret = drm_plane_create_zpos_property(&layer->plane, channel,
+       ret = drm_plane_create_zpos_property(&layer->plane, index,
                                             0, plane_cnt - 1);
        if (ret) {
                dev_err(drm->dev, "Couldn't add zpos property\n");