[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