mbox series

[v3,0/2] drm/nouveau: Add drm_panic support for nv50+

Message ID 20240913071036.574782-1-jfalempe@redhat.com (mailing list archive)
Headers show
Series drm/nouveau: Add drm_panic support for nv50+ | expand

Message

Jocelyn Falempe Sept. 13, 2024, 7:03 a.m. UTC
This series adds basic drm_panic support for nouveau.
Patches 1 Add ABGR2101010 support in drm_panic.
Patch 2 registers nouveau to drm_panic, and handle tiling.
I've tested on a GTX1650 (Turing) and GF 8800 GT (Tesla), while
running Gnome/Wayland desktop, and in VT.

It should work on other nv50+ cards, but I didn't test them.

To test it, you need to build your kernel with CONFIG_DRM_PANIC=y, and run:

echo c > /proc/sysrq-trigger

or you can enable CONFIG_DRM_PANIC_DEBUG and run:

echo 1 > /sys/kernel/debug/dri/0/drm_panic_plane_0

v2:
 * Rebase and drop already merged patches.
 * Rework the tiling algorithm, using "swizzle" to compute the offset
   inside the block.
   
v3:
 * Fix support for Tesla GPU, which have simpler tiling.
 * Drop "add a private pointer to struct drm_scanout_buffer".
 * Use nouveau_framebuffer_get_layout() to get the tiling parameters.
 * Have 2 set_pixel() functions, depending on GPU family.
 
Jocelyn Falempe (2):
  drm/panic: Add ABGR2101010 support
  drm/nouveau: Add drm_panic support for nv50+

 drivers/gpu/drm/drm_panic.c             |  10 ++
 drivers/gpu/drm/nouveau/dispnv50/wndw.c | 139 +++++++++++++++++++++++-
 2 files changed, 147 insertions(+), 2 deletions(-)


base-commit: 9d443deb0441b9dbb22a9aac3b471da05220df1b