drm/exynos: Let core take care of normalizing the zpos
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 21 Mar 2018 10:20:25 +0000 (12:20 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 28 Mar 2018 06:45:43 +0000 (09:45 +0300)
Instead of re-implementing the drm_atomic_helper_check() locally with just
adding drm_atomic_normalize_zpos() into it, set the
drm_mode_config->normalize_zpos.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
CC: Inki Dae <inki.dae@samsung.com>
CC: Joonyoung Shim <jy0922.shim@samsung.com>
CC: Seung-Woo Kim <sw0312.kim@samsung.com>
CC: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180321102029.15248-3-peter.ujfalusi@ti.com
drivers/gpu/drm/exynos/exynos_drm_drv.c
drivers/gpu/drm/exynos/exynos_drm_drv.h
drivers/gpu/drm/exynos/exynos_drm_fb.c

index a518e9c6d6ccf5284895a599ae73d1d775b9a285..39284bb7c2c28317e65d58a602bbc539838ea510 100644 (file)
 #define DRIVER_MAJOR   1
 #define DRIVER_MINOR   0
 
-int exynos_atomic_check(struct drm_device *dev,
-                       struct drm_atomic_state *state)
-{
-       int ret;
-
-       ret = drm_atomic_helper_check_modeset(dev, state);
-       if (ret)
-               return ret;
-
-       ret = drm_atomic_normalize_zpos(dev, state);
-       if (ret)
-               return ret;
-
-       ret = drm_atomic_helper_check_planes(dev, state);
-       if (ret)
-               return ret;
-
-       return ret;
-}
-
 static int exynos_drm_open(struct drm_device *dev, struct drm_file *file)
 {
        struct drm_exynos_file_private *file_priv;
index df2262f70d91681ae88cf1ff37da4d8cbaa23cdd..075957cb6ba16e0abfe2250398f7e42f0b8361e1 100644 (file)
@@ -275,7 +275,6 @@ static inline int exynos_dpi_bind(struct drm_device *dev,
 
 int exynos_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state,
                         bool nonblock);
-int exynos_atomic_check(struct drm_device *dev, struct drm_atomic_state *state);
 
 
 extern struct platform_driver fimd_driver;
index 0faaf829f5bf52a9d730d47f5de035a16a77a165..2379d732da67336f36e471a9f0411ea6107c2614 100644 (file)
@@ -206,7 +206,7 @@ static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = {
 static const struct drm_mode_config_funcs exynos_drm_mode_config_funcs = {
        .fb_create = exynos_user_fb_create,
        .output_poll_changed = drm_fb_helper_output_poll_changed,
-       .atomic_check = exynos_atomic_check,
+       .atomic_check = drm_atomic_helper_check,
        .atomic_commit = drm_atomic_helper_commit,
 };
 
@@ -227,4 +227,6 @@ void exynos_drm_mode_config_init(struct drm_device *dev)
        dev->mode_config.helper_private = &exynos_drm_mode_config_helpers;
 
        dev->mode_config.allow_fb_modifiers = true;
+
+       dev->mode_config.normalize_zpos = true;
 }