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