73 lines
2.7 KiB
Diff
73 lines
2.7 KiB
Diff
From f90264713a43e9891c152888d2537441e7775567 Mon Sep 17 00:00:00 2001
|
|
From: Ondrej Jirman <megous@megous.com>
|
|
Date: Tue, 3 Sep 2019 12:26:59 +0200
|
|
Subject: [PATCH 226/351] drm: sun4i: Mark one of the UI planes as a cursor one
|
|
|
|
Signed-off-by: Ondrej Jirman <megous@megous.com>
|
|
---
|
|
drivers/gpu/drm/sun4i/sun8i_mixer.c | 7 ++++++-
|
|
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 7 ++-----
|
|
drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 3 ++-
|
|
3 files changed, 10 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
|
index 65b24dce70d4..adc72bcc3492 100644
|
|
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
|
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
|
|
@@ -317,8 +317,13 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
|
|
|
|
for (i = 0; i < mixer->cfg->ui_num; i++) {
|
|
struct sun8i_ui_layer *layer;
|
|
+ enum drm_plane_type type = DRM_PLANE_TYPE_OVERLAY;
|
|
+ if (i == 0)
|
|
+ type = DRM_PLANE_TYPE_PRIMARY;
|
|
+ else if (i == (mixer->cfg->ui_num - 1))
|
|
+ type = DRM_PLANE_TYPE_CURSOR;
|
|
|
|
- layer = sun8i_ui_layer_init_one(drm, mixer, i);
|
|
+ layer = sun8i_ui_layer_init_one(drm, mixer, i, type);
|
|
if (IS_ERR(layer)) {
|
|
dev_err(drm->dev, "Couldn't initialize %s plane\n",
|
|
i ? "overlay" : "primary");
|
|
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
|
index 9ccae2ae0c1a..f1c87695b4d7 100644
|
|
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
|
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
|
@@ -369,9 +369,9 @@ static const u32 sun8i_ui_layer_formats[] = {
|
|
|
|
struct sun8i_ui_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
|
|
struct sun8i_mixer *mixer,
|
|
- int index)
|
|
+ int index,
|
|
+ enum drm_plane_type type)
|
|
{
|
|
- enum drm_plane_type type = DRM_PLANE_TYPE_OVERLAY;
|
|
int channel = mixer->cfg->vi_num + index;
|
|
struct sun8i_ui_layer *layer;
|
|
unsigned int plane_cnt;
|
|
@@ -381,9 +381,6 @@ struct sun8i_ui_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
|
|
if (!layer)
|
|
return ERR_PTR(-ENOMEM);
|
|
|
|
- if (index == 0)
|
|
- type = DRM_PLANE_TYPE_PRIMARY;
|
|
-
|
|
/* possible crtcs are set later */
|
|
ret = drm_universal_plane_init(drm, &layer->plane, 0,
|
|
&sun8i_ui_layer_funcs,
|
|
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
|
|
index f4ab1cf6cded..41d613fd2ae6 100644
|
|
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
|
|
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h
|
|
@@ -58,5 +58,6 @@ plane_to_sun8i_ui_layer(struct drm_plane *plane)
|
|
|
|
struct sun8i_ui_layer *sun8i_ui_layer_init_one(struct drm_device *drm,
|
|
struct sun8i_mixer *mixer,
|
|
- int index);
|
|
+ int index,
|
|
+ enum drm_plane_type type);
|
|
#endif /* _SUN8I_UI_LAYER_H_ */
|
|
--
|
|
2.34.0
|
|
|