]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm: renesas: shmobile: Add drm_panic support
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 27 May 2024 13:34:48 +0000 (15:34 +0200)
committerMaxime Ripard <mripard@kernel.org>
Tue, 24 Sep 2024 14:15:33 +0000 (16:15 +0200)
Add support for the drm_panic module, which displays a message on
the screen when a kernel panic occurs.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Acked-by: Sui Jingfeng <sui.jingfeng@linux.dev>
Link: https://patchwork.freedesktop.org/patch/msgid/292638fde9aef8b00e984245f43dc02a818cf322.1716816827.git.geert+renesas@glider.be
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c

index 07ad17d24294d5e6105a640b3e1ee2bb65889721..9d166ab2af8bd231a19b60c339f237da8acd3609 100644 (file)
@@ -273,6 +273,13 @@ static const struct drm_plane_helper_funcs shmob_drm_plane_helper_funcs = {
        .atomic_disable = shmob_drm_plane_atomic_disable,
 };
 
+static const struct drm_plane_helper_funcs shmob_drm_primary_plane_helper_funcs = {
+       .atomic_check = shmob_drm_plane_atomic_check,
+       .atomic_update = shmob_drm_plane_atomic_update,
+       .atomic_disable = shmob_drm_plane_atomic_disable,
+       .get_scanout_buffer = drm_fb_dma_get_scanout_buffer,
+};
+
 static const struct drm_plane_funcs shmob_drm_plane_funcs = {
        .update_plane = drm_atomic_helper_update_plane,
        .disable_plane = drm_atomic_helper_disable_plane,
@@ -310,7 +317,12 @@ struct drm_plane *shmob_drm_plane_create(struct shmob_drm_device *sdev,
 
        splane->index = index;
 
-       drm_plane_helper_add(&splane->base, &shmob_drm_plane_helper_funcs);
+       if (type == DRM_PLANE_TYPE_PRIMARY)
+               drm_plane_helper_add(&splane->base,
+                                    &shmob_drm_primary_plane_helper_funcs);
+       else
+               drm_plane_helper_add(&splane->base,
+                                    &shmob_drm_plane_helper_funcs);
 
        return &splane->base;
 }