linux/Documentation/gpu
Jocelyn Falempe bf9fb17c66 drm/panic: Add a drm panic handler
This module displays a user friendly message when a kernel panic
occurs. It currently doesn't contain any debug information,
but that can be added later.

v2
 * Use get_scanout_buffer() instead of the drm client API.
  (Thomas Zimmermann)
 * Add the panic reason to the panic message (Nerdopolis)
 * Add an exclamation mark (Nerdopolis)

v3
 * Rework the drawing functions, to write the pixels line by line and
 to use the drm conversion helper to support other formats.
 (Thomas Zimmermann)

v4
 * Use drm_fb_r1_to_32bit for fonts (Thomas Zimmermann)
 * Remove the default y to DRM_PANIC config option (Thomas Zimmermann)
 * Add foreground/background color config option
 * Fix the bottom lines not painted if the framebuffer height
   is not a multiple of the font height.
 * Automatically register the device to drm_panic, if the function
   get_scanout_buffer exists. (Thomas Zimmermann)

v5
 * Change the drawing API, use drm_fb_blit_from_r1() to draw the font.
 * Also add drm_fb_fill() to fill area with background color.
 * Add draw_pixel_xy() API for drivers that can't provide a linear buffer.
 * Add a flush() callback for drivers that needs to synchronize the buffer.
 * Add a void *private field, so drivers can pass private data to
   draw_pixel_xy() and flush().

v6
 * Fix sparse warning for panic_msg and logo.

v7
 * Add select DRM_KMS_HELPER for the color conversion functions.

v8
 * Register directly each plane to the panic notifier (Sima)
 * Add raw_spinlock to properly handle concurrency (Sima)
 * Register plane instead of device, to avoid looping through plane
   list, and simplify code.
 * Replace get_scanout_buffer() logic with drm_panic_set_buffer()
  (Thomas Zimmermann)
 * Removed the draw_pixel_xy() API, will see later if it can be added back.

v9
 * Revert to using get_scanout_buffer() (Sima)
 * Move get_scanout_buffer() and panic_flush() to the plane helper
   functions (Thomas Zimmermann)
 * Register all planes with get_scanout_buffer() to the panic notifier
 * Use drm_panic_lock() to protect against race (Sima)

v10
 * Move blit and fill functions back in drm_panic (Thomas Zimmermann).
 * Simplify the text drawing functions.
 * Use kmsg_dumper instead of panic_notifier (Sima).

v12
 * Use array for map and pitch in struct drm_scanout_buffer
   to support multi-planar format later. (Thomas Zimmermann)
 * Better indent struct drm_scanout_buffer declaration. (Thomas Zimmermann)

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240409163432.352518-3-jfalempe@redhat.com
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2024-04-15 16:12:49 +02:00
..
amdgpu Documentation/gpu: Introduce a simple contribution list for display code 2024-01-29 15:39:11 -05:00
bridge
dp-mst drm/dp_mst: Introduce new refcounting scheme for mstbs and ports 2019-01-10 20:12:19 -05:00
imagination drm/imagination: Numerous documentation fixes. 2023-11-28 18:56:03 +01:00
rfc drm/doc/rfc: Removing missing reference to xe.rst 2024-01-19 11:36:26 -05:00
xe drm/xe/doc: Include documentation about xe_assert() 2023-12-21 11:45:08 -05:00
afbc.rst drm/afbc: Add AFBC modifier usage documentation 2019-01-11 17:52:06 +00:00
automated_testing.rst drm/doc: ci: Add IGT version details for flaky tests 2023-12-13 15:18:30 -03:00
backlight.rst doc-rst: Wire-up Backlight kernel-doc documentation 2020-07-20 10:26:22 +01:00
driver-uapi.rst drm/panthor: Add uAPI 2024-03-01 10:03:59 +01:00
drivers.rst drm/xe: Introduce a new DRM driver for Intel GPUs 2023-12-12 14:05:48 -05:00
drm-client.rst drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm-internals.rst drm/doc: internals: remove section on PCI legacy support 2024-01-12 13:58:35 +01:00
drm-kms-helpers.rst drm/eld: add helpers to modify the SADs of an ELD 2023-11-09 16:48:27 +02:00
drm-kms.rst drm/panic: Add a drm panic handler 2024-04-15 16:12:49 +02:00
drm-mm.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
drm-uapi.rst drm/doc: use cross-references for macros 2023-10-23 17:03:58 +02:00
drm-usage-stats.rst Documentation/gpu: Update documentation on drm-shared-* 2024-02-16 12:52:49 +01:00
drm-vm-bind-async.rst Documentation/gpu: Add a VM_BIND async document 2023-10-17 10:38:07 +02:00
drm-vm-bind-locking.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
i915.rst drm/i915: Add missing GSCCS documentation 2023-10-02 12:22:44 -04:00
implementation_guidelines.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
index.rst Documentation/gpu: Add a VM_BIND async document 2023-10-17 10:38:07 +02:00
introduction.rst Documentation/gpu: Reference articles on Linux graphics stack 2024-01-19 16:50:54 +01:00
kms-properties.csv Documentation: Fix typos 2023-08-18 11:29:03 -06:00
komeda-kms.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
mcde.rst drm/mcde: Fix reference to DOC comment 2019-10-05 20:35:14 +02:00
meson.rst Documentation/gpu/meson: Remove link to meson_canvas.c 2019-04-05 08:35:05 -04:00
msm-crash-dump.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
panfrost.rst drm/panfrost: Replace fdinfo's profiling debugfs knob with sysfs 2024-03-11 13:27:10 +01:00
pl111.rst drm: pl111: Update documentation 2020-07-23 10:06:22 +02:00
tegra.rst
todo.rst drm/todo: Add entry to rename drm_atomic_state 2023-12-18 11:45:40 +01:00
tve200.rst drm/tve200: fix kernel-doc documentation comment include 2018-02-21 09:26:38 +02:00
v3d.rst drm/v3d: Add missing v3d documentation structure. 2018-07-05 11:42:50 -07:00
vc4.rst drm/vc4: Improve the KUnit documentation 2022-12-15 08:54:08 +01:00
vga-switcheroo.rst
vgaarbiter.rst PCI/VGA: Move vgaarb to drivers/pci 2022-03-09 18:30:46 -06:00
vkms.rst drm/vkms: drop "Rotation" TODO 2023-05-08 09:57:24 -03:00
xen-front.rst drm/xen-front: Remove CMA support 2018-04-18 10:18:27 +03:00