|
@@ -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 = {
|