diff options
author | Chen-Yu Tsai <wens@csie.org> | 2017-02-23 16:05:36 +0800 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@free-electrons.com> | 2017-03-07 22:18:23 +0100 |
commit | b3f266e428db3f08bb57f6edd6be10c4d092c38d (patch) | |
tree | 3eda339b8b55bd889abee4f148eb3fedce2ea993 /drivers/gpu/drm/sun4i/sun4i_crtc.c | |
parent | 2b2c22bf1c7017d8b4ac088c33b58fae4786d569 (diff) |
drm/sun4i: Move layers from sun4i_drv to sun4i_crtc
This patch moves the sun4i_layers_init call from sun4i_drv_bind to
sun4i_crtc_init, and the layers pointer from struct sun4i_drv to
struct sun4i_crtc.
The layers are bound to a specific crtc, and they are not directly
used once initiated. They are used through their included drm_plane
structures.
Moving the layers into the crtc facilitates binding them to the crtc
explicitly, by setting the corresponding bit in their .possible_crtcs
fields right after the crtc is initialized. This is done in a later
patch.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/gpu/drm/sun4i/sun4i_crtc.c')
-rw-r--r-- | drivers/gpu/drm/sun4i/sun4i_crtc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c index eec13cea3144..bcc1c9533d67 100644 --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c @@ -28,6 +28,7 @@ #include "sun4i_backend.h" #include "sun4i_crtc.h" #include "sun4i_drv.h" +#include "sun4i_layer.h" #include "sun4i_tcon.h" static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc, @@ -149,6 +150,13 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm) return ERR_PTR(-ENOMEM); scrtc->drv = drv; + /* Create our layers */ + scrtc->layers = sun4i_layers_init(drm); + if (IS_ERR(scrtc->layers)) { + dev_err(drm->dev, "Couldn't create the planes\n"); + return ERR_CAST(scrtc->layers); + } + ret = drm_crtc_init_with_planes(drm, &scrtc->crtc, drv->primary, NULL, |