aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Ripard <maxime.ripard@free-electrons.com>2016-05-11 13:04:18 -0400
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-05-30 02:28:33 -0400
commit7aa2e2b731b337a7bc74cd076bbcd6b8b4b95fbf (patch)
tree418e748dff765ce9a2174761bd0f1cdca93f8204
parent3d6bd9065b7acf8499d414d70bdb4b4955856299 (diff)
drm/sun4i: Convert to connector register helpers
Now that connector register helpers have been created, switch to them. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_drv.c31
1 files changed, 2 insertions, 29 deletions
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index af62b24c39b1..257d2b4f3645 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -24,34 +24,6 @@
24#include "sun4i_layer.h" 24#include "sun4i_layer.h"
25#include "sun4i_tcon.h" 25#include "sun4i_tcon.h"
26 26
27static int sun4i_drv_connector_plug_all(struct drm_device *drm)
28{
29 struct drm_connector *connector, *failed;
30 int ret;
31
32 mutex_lock(&drm->mode_config.mutex);
33 list_for_each_entry(connector, &drm->mode_config.connector_list, head) {
34 ret = drm_connector_register(connector);
35 if (ret) {
36 failed = connector;
37 goto err;
38 }
39 }
40 mutex_unlock(&drm->mode_config.mutex);
41 return 0;
42
43err:
44 list_for_each_entry(connector, &drm->mode_config.connector_list, head) {
45 if (failed == connector)
46 break;
47
48 drm_connector_unregister(connector);
49 }
50 mutex_unlock(&drm->mode_config.mutex);
51
52 return ret;
53}
54
55static int sun4i_drv_enable_vblank(struct drm_device *drm, unsigned int pipe) 27static int sun4i_drv_enable_vblank(struct drm_device *drm, unsigned int pipe)
56{ 28{
57 struct sun4i_drv *drv = drm->dev_private; 29 struct sun4i_drv *drv = drm->dev_private;
@@ -206,7 +178,7 @@ static int sun4i_drv_bind(struct device *dev)
206 if (ret) 178 if (ret)
207 goto free_drm; 179 goto free_drm;
208 180
209 ret = sun4i_drv_connector_plug_all(drm); 181 ret = drm_connector_register_all(drm);
210 if (ret) 182 if (ret)
211 goto unregister_drm; 183 goto unregister_drm;
212 184
@@ -223,6 +195,7 @@ static void sun4i_drv_unbind(struct device *dev)
223{ 195{
224 struct drm_device *drm = dev_get_drvdata(dev); 196 struct drm_device *drm = dev_get_drvdata(dev);
225 197
198 drm_connector_unregister_all(drm);
226 drm_dev_unregister(drm); 199 drm_dev_unregister(drm);
227 drm_kms_helper_poll_fini(drm); 200 drm_kms_helper_poll_fini(drm);
228 sun4i_framebuffer_free(drm); 201 sun4i_framebuffer_free(drm);