drm/exynos: Merge overlay_ops into manager_ops
authorSean Paul <seanpaul@chromium.org>
Thu, 30 Jan 2014 21:19:02 +0000 (16:19 -0500)
committerInki Dae <daeinki@gmail.com>
Sun, 23 Mar 2014 15:36:27 +0000 (00:36 +0900)
This patch merges overlay_ops into manager_ops. In all cases,
overlay_ops is implemented in the same place as manager ops, it doesn't
serve a functional purpose, and doesn't make things more clear.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_drv.h
drivers/gpu/drm/exynos/exynos_drm_encoder.c
drivers/gpu/drm/exynos/exynos_drm_fimd.c
drivers/gpu/drm/exynos/exynos_drm_hdmi.c
drivers/gpu/drm/exynos/exynos_drm_vidi.c
drivers/gpu/drm/exynos/exynos_mixer.c

index 0eaf5a27e120e586129074446e816b902d7316f3..4288d0adf59a9ffa70d8bfd858289977070db0b9 100644 (file)
@@ -53,22 +53,6 @@ enum exynos_drm_output_type {
        EXYNOS_DISPLAY_TYPE_VIDI,
 };
 
-/*
- * Exynos drm overlay ops structure.
- *
- * @mode_set: copy drm overlay info to hw specific overlay info.
- * @commit: apply hardware specific overlay data to registers.
- * @enable: enable hardware specific overlay.
- * @disable: disable hardware specific overlay.
- */
-struct exynos_drm_overlay_ops {
-       void (*mode_set)(struct device *subdrv_dev,
-                        struct exynos_drm_overlay *overlay);
-       void (*commit)(struct device *subdrv_dev, int zpos);
-       void (*enable)(struct device *subdrv_dev, int zpos);
-       void (*disable)(struct device *subdrv_dev, int zpos);
-};
-
 /*
  * Exynos drm common overlay structure.
  *
@@ -169,6 +153,10 @@ struct exynos_drm_display_ops {
  * @disable_vblank: specific driver callback for disabling vblank interrupt.
  * @wait_for_vblank: wait for vblank interrupt to make sure that
  *     hardware overlay is updated.
+ * @win_mode_set: copy drm overlay info to hw specific overlay info.
+ * @win_commit: apply hardware specific overlay data to registers.
+ * @win_enable: enable hardware specific overlay.
+ * @win_disable: disable hardware specific overlay.
  */
 struct exynos_drm_manager_ops {
        void (*dpms)(struct device *subdrv_dev, int mode);
@@ -184,6 +172,11 @@ struct exynos_drm_manager_ops {
        int (*enable_vblank)(struct device *subdrv_dev);
        void (*disable_vblank)(struct device *subdrv_dev);
        void (*wait_for_vblank)(struct device *subdrv_dev);
+       void (*win_mode_set)(struct device *subdrv_dev,
+                               struct exynos_drm_overlay *overlay);
+       void (*win_commit)(struct device *subdrv_dev, int zpos);
+       void (*win_enable)(struct device *subdrv_dev, int zpos);
+       void (*win_disable)(struct device *subdrv_dev, int zpos);
 };
 
 /*
@@ -195,9 +188,6 @@ struct exynos_drm_manager_ops {
  * @ops: pointer to callbacks for exynos drm specific framebuffer.
  *     these callbacks should be set by specific drivers such fimd
  *     or hdmi driver and are used to control hardware global registers.
- * @overlay_ops: pointer to callbacks for exynos drm specific framebuffer.
- *     these callbacks should be set by specific drivers such fimd
- *     or hdmi driver and are used to control hardware overlay reigsters.
  * @display: pointer to callbacks for exynos drm specific framebuffer.
  *     these callbacks should be set by specific drivers such fimd
  *     or hdmi driver and are used to control display devices such as
@@ -207,7 +197,6 @@ struct exynos_drm_manager {
        struct device *dev;
        int pipe;
        struct exynos_drm_manager_ops *ops;
-       struct exynos_drm_overlay_ops *overlay_ops;
        struct exynos_drm_display_ops *display_ops;
 };
 
index 06f1b2a09da7a1d2c1f4f556db86f299d872a081..c255341ed17425df4219f96ad4bf2e8e9e745b6e 100644 (file)
@@ -133,7 +133,7 @@ static void disable_plane_to_crtc(struct drm_device *dev,
                         *
                         * plane->funcs->disable_plane call checks
                         * if encoder->crtc is same as plane->crtc and if same
-                        * then overlay_ops->disable callback will be called
+                        * then manager_ops->win_disable callback will be called
                         * to diasble current hw overlay so plane->crtc should
                         * have new_crtc because new_crtc was set to
                         * encoder->crtc in advance.
@@ -442,51 +442,51 @@ void exynos_drm_encoder_plane_mode_set(struct drm_encoder *encoder, void *data)
 {
        struct exynos_drm_manager *manager =
                to_exynos_encoder(encoder)->manager;
-       struct exynos_drm_overlay_ops *overlay_ops = manager->overlay_ops;
+       struct exynos_drm_manager_ops *manager_ops = manager->ops;
        struct exynos_drm_overlay *overlay = data;
 
-       if (overlay_ops && overlay_ops->mode_set)
-               overlay_ops->mode_set(manager->dev, overlay);
+       if (manager_ops && manager_ops->win_mode_set)
+               manager_ops->win_mode_set(manager->dev, overlay);
 }
 
 void exynos_drm_encoder_plane_commit(struct drm_encoder *encoder, void *data)
 {
        struct exynos_drm_manager *manager =
                to_exynos_encoder(encoder)->manager;
-       struct exynos_drm_overlay_ops *overlay_ops = manager->overlay_ops;
+       struct exynos_drm_manager_ops *manager_ops = manager->ops;
        int zpos = DEFAULT_ZPOS;
 
        if (data)
                zpos = *(int *)data;
 
-       if (overlay_ops && overlay_ops->commit)
-               overlay_ops->commit(manager->dev, zpos);
+       if (manager_ops && manager_ops->win_commit)
+               manager_ops->win_commit(manager->dev, zpos);
 }
 
 void exynos_drm_encoder_plane_enable(struct drm_encoder *encoder, void *data)
 {
        struct exynos_drm_manager *manager =
                to_exynos_encoder(encoder)->manager;
-       struct exynos_drm_overlay_ops *overlay_ops = manager->overlay_ops;
+       struct exynos_drm_manager_ops *manager_ops = manager->ops;
        int zpos = DEFAULT_ZPOS;
 
        if (data)
                zpos = *(int *)data;
 
-       if (overlay_ops && overlay_ops->enable)
-               overlay_ops->enable(manager->dev, zpos);
+       if (manager_ops && manager_ops->win_enable)
+               manager_ops->win_enable(manager->dev, zpos);
 }
 
 void exynos_drm_encoder_plane_disable(struct drm_encoder *encoder, void *data)
 {
        struct exynos_drm_manager *manager =
                to_exynos_encoder(encoder)->manager;
-       struct exynos_drm_overlay_ops *overlay_ops = manager->overlay_ops;
+       struct exynos_drm_manager_ops *manager_ops = manager->ops;
        int zpos = DEFAULT_ZPOS;
 
        if (data)
                zpos = *(int *)data;
 
-       if (overlay_ops && overlay_ops->disable)
-               overlay_ops->disable(manager->dev, zpos);
+       if (manager_ops && manager_ops->win_disable)
+               manager_ops->win_disable(manager->dev, zpos);
 }
index a20440ce32e6c39ee450d926f668f5638df0cca8..bc4001eeb06ad8eb32439acc78e401b204167931 100644 (file)
@@ -219,14 +219,13 @@ static void fimd_apply(struct device *subdrv_dev)
        struct fimd_context *ctx = get_fimd_context(subdrv_dev);
        struct exynos_drm_manager *mgr = ctx->subdrv.manager;
        struct exynos_drm_manager_ops *mgr_ops = mgr->ops;
-       struct exynos_drm_overlay_ops *ovl_ops = mgr->overlay_ops;
        struct fimd_win_data *win_data;
        int i;
 
        for (i = 0; i < WINDOWS_NR; i++) {
                win_data = &ctx->win_data[i];
-               if (win_data->enabled && (ovl_ops && ovl_ops->commit))
-                       ovl_ops->commit(subdrv_dev, i);
+               if (win_data->enabled && (mgr_ops && mgr_ops->win_commit))
+                       mgr_ops->win_commit(subdrv_dev, i);
        }
 
        if (mgr_ops && mgr_ops->commit)
@@ -351,15 +350,6 @@ static void fimd_wait_for_vblank(struct device *dev)
                DRM_DEBUG_KMS("vblank wait timed out.\n");
 }
 
-static struct exynos_drm_manager_ops fimd_manager_ops = {
-       .dpms = fimd_dpms,
-       .apply = fimd_apply,
-       .commit = fimd_commit,
-       .enable_vblank = fimd_enable_vblank,
-       .disable_vblank = fimd_disable_vblank,
-       .wait_for_vblank = fimd_wait_for_vblank,
-};
-
 static void fimd_win_mode_set(struct device *dev,
                              struct exynos_drm_overlay *overlay)
 {
@@ -669,16 +659,21 @@ static void fimd_win_disable(struct device *dev, int zpos)
        win_data->enabled = false;
 }
 
-static struct exynos_drm_overlay_ops fimd_overlay_ops = {
-       .mode_set = fimd_win_mode_set,
-       .commit = fimd_win_commit,
-       .disable = fimd_win_disable,
+static struct exynos_drm_manager_ops fimd_manager_ops = {
+       .dpms = fimd_dpms,
+       .apply = fimd_apply,
+       .commit = fimd_commit,
+       .enable_vblank = fimd_enable_vblank,
+       .disable_vblank = fimd_disable_vblank,
+       .wait_for_vblank = fimd_wait_for_vblank,
+       .win_mode_set = fimd_win_mode_set,
+       .win_commit = fimd_win_commit,
+       .win_disable = fimd_win_disable,
 };
 
 static struct exynos_drm_manager fimd_manager = {
        .pipe           = -1,
        .ops            = &fimd_manager_ops,
-       .overlay_ops    = &fimd_overlay_ops,
        .display_ops    = &fimd_display_ops,
 };
 
index 8548b974bd59715389ce41b411c121a17877cb46..a1ef3c9aff697d66f92ea798a3725f15a7671ed0 100644 (file)
@@ -284,19 +284,7 @@ static void drm_hdmi_apply(struct device *subdrv_dev)
                hdmi_ops->commit(ctx->hdmi_ctx->ctx);
 }
 
-static struct exynos_drm_manager_ops drm_hdmi_manager_ops = {
-       .dpms = drm_hdmi_dpms,
-       .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,
-       .commit = drm_hdmi_commit,
-};
-
-static void drm_mixer_mode_set(struct device *subdrv_dev,
+static void drm_mixer_win_mode_set(struct device *subdrv_dev,
                struct exynos_drm_overlay *overlay)
 {
        struct drm_hdmi_context *ctx = to_context(subdrv_dev);
@@ -305,7 +293,7 @@ static void drm_mixer_mode_set(struct device *subdrv_dev,
                mixer_ops->win_mode_set(ctx->mixer_ctx->ctx, overlay);
 }
 
-static void drm_mixer_commit(struct device *subdrv_dev, int zpos)
+static void drm_mixer_win_commit(struct device *subdrv_dev, int zpos)
 {
        struct drm_hdmi_context *ctx = to_context(subdrv_dev);
        int win = (zpos == DEFAULT_ZPOS) ? MIXER_DEFAULT_WIN : zpos;
@@ -321,7 +309,7 @@ static void drm_mixer_commit(struct device *subdrv_dev, int zpos)
        ctx->enabled[win] = true;
 }
 
-static void drm_mixer_disable(struct device *subdrv_dev, int zpos)
+static void drm_mixer_win_disable(struct device *subdrv_dev, int zpos)
 {
        struct drm_hdmi_context *ctx = to_context(subdrv_dev);
        int win = (zpos == DEFAULT_ZPOS) ? MIXER_DEFAULT_WIN : zpos;
@@ -337,16 +325,24 @@ static void drm_mixer_disable(struct device *subdrv_dev, int zpos)
        ctx->enabled[win] = false;
 }
 
-static struct exynos_drm_overlay_ops drm_hdmi_overlay_ops = {
-       .mode_set = drm_mixer_mode_set,
-       .commit = drm_mixer_commit,
-       .disable = drm_mixer_disable,
+static struct exynos_drm_manager_ops drm_hdmi_manager_ops = {
+       .dpms = drm_hdmi_dpms,
+       .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,
+       .commit = drm_hdmi_commit,
+       .win_mode_set = drm_mixer_win_mode_set,
+       .win_commit = drm_mixer_win_commit,
+       .win_disable = drm_mixer_win_disable,
 };
 
 static struct exynos_drm_manager hdmi_manager = {
        .pipe           = -1,
        .ops            = &drm_hdmi_manager_ops,
-       .overlay_ops    = &drm_hdmi_overlay_ops,
        .display_ops    = &drm_hdmi_display_ops,
 };
 
index ddaaedde173d0814b5823e628bc1f61e07eae8d8..fca7ad5502990841895d866eb550b0a03cda2d61 100644 (file)
@@ -180,14 +180,13 @@ static void vidi_apply(struct device *subdrv_dev)
        struct vidi_context *ctx = get_vidi_context(subdrv_dev);
        struct exynos_drm_manager *mgr = ctx->subdrv.manager;
        struct exynos_drm_manager_ops *mgr_ops = mgr->ops;
-       struct exynos_drm_overlay_ops *ovl_ops = mgr->overlay_ops;
        struct vidi_win_data *win_data;
        int i;
 
        for (i = 0; i < WINDOWS_NR; i++) {
                win_data = &ctx->win_data[i];
-               if (win_data->enabled && (ovl_ops && ovl_ops->commit))
-                       ovl_ops->commit(subdrv_dev, i);
+               if (win_data->enabled && (mgr_ops && mgr_ops->win_commit))
+                       mgr_ops->win_commit(subdrv_dev, i);
        }
 
        if (mgr_ops && mgr_ops->commit)
@@ -217,7 +216,7 @@ static int vidi_enable_vblank(struct device *dev)
        /*
         * in case of page flip request, vidi_finish_pageflip function
         * will not be called because direct_vblank is true and then
-        * that function will be called by overlay_ops->commit callback
+        * that function will be called by manager_ops->win_commit callback
         */
        schedule_work(&ctx->work);
 
@@ -235,14 +234,6 @@ static void vidi_disable_vblank(struct device *dev)
                ctx->vblank_on = false;
 }
 
-static struct exynos_drm_manager_ops vidi_manager_ops = {
-       .dpms = vidi_dpms,
-       .apply = vidi_apply,
-       .commit = vidi_commit,
-       .enable_vblank = vidi_enable_vblank,
-       .disable_vblank = vidi_disable_vblank,
-};
-
 static void vidi_win_mode_set(struct device *dev,
                              struct exynos_drm_overlay *overlay)
 {
@@ -339,16 +330,20 @@ static void vidi_win_disable(struct device *dev, int zpos)
        /* TODO. */
 }
 
-static struct exynos_drm_overlay_ops vidi_overlay_ops = {
-       .mode_set = vidi_win_mode_set,
-       .commit = vidi_win_commit,
-       .disable = vidi_win_disable,
+static struct exynos_drm_manager_ops vidi_manager_ops = {
+       .dpms = vidi_dpms,
+       .apply = vidi_apply,
+       .commit = vidi_commit,
+       .enable_vblank = vidi_enable_vblank,
+       .disable_vblank = vidi_disable_vblank,
+       .win_mode_set = vidi_win_mode_set,
+       .win_commit = vidi_win_commit,
+       .win_disable = vidi_win_disable,
 };
 
 static struct exynos_drm_manager vidi_manager = {
        .pipe           = -1,
        .ops            = &vidi_manager_ops,
-       .overlay_ops    = &vidi_overlay_ops,
        .display_ops    = &vidi_display_ops,
 };
 
index 2dfa48c76f54644d1c7efd6fb6e52bedacc02e70..53fd076916513b25b16df4b22dc39c0006cbda7f 100644 (file)
@@ -975,8 +975,6 @@ static struct exynos_mixer_ops mixer_ops = {
        .disable_vblank         = mixer_disable_vblank,
        .wait_for_vblank        = mixer_wait_for_vblank,
        .dpms                   = mixer_dpms,
-
-       /* overlay */
        .win_mode_set           = mixer_win_mode_set,
        .win_commit             = mixer_win_commit,
        .win_disable            = mixer_win_disable,
This page took 0.044405 seconds and 5 git commands to generate.