From: Ryosuke Yasuoka Date: Fri, 13 Jun 2025 13:20:14 +0000 (+0900) Subject: drm/bochs: Add support for drm_panic X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a629feabb53b8d714caa8fb9f307517218a5fbcd;p=thirdparty%2Flinux.git drm/bochs: Add support for drm_panic Add drm_panic module for bochs drm so that panic screen can be displayed on panic. Signed-off-by: Ryosuke Yasuoka Reviewed-by: Jocelyn Falempe Link: https://lore.kernel.org/r/20250613132023.106946-1-ryasuoka@redhat.com Signed-off-by: Jocelyn Falempe --- diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c index 8706763af8fba..8d3b7c4fa6a49 100644 --- a/drivers/gpu/drm/tiny/bochs.c +++ b/drivers/gpu/drm/tiny/bochs.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -469,10 +470,28 @@ static void bochs_primary_plane_helper_atomic_update(struct drm_plane *plane, bochs_hw_setformat(bochs, fb->format); } +static int bochs_primary_plane_helper_get_scanout_buffer(struct drm_plane *plane, + struct drm_scanout_buffer *sb) +{ + struct bochs_device *bochs = to_bochs_device(plane->dev); + struct iosys_map map = IOSYS_MAP_INIT_VADDR_IOMEM(bochs->fb_map); + + if (plane->state && plane->state->fb) { + sb->format = plane->state->fb->format; + sb->width = plane->state->fb->width; + sb->height = plane->state->fb->height; + sb->pitch[0] = plane->state->fb->pitches[0]; + sb->map[0] = map; + return 0; + } + return -ENODEV; +} + static const struct drm_plane_helper_funcs bochs_primary_plane_helper_funcs = { DRM_GEM_SHADOW_PLANE_HELPER_FUNCS, .atomic_check = bochs_primary_plane_helper_atomic_check, .atomic_update = bochs_primary_plane_helper_atomic_update, + .get_scanout_buffer = bochs_primary_plane_helper_get_scanout_buffer, }; static const struct drm_plane_funcs bochs_primary_plane_funcs = {