On 13/09/2024 09:03, Jocelyn Falempe wrote:
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.
I got a test report, that it also works correctly on a GT1030 (Pascal).
So I'm confident it works also on earlier GPUs.
Best regards,
--
Jocelyn
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