armbian-build/patch/kernel/archive/sunxi-6.18/patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch
Werner 3d46ef80e0
sunxi: bump edge to 6.18 (#9049)
* sunxi-6.18: make the mess even worse

* fixing one of megis patches and add sunxi 32bit to the mess

* rewrite against 6.18

* fix media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch

* fix media-sun6i-csi-implement-vidioc_enum_framesizes.patch

* fix misc-modem-power-Power-manager-for-modems.patch

* Fix usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch, include rewrite

* fix mmc-sunxi-mmc-Remove-runtime-PM.patch, two hunks no longer apply

* re-extract all of megis patches

* remove unneeded branch

* add note to disabled patch

* auto-generated, out of date

* drop megous drm patches in favor of Jernej's work. disable broken patches

* disable patch which breaks compilation for armhf

* disable breaking patch, rewrite everything

* remove patches unrelated to sunxi family

* fix spi dev compatible patch

* fix tsc2007 patch

* drop mainlined patch, adjust x96 mate T95 eth sd card hack

* remove upstreamed patch

* re-enable no longer broken

* another rewrite to align stuff properly

* adjust various comments in series.conf

* recover lost overlays

* uew5622: fix compilation against Linux 6.18

* fix Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch

* adjust patch subject to make sense

* restore fixup creation
restore overlay prefix on opiz2
this needs to be properly sorted at some point

* bump to 6.18.1
sunxi and sunxi64 build just fine

* fix and re-enable drv-mfd-axp20x-add-sysfs-interface.patch

* rewrite patches
2025-12-16 12:35:24 +01:00

137 lines
5.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@gmail.com>
Date: Sun, 12 Oct 2025 21:23:30 +0200
Subject: drm/sun4i: Nuke mixer pointer from layer code
It's not used anymore, so remove it. This allows trully independent
layer state from mixer.
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Tested-by: Ryan Walklin <ryan@testtoast.com>
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
drivers/gpu/drm/sun4i/sun8i_mixer.c | 12 ++++------
drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 -
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 --
drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 1 -
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 --
drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 1 -
6 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -268,7 +268,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine,
int w, h, x, y, zpos;
bool enable;
- if (!(plane->possible_crtcs & drm_crtc_mask(crtc)) || layer->mixer != mixer)
+ if (!(plane->possible_crtcs & drm_crtc_mask(crtc)))
continue;
plane_state = drm_atomic_get_new_plane_state(state, plane);
@@ -336,9 +336,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
if (mixer->cfg->de_type == SUN8I_MIXER_DE33)
phy_index = mixer->cfg->map[i];
- layer = sun8i_vi_layer_init_one(drm, mixer, type,
- mixer->engine.regs, i,
- phy_index, plane_cnt,
+ layer = sun8i_vi_layer_init_one(drm, type, mixer->engine.regs,
+ i, phy_index, plane_cnt,
&mixer->cfg->lay_cfg);
if (IS_ERR(layer)) {
dev_err(drm->dev,
@@ -362,9 +361,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
if (mixer->cfg->de_type == SUN8I_MIXER_DE33)
phy_index = mixer->cfg->map[index];
- layer = sun8i_ui_layer_init_one(drm, mixer, type,
- mixer->engine.regs, index,
- phy_index, plane_cnt,
+ layer = sun8i_ui_layer_init_one(drm, type, mixer->engine.regs,
+ index, phy_index, plane_cnt,
&mixer->cfg->lay_cfg);
if (IS_ERR(layer)) {
dev_err(drm->dev, "Couldn't initialize %s plane\n",
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h
@@ -226,7 +226,6 @@ enum {
struct sun8i_layer {
struct drm_plane plane;
- struct sun8i_mixer *mixer;
int type;
int index;
int channel;
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
@@ -258,7 +258,6 @@ static const uint64_t sun8i_layer_modifiers[] = {
};
struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
- struct sun8i_mixer *mixer,
enum drm_plane_type type,
struct regmap *regs,
int index, int phy_index,
@@ -272,7 +271,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
if (!layer)
return ERR_PTR(-ENOMEM);
- layer->mixer = mixer;
layer->type = SUN8I_LAYER_TYPE_UI;
layer->index = index;
layer->channel = phy_index;
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
@@ -50,7 +50,6 @@ struct sun8i_mixer;
struct sun8i_layer;
struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
- struct sun8i_mixer *mixer,
enum drm_plane_type type,
struct regmap *regs,
int index, int phy_index,
diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
@@ -409,7 +409,6 @@ static const uint64_t sun8i_layer_modifiers[] = {
};
struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
- struct sun8i_mixer *mixer,
enum drm_plane_type type,
struct regmap *regs,
int index, int phy_index,
@@ -426,7 +425,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
if (!layer)
return ERR_PTR(-ENOMEM);
- layer->mixer = mixer;
layer->type = SUN8I_LAYER_TYPE_VI;
layer->index = index;
layer->channel = phy_index;
diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h
+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h
@@ -55,7 +55,6 @@ struct sun8i_mixer;
struct sun8i_layer;
struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
- struct sun8i_mixer *mixer,
enum drm_plane_type type,
struct regmap *regs,
int index, int phy_index,
--
Armbian