diff options
| author | Prathyush K <prathyush.k@samsung.com> | 2012-12-06 20:16:01 +0530 | 
|---|---|---|
| committer | Inki Dae <daeinki@gmail.com> | 2012-12-13 06:05:43 -0800 | 
| commit | 8137a2e21a3465d91d86b49cfebcc370438b77bd (patch) | |
| tree | c865d462600d5c8d65bdb04c944eb606fd90a278 | |
| parent | f74085a9f87087d70028dcc18563dba4a42ce32c (diff) | |
drm/exynos: move hdmi's wait_for_vblank to manager_ops
The wait_for_vblank callback of hdmi and mixer is now moved from
overlay_ops to manager_ops.
Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 22 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 26 | 
3 files changed, 25 insertions, 25 deletions
| diff --git a/drivers/gpu/drm/exynos/exynos_drm_hdmi.c b/drivers/gpu/drm/exynos/exynos_drm_hdmi.c index 8b771a3d2709..55793c46e3c2 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_hdmi.c @@ -179,6 +179,16 @@ static void drm_hdmi_disable_vblank(struct device *subdrv_dev)  		return mixer_ops->disable_vblank(ctx->mixer_ctx->ctx);  } +static void drm_hdmi_wait_for_vblank(struct device *subdrv_dev) +{ +	struct drm_hdmi_context *ctx = to_context(subdrv_dev); + +	DRM_DEBUG_KMS("%s\n", __FILE__); + +	if (mixer_ops && mixer_ops->wait_for_vblank) +		mixer_ops->wait_for_vblank(ctx->mixer_ctx->ctx); +} +  static void drm_hdmi_mode_fixup(struct device *subdrv_dev,  				struct drm_connector *connector,  				const struct drm_display_mode *mode, @@ -260,6 +270,7 @@ static struct exynos_drm_manager_ops drm_hdmi_manager_ops = {  	.apply = drm_hdmi_apply,  	.enable_vblank = drm_hdmi_enable_vblank,  	.disable_vblank = drm_hdmi_disable_vblank, +	.wait_for_vblank = drm_hdmi_wait_for_vblank,  	.mode_fixup = drm_hdmi_mode_fixup,  	.mode_set = drm_hdmi_mode_set,  	.get_max_resol = drm_hdmi_get_max_resol, @@ -313,21 +324,10 @@ static void drm_mixer_disable(struct device *subdrv_dev, int zpos)  	ctx->enabled[win] = false;  } -static void drm_mixer_wait_for_vblank(struct device *subdrv_dev) -{ -	struct drm_hdmi_context *ctx = to_context(subdrv_dev); - -	DRM_DEBUG_KMS("%s\n", __FILE__); - -	if (mixer_ops && mixer_ops->wait_for_vblank) -		mixer_ops->wait_for_vblank(ctx->mixer_ctx->ctx); -} -  static struct exynos_drm_overlay_ops drm_hdmi_overlay_ops = {  	.mode_set = drm_mixer_mode_set,  	.commit = drm_mixer_commit,  	.disable = drm_mixer_disable, -	.wait_for_vblank = drm_mixer_wait_for_vblank,  };  static struct exynos_drm_manager hdmi_manager = { diff --git a/drivers/gpu/drm/exynos/exynos_drm_hdmi.h b/drivers/gpu/drm/exynos/exynos_drm_hdmi.h index 54b522353e48..fcc3093ec8fe 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_hdmi.h +++ b/drivers/gpu/drm/exynos/exynos_drm_hdmi.h @@ -65,10 +65,10 @@ struct exynos_mixer_ops {  	int (*iommu_on)(void *ctx, bool enable);  	int (*enable_vblank)(void *ctx, int pipe);  	void (*disable_vblank)(void *ctx); +	void (*wait_for_vblank)(void *ctx);  	void (*dpms)(void *ctx, int mode);  	/* overlay */ -	void (*wait_for_vblank)(void *ctx);  	void (*win_mode_set)(void *ctx, struct exynos_drm_overlay *overlay);  	void (*win_commit)(void *ctx, int zpos);  	void (*win_disable)(void *ctx, int zpos); diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 40a6e1906fbb..b6f12fb54225 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -788,18 +788,6 @@ static void mixer_dpms(void *ctx, int mode)  	}  } -static void mixer_wait_for_vblank(void *ctx) -{ -	struct mixer_context *mixer_ctx = ctx; -	struct mixer_resources *res = &mixer_ctx->mixer_res; -	int ret; - -	ret = wait_for((mixer_reg_read(res, MXR_INT_STATUS) & -				MXR_INT_STATUS_VSYNC), 50); -	if (ret < 0) -		DRM_DEBUG_KMS("vblank wait timed out.\n"); -} -  static void mixer_win_mode_set(void *ctx,  			      struct exynos_drm_overlay *overlay)  { @@ -885,15 +873,27 @@ static void mixer_win_disable(void *ctx, int win)  	spin_unlock_irqrestore(&res->reg_slock, flags);  } +static void mixer_wait_for_vblank(void *ctx) +{ +	struct mixer_context *mixer_ctx = ctx; +	struct mixer_resources *res = &mixer_ctx->mixer_res; +	int ret; + +	ret = wait_for((mixer_reg_read(res, MXR_INT_STATUS) & +				MXR_INT_STATUS_VSYNC), 50); +	if (ret < 0) +		DRM_DEBUG_KMS("vblank wait timed out.\n"); +} +  static struct exynos_mixer_ops mixer_ops = {  	/* manager */  	.iommu_on		= mixer_iommu_on,  	.enable_vblank		= mixer_enable_vblank,  	.disable_vblank		= mixer_disable_vblank, +	.wait_for_vblank	= mixer_wait_for_vblank,  	.dpms			= mixer_dpms,  	/* overlay */ -	.wait_for_vblank	= mixer_wait_for_vblank,  	.win_mode_set		= mixer_win_mode_set,  	.win_commit		= mixer_win_commit,  	.win_disable		= mixer_win_disable, | 
