From f90264713a43e9891c152888d2537441e7775567 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman 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 --- 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