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>
This commit is contained in:
Родитель
9084f7b8a5
Коммит
a31f6ecf35
|
@ -59,6 +59,9 @@ static int exynos_drm_subdrv_probe(struct drm_device *dev,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (subdrv->is_local)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* create and initialize a encoder for this sub driver. */
|
/* create and initialize a encoder for this sub driver. */
|
||||||
encoder = exynos_drm_encoder_create(dev, &subdrv->manager,
|
encoder = exynos_drm_encoder_create(dev, &subdrv->manager,
|
||||||
(1 << MAX_CRTC) - 1);
|
(1 << MAX_CRTC) - 1);
|
||||||
|
|
|
@ -225,6 +225,7 @@ struct exynos_drm_private {
|
||||||
* @list: sub driver has its own list object to register to exynos drm driver.
|
* @list: sub driver has its own list object to register to exynos drm driver.
|
||||||
* @drm_dev: pointer to drm_device and this pointer would be set
|
* @drm_dev: pointer to drm_device and this pointer would be set
|
||||||
* when sub driver calls exynos_drm_subdrv_register().
|
* when sub driver calls exynos_drm_subdrv_register().
|
||||||
|
* @is_local: appear encoder and connector disrelated device.
|
||||||
* @probe: this callback would be called by exynos drm driver after
|
* @probe: this callback would be called by exynos drm driver after
|
||||||
* subdrv is registered to it.
|
* subdrv is registered to it.
|
||||||
* @remove: this callback is used to release resources created
|
* @remove: this callback is used to release resources created
|
||||||
|
@ -239,6 +240,7 @@ struct exynos_drm_private {
|
||||||
struct exynos_drm_subdrv {
|
struct exynos_drm_subdrv {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
struct drm_device *drm_dev;
|
struct drm_device *drm_dev;
|
||||||
|
bool is_local;
|
||||||
|
|
||||||
int (*probe)(struct drm_device *drm_dev, struct device *dev);
|
int (*probe)(struct drm_device *drm_dev, struct device *dev);
|
||||||
void (*remove)(struct drm_device *dev);
|
void (*remove)(struct drm_device *dev);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче