drm/vs: hdmi + mipi console

fix the issue screen bloat when board connect hdmi and mipi

Signed-off-by: keith zhao <keith.zhao@starfivetech.com>
This commit is contained in:
keith zhao
2024-11-27 16:32:28 +08:00
committed by andy.hu
parent 17bc88d792
commit 4e52c3d52e

View File

@@ -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;