* 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
137 lines
5.1 KiB
Diff
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
|
|
|