From 4764cd7c19ea519a458e08c3ffb59727b90f83d3 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Thu, 7 Apr 2022 20:11:42 +0800 Subject: [PATCH] drm/rockchip: debugfs: fix dump 10bit afbc yuv format error Signed-off-by: Sandy Huang Change-Id: I2aa75d691de794d62c2eada5419ab441da69f471 --- drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c b/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c index 070fe43f51a0..128a514fc74d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c @@ -61,7 +61,7 @@ int rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_co char file_name[100]; int width; size_t size, uv_size = 0; - void *kvaddr; + void *kvaddr, *kvaddr_origin; struct file *file; loff_t pos = 0; struct drm_format_name_buf format_name; @@ -75,7 +75,7 @@ int rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_co u8 hsub = dump_info->format->hsub; u8 vsub = dump_info->format->vsub; - width = dump_info->pitches; + width = dump_info->pitches * 8 / bpp; flags = O_RDWR | O_CREAT | O_APPEND; uv_size = (width * dump_info->height * bpp >> 3) * 2 / hsub / vsub; snprintf(file_name, 100, "%s/video%d_%d_%s.%s", DUMP_BUF_PATH, @@ -92,6 +92,7 @@ int rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_co } kvaddr = vmap(dump_info->pages, dump_info->num_pages, VM_MAP, pgprot_writecombine(PAGE_KERNEL)); + kvaddr_origin = kvaddr; if (!kvaddr) DRM_ERROR("failed to vmap() buffer\n"); else @@ -111,7 +112,7 @@ int rockchip_drm_dump_plane_buffer(struct vop_dump_info *dump_info, int frame_co } else { DRM_INFO("open %s failed\n", ptr); } - vunmap(kvaddr); + vunmap(kvaddr_origin); return 0; }