Created
November 25, 2023 16:30
-
-
Save notro/53c1317e6061e4f9e70c0869ecfa63a3 to your computer and use it in GitHub Desktop.
drm/gud: Backport driver to v5.10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 51ffc57dcbb7f81ad3e24e28c7756f2b29f65980 Mon Sep 17 00:00:00 2001 | |
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org> | |
Date: Sat, 25 Nov 2023 17:20:13 +0100 | |
Subject: [PATCH 4/4] drm/gud: Backport driver to v5.10 | |
MIME-Version: 1.0 | |
Content-Type: text/plain; charset=UTF-8 | |
Content-Transfer-Encoding: 8bit | |
GUD was released as part of Linux v5.13. | |
This patch makes the necessary changes to make it compile on 5.10. | |
If a stable release less than v5.10.24 is used, | |
usb_intf_get_dma_device() is needed from commit | |
659ab7a ("drm: Use USB controller's DMA mask when importing dmabufs") | |
Signed-off-by: Noralf Trønnes <noralf@tronnes.org> | |
--- | |
drivers/gpu/drm/gud/gud_drv.c | 5 ++--- | |
drivers/gpu/drm/gud/gud_pipe.c | 13 ++++++------- | |
2 files changed, 8 insertions(+), 10 deletions(-) | |
diff --git a/drivers/gpu/drm/gud/gud_drv.c b/drivers/gpu/drm/gud/gud_drv.c | |
index 727612124dd0..0dbb97ab5e00 100644 | |
--- a/drivers/gpu/drm/gud/gud_drv.c | |
+++ b/drivers/gpu/drm/gud/gud_drv.c | |
@@ -19,7 +19,6 @@ | |
#include <drm/drm_drv.h> | |
#include <drm/drm_fb_helper.h> | |
#include <drm/drm_fourcc.h> | |
-#include <drm/drm_gem_atomic_helper.h> | |
#include <drm/drm_gem_framebuffer_helper.h> | |
#include <drm/drm_gem_shmem_helper.h> | |
#include <drm/drm_managed.h> | |
@@ -364,7 +363,7 @@ static void gud_debugfs_init(struct drm_minor *minor) | |
static const struct drm_simple_display_pipe_funcs gud_pipe_funcs = { | |
.check = gud_pipe_check, | |
.update = gud_pipe_update, | |
- .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, | |
+ .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, | |
}; | |
static const struct drm_mode_config_funcs gud_mode_config_funcs = { | |
@@ -380,7 +379,7 @@ static const u64 gud_pipe_modifiers[] = { | |
DEFINE_DRM_GEM_FOPS(gud_fops); | |
-static const struct drm_driver gud_drm_driver = { | |
+static struct drm_driver gud_drm_driver = { | |
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, | |
.fops = &gud_fops, | |
DRM_GEM_SHMEM_DRIVER_OPS, | |
diff --git a/drivers/gpu/drm/gud/gud_pipe.c b/drivers/gpu/drm/gud/gud_pipe.c | |
index ab96afb94241..15aa8877407e 100644 | |
--- a/drivers/gpu/drm/gud/gud_pipe.c | |
+++ b/drivers/gpu/drm/gud/gud_pipe.c | |
@@ -139,8 +139,7 @@ static int gud_prep_flush(struct gud_device *gdrm, struct drm_framebuffer *fb, | |
{ | |
struct dma_buf_attachment *import_attach = fb->obj[0]->import_attach; | |
u8 compression = gdrm->compression; | |
- struct dma_buf_map map; | |
- void *vaddr, *buf; | |
+ void *vmap, *vaddr, *buf; | |
size_t pitch, len; | |
int ret = 0; | |
@@ -149,11 +148,11 @@ static int gud_prep_flush(struct gud_device *gdrm, struct drm_framebuffer *fb, | |
if (len > gdrm->bulk_len) | |
return -E2BIG; | |
- ret = drm_gem_shmem_vmap(fb->obj[0], &map); | |
- if (ret) | |
- return ret; | |
+ vmap = drm_gem_shmem_vmap(fb->obj[0]); | |
+ if (!vmap) | |
+ return -ENOMEM; | |
- vaddr = map.vaddr + fb->offsets[0]; | |
+ vaddr = vmap + fb->offsets[0]; | |
if (import_attach) { | |
ret = dma_buf_begin_cpu_access(import_attach->dmabuf, DMA_FROM_DEVICE); | |
@@ -215,7 +214,7 @@ static int gud_prep_flush(struct gud_device *gdrm, struct drm_framebuffer *fb, | |
if (import_attach) | |
dma_buf_end_cpu_access(import_attach->dmabuf, DMA_FROM_DEVICE); | |
vunmap: | |
- drm_gem_shmem_vunmap(fb->obj[0], &map); | |
+ drm_gem_shmem_vunmap(fb->obj[0], vmap); | |
return ret; | |
} | |
-- | |
2.42.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment