mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
drm/ast: Add drm_panic support
Add support for the drm_panic module, which displays a message to the screen when a kernel panic occurs. v7 * Use drm_for_each_primary_visible_plane() v8: * Replace get_scanout_buffer() logic with drm_panic_set_buffer() (Thomas Zimmermann) v9: * Revert to using get_scanout_buffer() (Sima) * move get_scanout_buffer() to plane helper functions v12: * Use array for map and pitch in struct drm_scanout_buffer to support multi-planar format later. (Thomas Zimmermann) Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Acked-by: Sui Jingfeng <sui.jingfeng@linux.dev> Tested-by: Sui Jingfeng <sui.jingfeng@linux.dev> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20240409163432.352518-10-jfalempe@redhat.com Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
99b6251945
commit
baaf150fa9
@ -43,6 +43,7 @@
|
||||
#include <drm/drm_gem_framebuffer_helper.h>
|
||||
#include <drm/drm_gem_shmem_helper.h>
|
||||
#include <drm/drm_managed.h>
|
||||
#include <drm/drm_panic.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/drm_simple_kms_helper.h>
|
||||
|
||||
@ -701,12 +702,29 @@ static void ast_primary_plane_helper_atomic_disable(struct drm_plane *plane,
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGASRI, 0x1, 0xdf, 0x20);
|
||||
}
|
||||
|
||||
static int ast_primary_plane_helper_get_scanout_buffer(struct drm_plane *plane,
|
||||
struct drm_scanout_buffer *sb)
|
||||
{
|
||||
struct ast_plane *ast_plane = to_ast_plane(plane);
|
||||
|
||||
if (plane->state && plane->state->fb && ast_plane->vaddr) {
|
||||
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];
|
||||
iosys_map_set_vaddr_iomem(&sb->map[0], ast_plane->vaddr);
|
||||
return 0;
|
||||
}
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static const struct drm_plane_helper_funcs ast_primary_plane_helper_funcs = {
|
||||
DRM_GEM_SHADOW_PLANE_HELPER_FUNCS,
|
||||
.atomic_check = ast_primary_plane_helper_atomic_check,
|
||||
.atomic_update = ast_primary_plane_helper_atomic_update,
|
||||
.atomic_enable = ast_primary_plane_helper_atomic_enable,
|
||||
.atomic_disable = ast_primary_plane_helper_atomic_disable,
|
||||
.get_scanout_buffer = ast_primary_plane_helper_get_scanout_buffer,
|
||||
};
|
||||
|
||||
static const struct drm_plane_funcs ast_primary_plane_funcs = {
|
||||
|
Loading…
Reference in New Issue
Block a user