Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/imx: Add drm_panic support

Add support for the drm_panic module, which displays a user-friendly
message to the screen when a kernel panic occurs.

v7:
* use drm_panic_gem_get_scanout_buffer() helper

v8:
* Replace get_scanout_buffer() logic with drm_panic_set_buffer()

v9:
* Revert to using get_scanout_buffer() (Sima)
* move get_scanout_buffer() to plane helper functions

v12:
* Rename drm_panic_gem_get_scanout_buffer to drm_fb_dma_get_scanout_buffer
(Thomas Zimmermann)

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240409163432.352518-9-jfalempe@redhat.com
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>

+11 -1
+11 -1
drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
··· 773 773 .atomic_update = ipu_plane_atomic_update, 774 774 }; 775 775 776 + static const struct drm_plane_helper_funcs ipu_primary_plane_helper_funcs = { 777 + .atomic_check = ipu_plane_atomic_check, 778 + .atomic_disable = ipu_plane_atomic_disable, 779 + .atomic_update = ipu_plane_atomic_update, 780 + .get_scanout_buffer = drm_fb_dma_get_scanout_buffer, 781 + }; 782 + 776 783 bool ipu_plane_atomic_update_pending(struct drm_plane *plane) 777 784 { 778 785 struct ipu_plane *ipu_plane = to_ipu_plane(plane); ··· 923 916 ipu_plane->dma = dma; 924 917 ipu_plane->dp_flow = dp; 925 918 926 - drm_plane_helper_add(&ipu_plane->base, &ipu_plane_helper_funcs); 919 + if (type == DRM_PLANE_TYPE_PRIMARY) 920 + drm_plane_helper_add(&ipu_plane->base, &ipu_primary_plane_helper_funcs); 921 + else 922 + drm_plane_helper_add(&ipu_plane->base, &ipu_plane_helper_funcs); 927 923 928 924 if (dp == IPU_DP_FLOW_SYNC_BG || dp == IPU_DP_FLOW_SYNC_FG) 929 925 ret = drm_plane_create_zpos_property(&ipu_plane->base, zpos, 0,