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 <tzimmermann@xxxxxxx> --- 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 dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel