mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 21:54:06 +08:00
drm/exynos: factor out initial setting of each driver
From fimd driver and vidi driver, dev->irq_enabled and dev->vblank_disable_allowed are set and also mixer needs them even if missed. It's duplicated so set them when loads drm driver. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
ad279310d7
commit
4a3ffedda2
@ -116,6 +116,23 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
|
|||||||
/* force connectors detection */
|
/* force connectors detection */
|
||||||
drm_helper_hpd_irq_event(dev);
|
drm_helper_hpd_irq_event(dev);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* enable drm irq mode.
|
||||||
|
* - with irq_enabled = true, we can use the vblank feature.
|
||||||
|
*
|
||||||
|
* P.S. note that we wouldn't use drm irq handler but
|
||||||
|
* just specific driver own one instead because
|
||||||
|
* drm framework supports only one irq handler.
|
||||||
|
*/
|
||||||
|
dev->irq_enabled = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* with vblank_disable_allowed = true, vblank interrupt will be disabled
|
||||||
|
* by drm timer once a current process gives up ownership of
|
||||||
|
* vblank event.(after drm_vblank_put function is called)
|
||||||
|
*/
|
||||||
|
dev->vblank_disable_allowed = true;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_unbind_all:
|
err_unbind_all:
|
||||||
|
@ -260,23 +260,6 @@ static int fimd_mgr_initialize(struct exynos_drm_manager *mgr,
|
|||||||
mgr->drm_dev = ctx->drm_dev = drm_dev;
|
mgr->drm_dev = ctx->drm_dev = drm_dev;
|
||||||
mgr->pipe = ctx->pipe = priv->pipe++;
|
mgr->pipe = ctx->pipe = priv->pipe++;
|
||||||
|
|
||||||
/*
|
|
||||||
* enable drm irq mode.
|
|
||||||
* - with irq_enabled = true, we can use the vblank feature.
|
|
||||||
*
|
|
||||||
* P.S. note that we wouldn't use drm irq handler but
|
|
||||||
* just specific driver own one instead because
|
|
||||||
* drm framework supports only one irq handler.
|
|
||||||
*/
|
|
||||||
drm_dev->irq_enabled = true;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* with vblank_disable_allowed = true, vblank interrupt will be disabled
|
|
||||||
* by drm timer once a current process gives up ownership of
|
|
||||||
* vblank event.(after drm_vblank_put function is called)
|
|
||||||
*/
|
|
||||||
drm_dev->vblank_disable_allowed = true;
|
|
||||||
|
|
||||||
/* attach this sub driver to iommu mapping if supported. */
|
/* attach this sub driver to iommu mapping if supported. */
|
||||||
if (is_drm_iommu_supported(ctx->drm_dev)) {
|
if (is_drm_iommu_supported(ctx->drm_dev)) {
|
||||||
/*
|
/*
|
||||||
|
@ -303,23 +303,6 @@ static int vidi_mgr_initialize(struct exynos_drm_manager *mgr,
|
|||||||
mgr->drm_dev = ctx->drm_dev = drm_dev;
|
mgr->drm_dev = ctx->drm_dev = drm_dev;
|
||||||
mgr->pipe = ctx->pipe = priv->pipe++;
|
mgr->pipe = ctx->pipe = priv->pipe++;
|
||||||
|
|
||||||
/*
|
|
||||||
* enable drm irq mode.
|
|
||||||
* - with irq_enabled = 1, we can use the vblank feature.
|
|
||||||
*
|
|
||||||
* P.S. note that we wouldn't use drm irq handler but
|
|
||||||
* just specific driver own one instead because
|
|
||||||
* drm framework supports only one irq handler.
|
|
||||||
*/
|
|
||||||
drm_dev->irq_enabled = 1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* with vblank_disable_allowed = 1, vblank interrupt will be disabled
|
|
||||||
* by drm timer once a current process gives up ownership of
|
|
||||||
* vblank event.(after drm_vblank_put function is called)
|
|
||||||
*/
|
|
||||||
drm_dev->vblank_disable_allowed = 1;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user