aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos
diff options
context:
space:
mode:
authorJoonyoung Shim <jy0922.shim@samsung.com>2012-03-16 05:47:10 -0400
committerDave Airlie <airlied@redhat.com>2012-03-20 05:40:25 -0400
commita31f6ecf3581574445878350e8c44ec2c8d547dd (patch)
tree286596b3e16d099f01f257db4699deabf09275af /drivers/gpu/drm/exynos
parent9084f7b8a57706fc6b6f117f60143dad16a43ff6 (diff)
drm/exynos: add is_local member in exynos_drm_subdrv struct
The is_local member indicates unused subdrv such connector and encoder so doesn't make resources for them. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_core.c3
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_core.c b/drivers/gpu/drm/exynos/exynos_drm_core.c
index 4e29c7174ac5..411832e8e17a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_core.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_core.c
@@ -59,6 +59,9 @@ static int exynos_drm_subdrv_probe(struct drm_device *dev,
59 return ret; 59 return ret;
60 } 60 }
61 61
62 if (subdrv->is_local)
63 return 0;
64
62 /* create and initialize a encoder for this sub driver. */ 65 /* create and initialize a encoder for this sub driver. */
63 encoder = exynos_drm_encoder_create(dev, &subdrv->manager, 66 encoder = exynos_drm_encoder_create(dev, &subdrv->manager,
64 (1 << MAX_CRTC) - 1); 67 (1 << MAX_CRTC) - 1);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index a41245402ce4..b26c2f4425d1 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -225,6 +225,7 @@ struct exynos_drm_private {
225 * @list: sub driver has its own list object to register to exynos drm driver. 225 * @list: sub driver has its own list object to register to exynos drm driver.
226 * @drm_dev: pointer to drm_device and this pointer would be set 226 * @drm_dev: pointer to drm_device and this pointer would be set
227 * when sub driver calls exynos_drm_subdrv_register(). 227 * when sub driver calls exynos_drm_subdrv_register().
228 * @is_local: appear encoder and connector disrelated device.
228 * @probe: this callback would be called by exynos drm driver after 229 * @probe: this callback would be called by exynos drm driver after
229 * subdrv is registered to it. 230 * subdrv is registered to it.
230 * @remove: this callback is used to release resources created 231 * @remove: this callback is used to release resources created
@@ -239,6 +240,7 @@ struct exynos_drm_private {
239struct exynos_drm_subdrv { 240struct exynos_drm_subdrv {
240 struct list_head list; 241 struct list_head list;
241 struct drm_device *drm_dev; 242 struct drm_device *drm_dev;
243 bool is_local;
242 244
243 int (*probe)(struct drm_device *drm_dev, struct device *dev); 245 int (*probe)(struct drm_device *drm_dev, struct device *dev);
244 void (*remove)(struct drm_device *dev); 246 void (*remove)(struct drm_device *dev);