summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/mgag200
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2022-08-08 14:53:55 +0200
committerThomas Zimmermann <tzimmermann@suse.de>2022-08-10 09:15:51 +0200
commitedbe262acf92c986ad9a1f594ae3b4f3d3373133 (patch)
tree7444cd4c37ce60e13025d34c87b2c909a87bad44 /drivers/gpu/drm/mgag200
parent71bf55872cbe035820a87b2aa5fc1dc60678abfa (diff)
drm/format-helper: Merge drm_fb_memcpy() and drm_fb_memcpy_toio()
Merge drm_fb_memcpy() and drm_fb_memcpy_toio() into a drm_fb_memcpy() that uses struct iosys_map for buffers. The new function also supports multi-plane color formats. Convert all users of the original helpers. v2: * rebase onto refactored mgag200 * use drm_formap_info_bpp() (Sam) * do static init in hyperv and mgag200 (Sam) * update documentation (Sam) * add TODO on vaddr location (Sam) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20220808125406.20752-4-tzimmermann@suse.de
Diffstat (limited to 'drivers/gpu/drm/mgag200')
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_mode.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
index 1f26d4716679..bbab2549243a 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -430,13 +430,12 @@ static void mgag200_disable_display(struct mga_device *mdev)
}
static void mgag200_handle_damage(struct mga_device *mdev, const struct iosys_map *vmap,
- struct drm_framebuffer *fb, const struct drm_rect *clip)
+ struct drm_framebuffer *fb, struct drm_rect *clip)
{
- void __iomem *dst = mdev->vram;
- void *vaddr = vmap[0].vaddr; /* TODO: Use mapping abstraction properly */
+ struct iosys_map dst = IOSYS_MAP_INIT_VADDR_IOMEM(mdev->vram);
- dst += drm_fb_clip_offset(fb->pitches[0], fb->format, clip);
- drm_fb_memcpy_toio(dst, fb->pitches[0], vaddr, fb, clip);
+ iosys_map_incr(&dst, drm_fb_clip_offset(fb->pitches[0], fb->format, clip));
+ drm_fb_memcpy(&dst, fb->pitches, vmap, fb, clip);
}
/*