aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_crtc.c8
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_crtc.h1
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_drv.c10
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_drv.h2
4 files changed, 10 insertions, 11 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 @@
28#include "sun4i_backend.h" 28#include "sun4i_backend.h"
29#include "sun4i_crtc.h" 29#include "sun4i_crtc.h"
30#include "sun4i_drv.h" 30#include "sun4i_drv.h"
31#include "sun4i_layer.h"
31#include "sun4i_tcon.h" 32#include "sun4i_tcon.h"
32 33
33static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc, 34static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
@@ -149,6 +150,13 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm)
149 return ERR_PTR(-ENOMEM); 150 return ERR_PTR(-ENOMEM);
150 scrtc->drv = drv; 151 scrtc->drv = drv;
151 152
153 /* Create our layers */
154 scrtc->layers = sun4i_layers_init(drm);
155 if (IS_ERR(scrtc->layers)) {
156 dev_err(drm->dev, "Couldn't create the planes\n");
157 return ERR_CAST(scrtc->layers);
158 }
159
152 ret = drm_crtc_init_with_planes(drm, &scrtc->crtc, 160 ret = drm_crtc_init_with_planes(drm, &scrtc->crtc,
153 drv->primary, 161 drv->primary,
154 NULL, 162 NULL,
diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.h b/drivers/gpu/drm/sun4i/sun4i_crtc.h
index dec8ce4d9b25..0a888f73c983 100644
--- a/drivers/gpu/drm/sun4i/sun4i_crtc.h
+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.h
@@ -18,6 +18,7 @@ struct sun4i_crtc {
18 struct drm_pending_vblank_event *event; 18 struct drm_pending_vblank_event *event;
19 19
20 struct sun4i_drv *drv; 20 struct sun4i_drv *drv;
21 struct sun4i_layer **layers;
21}; 22};
22 23
23static inline struct sun4i_crtc *drm_crtc_to_sun4i_crtc(struct drm_crtc *crtc) 24static inline struct sun4i_crtc *drm_crtc_to_sun4i_crtc(struct drm_crtc *crtc)
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index 9adf1263e1e3..084c158611de 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -23,7 +23,7 @@
23#include "sun4i_crtc.h" 23#include "sun4i_crtc.h"
24#include "sun4i_drv.h" 24#include "sun4i_drv.h"
25#include "sun4i_framebuffer.h" 25#include "sun4i_framebuffer.h"
26#include "sun4i_layer.h" 26#include "sun4i_tcon.h"
27 27
28static const struct file_operations sun4i_drv_fops = { 28static const struct file_operations sun4i_drv_fops = {
29 .owner = THIS_MODULE, 29 .owner = THIS_MODULE,
@@ -115,14 +115,6 @@ static int sun4i_drv_bind(struct device *dev)
115 goto cleanup_mode_config; 115 goto cleanup_mode_config;
116 } 116 }
117 117
118 /* Create our layers */
119 drv->layers = sun4i_layers_init(drm);
120 if (IS_ERR(drv->layers)) {
121 dev_err(drm->dev, "Couldn't create the planes\n");
122 ret = PTR_ERR(drv->layers);
123 goto cleanup_mode_config;
124 }
125
126 /* Create our CRTC */ 118 /* Create our CRTC */
127 drv->crtc = sun4i_crtc_init(drm); 119 drv->crtc = sun4i_crtc_init(drm);
128 if (IS_ERR(drv->crtc)) { 120 if (IS_ERR(drv->crtc)) {
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.h b/drivers/gpu/drm/sun4i/sun4i_drv.h
index 597353eab728..e22ee536677e 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.h
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.h
@@ -23,8 +23,6 @@ struct sun4i_drv {
23 23
24 struct drm_plane *primary; 24 struct drm_plane *primary;
25 struct drm_fbdev_cma *fbdev; 25 struct drm_fbdev_cma *fbdev;
26
27 struct sun4i_layer **layers;
28}; 26};
29 27
30#endif /* _SUN4I_DRV_H_ */ 28#endif /* _SUN4I_DRV_H_ */