[PATCH v4 0/3] drm/nouveau: Add drm_panic support for nv50+
Jocelyn Falempe
jfalempe at redhat.com
Tue Oct 22 18:39:46 UTC 2024
This series adds basic drm_panic support for nouveau.
I've tested on GTX1650 (Turing), GeForce GT 1030 (Pascal) and
Geforce 8800 GTS (Tesla), 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.
v4:
* Refactor and move the tiling code from nouveau_display.c to dispnv50/tile.h, so that
in can be re-used by drm_panic. (Lyude)
* Refactor get_scanout_buffer() to use the new dispnv50/tile.h
* use drm_warn() instead of pr_warn() in get_scanout_buffer
Jocelyn Falempe (3):
drm/panic: Add ABGR2101010 support
drm/nouveau/disp: Move tiling functions to dispnv50/tile.h
drm/nouveau: Add drm_panic support for nv50+
drivers/gpu/drm/drm_panic.c | 10 ++
drivers/gpu/drm/nouveau/dispnv50/tile.h | 63 +++++++++++
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 129 +++++++++++++++++++++-
drivers/gpu/drm/nouveau/nouveau_display.c | 59 ++--------
4 files changed, 210 insertions(+), 51 deletions(-)
create mode 100644 drivers/gpu/drm/nouveau/dispnv50/tile.h
base-commit: 2320c9e6a768d135c7b0039995182bb1a4e4fd22
--
2.47.0
More information about the Nouveau
mailing list