[openchrome-devel] drm-openchrome: Branch 'drm-next-5.10' - 5 commits - drivers/gpu/drm

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Sep 14 21:43:40 UTC 2020


 drivers/gpu/drm/openchrome/Makefile            |    1 
 drivers/gpu/drm/openchrome/openchrome_crtc.c   |    9 --
 drivers/gpu/drm/openchrome/openchrome_drv.c    |   15 ---
 drivers/gpu/drm/openchrome/openchrome_drv.h    |   11 --
 drivers/gpu/drm/openchrome/openchrome_fb.c     |   98 +++++++++++++++++++--
 drivers/gpu/drm/openchrome/openchrome_fbdev.c  |  112 -------------------------
 drivers/gpu/drm/openchrome/openchrome_object.c |    1 
 7 files changed, 96 insertions(+), 151 deletions(-)

New commits:
commit ce6d16aee96a0f1cf2f537cd66c53ff0a27d7191
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Sep 14 14:42:27 2020 -0700

    drm/openchrome: Version bumped to 3.3.4
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index 83cfa0cd4861..2d2262e8a3b7 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -61,10 +61,10 @@
 
 #define DRIVER_MAJOR		3
 #define DRIVER_MINOR		3
-#define DRIVER_PATCHLEVEL	3
+#define DRIVER_PATCHLEVEL	4
 #define DRIVER_NAME		"openchrome"
 #define DRIVER_DESC		"OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE		"20200910"
+#define DRIVER_DATE		"20200914"
 #define DRIVER_AUTHOR		"OpenChrome Project"
 
 
commit b285accb9249d5a323219849f6e3e81b76c53466
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Sep 14 14:41:09 2020 -0700

    drm/openchrome: Adjust FB pointer inside openchrome_crtc_mode_set_base()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c
index d234ca8d61ec..ab467aadcda1 100644
--- a/drivers/gpu/drm/openchrome/openchrome_crtc.c
+++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c
@@ -1680,10 +1680,9 @@ static int openchrome_crtc_mode_set_base(struct drm_crtc *crtc,
 					int x, int y,
 					struct drm_framebuffer *old_fb)
 {
-	struct via_framebuffer *via_fb = container_of(
-					crtc->primary->fb,
+	struct drm_framebuffer *fb = crtc->primary->fb;
+	struct via_framebuffer *via_fb = container_of(fb,
 					struct via_framebuffer, fb);
-	struct drm_framebuffer *new_fb = &via_fb->fb;
 	struct openchrome_bo *bo;
 	struct drm_gem_object *gem;
 	int ret = 0;
@@ -1692,7 +1691,7 @@ static int openchrome_crtc_mode_set_base(struct drm_crtc *crtc,
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
 	/* No FB found. */
-	if (!new_fb) {
+	if (!fb) {
 		ret = -ENOMEM;
 		DRM_DEBUG_KMS("No FB found.\n");
 		goto exit;
@@ -1715,7 +1714,7 @@ static int openchrome_crtc_mode_set_base(struct drm_crtc *crtc,
 	}
 
 	ret = crtc->helper_private->mode_set_base_atomic(crtc,
-						new_fb, x, y,
+						fb, x, y,
 						ENTER_ATOMIC_MODE_SET);
 	if (unlikely(ret)) {
 		DRM_DEBUG_KMS("Failed to set a new FB.\n");
commit 9d5f5116f667cdf62ad9dc4245793a282d81ba2d
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Sep 14 14:37:32 2020 -0700

    drm/openchrome: Stop the use of gem_free_object_unlocked() callback
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.c b/drivers/gpu/drm/openchrome/openchrome_drv.c
index 278a0481292d..a415d629d915 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.c
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.c
@@ -47,19 +47,6 @@ static struct pci_device_id via_pci_table[] = {
 MODULE_DEVICE_TABLE(pci, via_pci_table);
 
 
-void openchrome_drm_driver_gem_free_object_unlocked (
-					struct drm_gem_object *obj)
-{
-	struct openchrome_bo *bo = container_of(obj,
-					struct openchrome_bo, gem);
-
-	DRM_DEBUG_KMS("Entered %s.\n", __func__);
-
-	ttm_bo_put(&bo->ttm_bo);
-
-	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-}
-
 static int openchrome_drm_driver_dumb_create(
 				struct drm_file *file_priv,
 				struct drm_device *dev,
@@ -250,8 +237,6 @@ static struct drm_driver via_driver = {
 	.load = openchrome_driver_load,
 	.unload = openchrome_driver_unload,
 	.lastclose = openchrome_driver_lastclose,
-	.gem_free_object_unlocked =
-		openchrome_drm_driver_gem_free_object_unlocked,
 	.dumb_create = openchrome_drm_driver_dumb_create,
 	.dumb_map_offset =
 				openchrome_drm_driver_dumb_map_offset,
diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index a2b1e8c093b7..3289bf7ce3f0 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -90,6 +90,7 @@ void openchrome_ttm_bo_destroy(struct ttm_buffer_object *tbo)
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
 	drm_gem_object_release(&bo->gem);
+	ttm_bo_put(&bo->ttm_bo);
 	kfree(bo);
 
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
commit 21a245cfb01e0d1e92c0b894f7be9296fda0bd6c
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Sep 11 12:21:57 2020 -0700

    drm/openchrome: Migrate src/openchrome_fbdev.c code contents
    
    Migrate them to src/openchrome_fb.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/Makefile b/drivers/gpu/drm/openchrome/Makefile
index e26022adb6fc..57cafce15d2d 100644
--- a/drivers/gpu/drm/openchrome/Makefile
+++ b/drivers/gpu/drm/openchrome/Makefile
@@ -12,7 +12,6 @@ openchrome-y := openchrome_analog.o \
 		openchrome_drv.o \
 		openchrome_encoder.o \
 		openchrome_fb.o \
-		openchrome_fbdev.o \
 		openchrome_fp.o \
 		openchrome_hdmi.o \
 		openchrome_i2c.o \
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index b34c6916e7ba..83cfa0cd4861 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -396,9 +396,6 @@ void openchrome_device_fini(struct openchrome_drm_private *dev_private);
 int openchrome_dev_pm_ops_suspend(struct device *dev);
 int openchrome_dev_pm_ops_resume(struct device *dev);
 
-void openchrome_mode_config_init(
-			struct openchrome_drm_private *dev_private);
-
 void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 					uint32_t ttm_domain);
 void openchrome_ttm_bo_destroy(struct ttm_buffer_object *tbo);
@@ -432,8 +429,6 @@ extern const struct drm_plane_funcs openchrome_cursor_drm_plane_funcs;
 extern const uint32_t openchrome_cursor_formats[];
 extern const unsigned int openchrome_cursor_formats_size;
 
-extern struct drm_fb_helper_funcs via_drm_fb_helper_funcs;
-
 /* display */
 extern int via_modeset_init(struct drm_device *dev);
 extern void via_modeset_fini(struct drm_device *dev);
@@ -454,6 +449,8 @@ extern u32 via_get_clk_value(struct drm_device *dev, u32 clk);
 extern void via_set_vclock(struct drm_crtc *crtc, u32 clk);
 
 /* framebuffers */
+void openchrome_mode_config_init(
+			struct openchrome_drm_private *dev_private);
 extern int via_fbdev_init(struct drm_device *dev);
 extern void via_fbdev_fini(struct drm_device *dev);
 
diff --git a/drivers/gpu/drm/openchrome/openchrome_fb.c b/drivers/gpu/drm/openchrome/openchrome_fb.c
index 915fea15c8e7..068f39f2d132 100644
--- a/drivers/gpu/drm/openchrome/openchrome_fb.c
+++ b/drivers/gpu/drm/openchrome/openchrome_fb.c
@@ -21,13 +21,17 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/fb.h>
+
+#include <drm/drm_crtc_helper.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_fourcc.h>
-#include <drm/drm_crtc_helper.h>
+#include <drm/drm_gem.h>
 
 #include "openchrome_drv.h"
 
+
 static int
 via_user_framebuffer_create_handle(struct drm_framebuffer *fb,
 					struct drm_file *file_priv,
@@ -252,6 +256,86 @@ exit:
 	return ret;
 }
 
-struct drm_fb_helper_funcs via_drm_fb_helper_funcs = {
+static struct drm_fb_helper_funcs via_drm_fb_helper_funcs = {
 	.fb_probe = via_fb_probe,
 };
+
+int via_fbdev_init(struct drm_device *dev)
+{
+	struct openchrome_drm_private *dev_private = dev->dev_private;
+	struct via_framebuffer_device *via_fbdev;
+	int bpp_sel = 32;
+	int ret = 0;
+
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	via_fbdev = kzalloc(sizeof(struct via_framebuffer_device),
+				GFP_KERNEL);
+	if (!via_fbdev) {
+		ret = -ENOMEM;
+		goto exit;
+	}
+
+	dev_private->via_fbdev = via_fbdev;
+
+	drm_fb_helper_prepare(dev, &via_fbdev->helper,
+				&via_drm_fb_helper_funcs);
+
+	ret = drm_fb_helper_init(dev, &via_fbdev->helper);
+	if (ret) {
+		goto free_fbdev;
+	}
+
+	drm_helper_disable_unused_functions(dev);
+	ret = drm_fb_helper_initial_config(&via_fbdev->helper, bpp_sel);
+	if (ret) {
+		goto free_fb_helper;
+	}
+
+	goto exit;
+free_fb_helper:
+	drm_fb_helper_fini(&via_fbdev->helper);
+free_fbdev:
+	kfree(via_fbdev);
+exit:
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+	return ret;
+}
+
+void via_fbdev_fini(struct drm_device *dev)
+{
+	struct openchrome_drm_private *dev_private = dev->dev_private;
+	struct drm_fb_helper *fb_helper = &dev_private->
+						via_fbdev->helper;
+	struct via_framebuffer *via_fb = &dev_private->
+						via_fbdev->via_fb;
+	struct fb_info *info;
+
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	if (!fb_helper) {
+		goto exit;
+	}
+
+	info = fb_helper->fbdev;
+	if (info) {
+		unregister_framebuffer(info);
+		kfree(info->apertures);
+		framebuffer_release(info);
+		fb_helper->fbdev = NULL;
+	}
+
+	if (via_fb->gem) {
+		drm_gem_object_put(via_fb->gem);
+		via_fb->gem = NULL;
+	}
+
+	drm_fb_helper_fini(&dev_private->via_fbdev->helper);
+	drm_framebuffer_cleanup(&dev_private->via_fbdev->via_fb.fb);
+	if (dev_private->via_fbdev) {
+		kfree(dev_private->via_fbdev);
+		dev_private->via_fbdev = NULL;
+	}
+exit:
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+}
diff --git a/drivers/gpu/drm/openchrome/openchrome_fbdev.c b/drivers/gpu/drm/openchrome/openchrome_fbdev.c
deleted file mode 100644
index 464eb8407e5c..000000000000
--- a/drivers/gpu/drm/openchrome/openchrome_fbdev.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2012 James Simmons <jsimmons at infradead.org>. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#include <linux/fb.h>
-
-#include <drm/drm_crtc_helper.h>
-#include <drm/drm_drv.h>
-#include <drm/drm_fb_helper.h>
-#include <drm/drm_gem.h>
-
-#include "openchrome_drv.h"
-
-
-int via_fbdev_init(struct drm_device *dev)
-{
-	struct openchrome_drm_private *dev_private = dev->dev_private;
-	struct via_framebuffer_device *via_fbdev;
-	int bpp_sel = 32;
-	int ret = 0;
-
-	DRM_DEBUG_KMS("Entered %s.\n", __func__);
-
-	via_fbdev = kzalloc(sizeof(struct via_framebuffer_device),
-				GFP_KERNEL);
-	if (!via_fbdev) {
-		ret = -ENOMEM;
-		goto exit;
-	}
-
-	dev_private->via_fbdev = via_fbdev;
-
-	drm_fb_helper_prepare(dev, &via_fbdev->helper,
-				&via_drm_fb_helper_funcs);
-
-	ret = drm_fb_helper_init(dev, &via_fbdev->helper);
-	if (ret) {
-		goto free_fbdev;
-	}
-
-	drm_helper_disable_unused_functions(dev);
-	ret = drm_fb_helper_initial_config(&via_fbdev->helper, bpp_sel);
-	if (ret) {
-		goto free_fb_helper;
-	}
-
-	goto exit;
-free_fb_helper:
-	drm_fb_helper_fini(&via_fbdev->helper);
-free_fbdev:
-	kfree(via_fbdev);
-exit:
-	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-	return ret;
-}
-
-void via_fbdev_fini(struct drm_device *dev)
-{
-	struct openchrome_drm_private *dev_private = dev->dev_private;
-	struct drm_fb_helper *fb_helper = &dev_private->
-						via_fbdev->helper;
-	struct via_framebuffer *via_fb = &dev_private->
-						via_fbdev->via_fb;
-	struct fb_info *info;
-
-	DRM_DEBUG_KMS("Entered %s.\n", __func__);
-
-	if (!fb_helper) {
-		goto exit;
-	}
-
-	info = fb_helper->fbdev;
-	if (info) {
-		unregister_framebuffer(info);
-		kfree(info->apertures);
-		framebuffer_release(info);
-		fb_helper->fbdev = NULL;
-	}
-
-	if (via_fb->gem) {
-		drm_gem_object_put(via_fb->gem);
-		via_fb->gem = NULL;
-	}
-
-	drm_fb_helper_fini(&dev_private->via_fbdev->helper);
-	drm_framebuffer_cleanup(&dev_private->via_fbdev->via_fb.fb);
-	if (dev_private->via_fbdev) {
-		kfree(dev_private->via_fbdev);
-		dev_private->via_fbdev = NULL;
-	}
-exit:
-	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-}
commit 77ea1d5f8cc9424a4c7dcf2d434bc9e3e15a8417
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Sep 11 11:56:19 2020 -0700

    drm/openchrome: Use drm_fb_helper_output_poll_changed() helper
    
    Rather than doing our own for output_poll_changed() callback of
    drm_mode_config_funcs struct.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_fb.c b/drivers/gpu/drm/openchrome/openchrome_fb.c
index 5a8ef6d83837..915fea15c8e7 100644
--- a/drivers/gpu/drm/openchrome/openchrome_fb.c
+++ b/drivers/gpu/drm/openchrome/openchrome_fb.c
@@ -69,14 +69,6 @@ static const struct drm_framebuffer_funcs via_fb_funcs = {
 	.destroy	= via_user_framebuffer_destroy,
 };
 
-static void
-via_output_poll_changed(struct drm_device *dev)
-{
-	struct openchrome_drm_private *dev_private = dev->dev_private;
-
-	drm_fb_helper_hotplug_event(&dev_private->via_fbdev->helper);
-}
-
 static struct drm_framebuffer *
 via_user_framebuffer_create(struct drm_device *dev,
 				struct drm_file *file_priv,
@@ -114,7 +106,7 @@ via_user_framebuffer_create(struct drm_device *dev,
 
 static const struct drm_mode_config_funcs via_mode_funcs = {
 	.fb_create		= via_user_framebuffer_create,
-	.output_poll_changed	= via_output_poll_changed
+	.output_poll_changed	= drm_fb_helper_output_poll_changed
 };
 
 void openchrome_mode_config_init(


More information about the openchrome-devel mailing list