diff options
author | Joonyoung Shim <jy0922.shim@samsung.com> | 2012-03-16 05:47:10 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-03-20 05:40:25 -0400 |
commit | a31f6ecf3581574445878350e8c44ec2c8d547dd (patch) | |
tree | 286596b3e16d099f01f257db4699deabf09275af /drivers/gpu | |
parent | 9084f7b8a57706fc6b6f117f60143dad16a43ff6 (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')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_core.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_drv.h | 2 |
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 4e29c7174ac..411832e8e17 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 a41245402ce..b26c2f4425d 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 { | |||
239 | struct exynos_drm_subdrv { | 240 | struct 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); |