Re: [PATCH v10 9/9] drm/ast: Add drm_panic support

2024-03-16 Thread Sui Jingfeng

Hi,


On 2024/3/15 23:11, Jocelyn Falempe wrote:

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

Signed-off-by: Jocelyn Falempe 



Acked-by: Sui Jingfeng 


--
Best regards,
Sui



[PATCH v10 9/9] drm/ast: Add drm_panic support

2024-03-15 Thread Jocelyn Falempe
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

Signed-off-by: Jocelyn Falempe 
---
 drivers/gpu/drm/ast/ast_mode.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index a718646a66b8..49f2d8bd3377 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -43,6 +43,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -700,12 +701,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 = plane->state->fb->pitches[0];
+   iosys_map_set_vaddr_iomem(&sb->map, 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 = {
-- 
2.44.0