Thomas Zimmermann 9a5cda
From 44373151ab429cca53fae53d9eed374aef64afad Mon Sep 17 00:00:00 2001
Thomas Zimmermann 9a5cda
From: Thomas Zimmermann <tzimmermann@suse.de>
Thomas Zimmermann 9a5cda
Date: Thu, 28 Jul 2022 14:40:50 +0200
Thomas Zimmermann 9a5cda
Subject: drm/mgag200: Split mgag200_modeset_init()
Thomas Zimmermann 9a5cda
Git-commit: 44373151ab429cca53fae53d9eed374aef64afad
Thomas Zimmermann 9a5cda
Patch-mainline: v6.1-rc1
Thomas Zimmermann 9a5cda
References: jsc#PED-1185
Thomas Zimmermann 9a5cda
Thomas Zimmermann 9a5cda
Split mgag200_modeset_init() into smaller helpers to initialize
Thomas Zimmermann 9a5cda
the mode_config structure and the pipeline. This will be helpful
Thomas Zimmermann 9a5cda
for transforming this code into per-model functions. No functional
Thomas Zimmermann 9a5cda
changes.
Thomas Zimmermann 9a5cda
Thomas Zimmermann 9a5cda
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Thomas Zimmermann 9a5cda
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Thomas Zimmermann 9a5cda
Tested-by: Jocelyn Falempe <jfalempe@redhat.com>
Thomas Zimmermann 9a5cda
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Thomas Zimmermann 9a5cda
Link: https://patchwork.freedesktop.org/patch/msgid/20220728124103.30159-2-tzimmermann@suse.de
Thomas Zimmermann 9a5cda
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Thomas Zimmermann 9a5cda
---
Thomas Zimmermann 9a5cda
 drivers/gpu/drm/mgag200/mgag200_mode.c | 41 ++++++++++++++++++++------
Thomas Zimmermann 9a5cda
 1 file changed, 32 insertions(+), 9 deletions(-)
Thomas Zimmermann 9a5cda
Thomas Zimmermann 9a5cda
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
Thomas Zimmermann 9a5cda
index a02f599cb9cf..78fdb3148ed7 100644
Thomas Zimmermann 9a5cda
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
Thomas Zimmermann 9a5cda
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
Thomas Zimmermann 9a5cda
@@ -1047,23 +1047,16 @@ static const struct drm_mode_config_funcs mgag200_mode_config_funcs = {
Thomas Zimmermann 9a5cda
 	.atomic_commit = drm_atomic_helper_commit,
Thomas Zimmermann 9a5cda
 };
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
-int mgag200_modeset_init(struct mga_device *mdev, resource_size_t vram_available)
Thomas Zimmermann 9a5cda
+static int mgag200_mode_config_init(struct mga_device *mdev, resource_size_t vram_available)
Thomas Zimmermann 9a5cda
 {
Thomas Zimmermann 9a5cda
 	struct drm_device *dev = &mdev->base;
Thomas Zimmermann 9a5cda
-	struct mga_i2c_chan *i2c = &mdev->i2c;
Thomas Zimmermann 9a5cda
-	struct drm_connector *connector = &mdev->connector;
Thomas Zimmermann 9a5cda
-	struct drm_simple_display_pipe *pipe = &mdev->display_pipe;
Thomas Zimmermann 9a5cda
-	size_t format_count = ARRAY_SIZE(mgag200_simple_display_pipe_formats);
Thomas Zimmermann 9a5cda
 	int ret;
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
-	mgag200_init_regs(mdev);
Thomas Zimmermann 9a5cda
-
Thomas Zimmermann 9a5cda
 	mdev->vram_available = vram_available;
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
 	ret = drmm_mode_config_init(dev);
Thomas Zimmermann 9a5cda
 	if (ret) {
Thomas Zimmermann 9a5cda
-		drm_err(dev, "drmm_mode_config_init() failed, error %d\n",
Thomas Zimmermann 9a5cda
-			ret);
Thomas Zimmermann 9a5cda
+		drm_err(dev, "drmm_mode_config_init() failed: %d\n", ret);
Thomas Zimmermann 9a5cda
 		return ret;
Thomas Zimmermann 9a5cda
 	}
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
@@ -1073,6 +1066,18 @@ int mgag200_modeset_init(struct mga_device *mdev, resource_size_t vram_available
Thomas Zimmermann 9a5cda
 	dev->mode_config.fb_base = mdev->vram_res->start;
Thomas Zimmermann 9a5cda
 	dev->mode_config.funcs = &mgag200_mode_config_funcs;
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
+	return 0;
Thomas Zimmermann 9a5cda
+}
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
+static int mgag200_pipeline_init(struct mga_device *mdev)
Thomas Zimmermann 9a5cda
+{
Thomas Zimmermann 9a5cda
+	struct drm_device *dev = &mdev->base;
Thomas Zimmermann 9a5cda
+	struct mga_i2c_chan *i2c = &mdev->i2c;
Thomas Zimmermann 9a5cda
+	struct drm_connector *connector = &mdev->connector;
Thomas Zimmermann 9a5cda
+	struct drm_simple_display_pipe *pipe = &mdev->display_pipe;
Thomas Zimmermann 9a5cda
+	size_t format_count = ARRAY_SIZE(mgag200_simple_display_pipe_formats);
Thomas Zimmermann 9a5cda
+	int ret;
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
 	ret = mgag200_i2c_init(mdev, i2c);
Thomas Zimmermann 9a5cda
 	if (ret) {
Thomas Zimmermann 9a5cda
 		drm_err(dev, "failed to add DDC bus: %d\n", ret);
Thomas Zimmermann 9a5cda
@@ -1113,6 +1118,24 @@ int mgag200_modeset_init(struct mga_device *mdev, resource_size_t vram_available
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
 	drm_crtc_enable_color_mgmt(&pipe->crtc, 0, false, MGAG200_LUT_SIZE);
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
+	return 0;
Thomas Zimmermann 9a5cda
+}
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
+int mgag200_modeset_init(struct mga_device *mdev, resource_size_t vram_available)
Thomas Zimmermann 9a5cda
+{
Thomas Zimmermann 9a5cda
+	struct drm_device *dev = &mdev->base;
Thomas Zimmermann 9a5cda
+	int ret;
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
+	mgag200_init_regs(mdev);
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
+	ret = mgag200_mode_config_init(mdev, vram_available);
Thomas Zimmermann 9a5cda
+	if (ret)
Thomas Zimmermann 9a5cda
+		return ret;
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
+	ret = mgag200_pipeline_init(mdev);
Thomas Zimmermann 9a5cda
+	if (ret)
Thomas Zimmermann 9a5cda
+		return ret;
Thomas Zimmermann 9a5cda
+
Thomas Zimmermann 9a5cda
 	drm_mode_config_reset(dev);
Thomas Zimmermann 9a5cda
 
Thomas Zimmermann 9a5cda
 	return 0;
Thomas Zimmermann 9a5cda
-- 
Thomas Zimmermann 9a5cda
2.39.0
Thomas Zimmermann 9a5cda