From 4e52c3d52e3b1e1bdbeb0b716be44537ddbff934 Mon Sep 17 00:00:00 2001 From: keith zhao Date: Wed, 27 Nov 2024 16:32:28 +0800 Subject: [PATCH] drm/vs: hdmi + mipi console fix the issue screen bloat when board connect hdmi and mipi Signed-off-by: keith zhao --- drivers/gpu/drm/drm_fbdev_generic.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/drm_fbdev_generic.c b/drivers/gpu/drm/drm_fbdev_generic.c index d647d89764cb..b170a368e097 100644 --- a/drivers/gpu/drm/drm_fbdev_generic.c +++ b/drivers/gpu/drm/drm_fbdev_generic.c @@ -93,6 +93,15 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, fb_helper->buffer = buffer; fb_helper->fb = buffer->fb; + struct iosys_map map; + ret = drm_client_buffer_vmap(buffer, &map); + if (ret) { + goto err_drm_client_framebuffer_delete; + } else if (drm_WARN_ON(dev, map.is_iomem)) { + ret = -ENODEV; /* I/O memory not supported; use generic emulation */ + goto err_drm_client_framebuffer_delete; + } + screen_size = buffer->gem->size; screen_buffer = vzalloc(screen_size); if (!screen_buffer) { @@ -105,6 +114,7 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, ret = PTR_ERR(info); goto err_vfree; } + iosys_map_memset(&map, 0, 0x00, screen_size); drm_fb_helper_fill_info(info, fb_helper, sizes); @@ -130,6 +140,7 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, err_drm_fb_helper_release_info: drm_fb_helper_release_info(fb_helper); err_vfree: + drm_client_buffer_vunmap(buffer); vfree(screen_buffer); err_drm_client_framebuffer_delete: fb_helper->fb = NULL;