Returning a flag from kmap() whether mapped pages refer to system or
I/O memory. This prepares for a respective change to vmap().

Signed-off-by: Thomas Zimmermann <[email protected]>
---
 drivers/gpu/drm/ast/ast_mode.c           | 6 +++---
 drivers/gpu/drm/drm_gem_vram_helper.c    | 8 +++++---
 drivers/gpu/drm/mgag200/mgag200_cursor.c | 4 ++--
 include/drm/drm_gem_vram_helper.h        | 2 +-
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index b13eaa2619ab..bcfab641c3a9 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -1165,7 +1165,7 @@ static int ast_show_cursor(struct drm_crtc *crtc, void 
*src,
        u8 jreg;
 
        gbo = ast->cursor.gbo[ast->cursor.next_index];
-       dst = drm_gem_vram_vmap(gbo);
+       dst = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(dst))
                return PTR_ERR(dst);
        off = drm_gem_vram_offset(gbo);
@@ -1231,7 +1231,7 @@ static int ast_cursor_set(struct drm_crtc *crtc,
                return -ENOENT;
        }
        gbo = drm_gem_vram_of_gem(obj);
-       src = drm_gem_vram_vmap(gbo);
+       src = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(src)) {
                ret = PTR_ERR(src);
                goto err_drm_gem_object_put_unlocked;
@@ -1264,7 +1264,7 @@ static int ast_cursor_move(struct drm_crtc *crtc,
        u8 jreg;
 
        gbo = ast->cursor.gbo[ast->cursor.next_index];
-       dst = drm_gem_vram_vmap(gbo);
+       dst = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(dst))
                return PTR_ERR(dst);
 
diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c 
b/drivers/gpu/drm/drm_gem_vram_helper.c
index 666cb4c22bb9..05f63f28814d 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -411,6 +411,8 @@ EXPORT_SYMBOL(drm_gem_vram_kunmap);
  * drm_gem_vram_vmap() - Pins and maps a GEM VRAM object into kernel address
  *                       space
  * @gbo:       The GEM VRAM object to map
+ * @is_iomem:  returns true if the mapped memory is I/O memory, or false
+ *              otherwise; can be NULL
  *
  * The vmap function pins a GEM VRAM object to its current location, either
  * system or video memory, and maps its buffer into kernel address space.
@@ -425,7 +427,7 @@ EXPORT_SYMBOL(drm_gem_vram_kunmap);
  * The buffer's virtual address on success, or
  * an ERR_PTR()-encoded error code otherwise.
  */
-void *drm_gem_vram_vmap(struct drm_gem_vram_object *gbo)
+void *drm_gem_vram_vmap(struct drm_gem_vram_object *gbo, bool *is_iomem)
 {
        int ret;
        void *base;
@@ -437,7 +439,7 @@ void *drm_gem_vram_vmap(struct drm_gem_vram_object *gbo)
        ret = drm_gem_vram_pin_locked(gbo, 0);
        if (ret)
                goto err_ttm_bo_unreserve;
-       base = drm_gem_vram_kmap_locked(gbo, true, NULL);
+       base = drm_gem_vram_kmap_locked(gbo, true, is_iomem);
        if (IS_ERR(base)) {
                ret = PTR_ERR(base);
                goto err_drm_gem_vram_unpin_locked;
@@ -826,7 +828,7 @@ static void *drm_gem_vram_object_vmap(struct drm_gem_object 
*gem)
        struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem);
        void *base;
 
-       base = drm_gem_vram_vmap(gbo);
+       base = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(base))
                return NULL;
        return base;
diff --git a/drivers/gpu/drm/mgag200/mgag200_cursor.c 
b/drivers/gpu/drm/mgag200/mgag200_cursor.c
index 79711dbb5b03..765c59e25f3b 100644
--- a/drivers/gpu/drm/mgag200/mgag200_cursor.c
+++ b/drivers/gpu/drm/mgag200/mgag200_cursor.c
@@ -131,7 +131,7 @@ static int mgag200_show_cursor(struct mga_device *mdev, 
void *src,
                WREG8(MGA_CURPOSXH, 0);
                return -ENOTSUPP; /* Didn't allocate space for cursors */
        }
-       dst = drm_gem_vram_vmap(gbo);
+       dst = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(dst)) {
                ret = PTR_ERR(dst);
                dev_err(&dev->pdev->dev,
@@ -282,7 +282,7 @@ int mgag200_crtc_cursor_set(struct drm_crtc *crtc, struct 
drm_file *file_priv,
        if (!obj)
                return -ENOENT;
        gbo = drm_gem_vram_of_gem(obj);
-       src = drm_gem_vram_vmap(gbo);
+       src = drm_gem_vram_vmap(gbo, NULL);
        if (IS_ERR(src)) {
                ret = PTR_ERR(src);
                dev_err(&dev->pdev->dev,
diff --git a/include/drm/drm_gem_vram_helper.h 
b/include/drm/drm_gem_vram_helper.h
index e040541a105f..ef8f81acff91 100644
--- a/include/drm/drm_gem_vram_helper.h
+++ b/include/drm/drm_gem_vram_helper.h
@@ -106,7 +106,7 @@ int drm_gem_vram_unpin(struct drm_gem_vram_object *gbo);
 void *drm_gem_vram_kmap(struct drm_gem_vram_object *gbo, bool map,
                        bool *is_iomem);
 void drm_gem_vram_kunmap(struct drm_gem_vram_object *gbo);
-void *drm_gem_vram_vmap(struct drm_gem_vram_object *gbo);
+void *drm_gem_vram_vmap(struct drm_gem_vram_object *gbo, bool *is_iomem);
 void drm_gem_vram_vunmap(struct drm_gem_vram_object *gbo, void *vaddr);
 
 int drm_gem_vram_fill_create_dumb(struct drm_file *file,
-- 
2.23.0

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to