mirror-linux/drivers/gpu/drm
Rodrigo Vivi c36218dc49
drm/ras: Introduce the DRM RAS infrastructure over generic netlink
Introduces the DRM RAS infrastructure over generic netlink.

The new interface allows drivers to expose RAS nodes and their
associated error counters to userspace in a structured and extensible
way. Each drm_ras node can register its own set of error counters, which
are then discoverable and queryable through netlink operations. This
lays the groundwork for reporting and managing hardware error states
in a unified manner across different DRM drivers.

Currently it only supports error-counter nodes. But it can be
extended later.

The registration is also not tied to any drm node, so it can be
used by accel devices as well.

It uses the new and mandatory YAML description format stored in
Documentation/netlink/specs/. This forces a single generic netlink
family namespace for the entire drm: "drm-ras".
But multiple-endpoints are supported within the single family.

Any modification to this API needs to be applied to
Documentation/netlink/specs/drm_ras.yaml before regenerating the
code:

$ tools/net/ynl/pyynl/ynl_gen_c.py --spec \
 Documentation/netlink/specs/drm_ras.yaml --mode uapi --header \
 -o include/uapi/drm/drm_ras.h

$ tools/net/ynl/pyynl/ynl_gen_c.py --spec \
  Documentation/netlink/specs/drm_ras.yaml --mode kernel \
  --header -o drivers/gpu/drm/drm_ras_nl.h

$ tools/net/ynl/pyynl/ynl_gen_c.py --spec \
  Documentation/netlink/specs/drm_ras.yaml \
  --mode kernel --source -o drivers/gpu/drm/drm_ras_nl.c

Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
Cc: Lijo Lazar <lijo.lazar@amd.com>
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: David S. Miller <davem@davemloft.net>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: netdev@vger.kernel.org
Co-developed-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com>
Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patch.msgid.link/20260304074412.464435-8-riana.tauro@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2026-03-05 19:38:55 -05:00
..
adp drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
amd drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
arm drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
armada drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
aspeed
ast drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
atmel-hlcdc drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
bridge drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
ci
clients Extra drm-misc-next for v6.19-rc1: 2025-12-02 18:09:08 +10:00
display Beyond Display related: 2025-12-27 16:27:04 +10:00
etnaviv Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
exynos drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
fsl-dcu drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
gma500 drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
gud drm/gud: rearrange gud_probe() to prepare for function splitting 2025-10-24 19:36:45 +01:00
hisilicon drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
hyperv drm/hyperv: move Kconfig under driver directory 2025-12-10 11:02:53 +02:00
i915 drm/i915/nvlp: Hook up display support 2026-02-10 10:09:23 -03:00
imagination drm-next for 6.19-rc1: 2025-12-04 08:53:30 -08:00
imx Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
ingenic
kmb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
lib
lima drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
logicvc
loongson drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
mcde drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
mediatek Mediatek DRM Next - 20251120 2025-11-21 18:48:28 +10:00
meson drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
mgag200 drm fixes for 6.19-rc1 2025-12-13 17:39:28 +12:00
msm drm-next for 6.19-rc1: 2025-12-04 08:53:30 -08:00
mxsfb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
nouveau drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
nova Driver core changes for 6.19-rc1 2025-12-05 21:29:02 -08:00
omapdrm drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
panel drm-misc-next for 6.20: 2025-12-26 19:00:41 +10:00
panfrost drm/panfrost: Bump the driver version to 1.6 2025-12-09 13:09:37 +01:00
panthor drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
pl111 drm: pl111: replace dev_* print functions with drm_* variants 2025-12-11 00:03:22 +01:00
qxl drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
radeon drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
renesas drm: renesas: rz-du: mipi_dsi: Add support for RZ/V2H(P) SoC 2025-12-16 07:25:29 +00:00
rockchip drm/rockchip: hdmi: add RK3368 controller variant 2025-12-15 14:55:26 +01:00
scheduler Merge drm/drm-next into drm-misc-next 2025-12-15 09:27:39 +01:00
sitronix drm: Add driver for Sitronix ST7920 LCD displays 2025-12-15 18:25:09 +01:00
solomon drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
sprd
sti drm-next for 6.19-rc1: 2025-12-04 08:53:30 -08:00
stm drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
sun4i drm/sun4i: Nuke mixer pointer from layer code 2025-11-12 17:18:25 +08:00
sysfb drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
tegra drm-next for 6.19-rc1: 2025-12-04 08:53:30 -08:00
tests Merge remote-tracking branch 'drm/drm-fixes' into drm-misc-fixes 2025-12-15 12:53:27 +01:00
tidss drm/tidss: Move OLDI mode validation to OLDI bridge mode_valid hook 2025-11-12 11:54:39 +02:00
tilcdc drm fixes for 6.19-rc1 2025-12-13 17:39:28 +12:00
tiny Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
ttm drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
tve200 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
tyr rust: driver: let probe() return impl PinInit<Self, Error> 2025-10-21 18:40:48 +02:00
udl drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
v3d drm/gem: Get rid of *_with_mnt helpers 2025-12-08 10:52:48 +01:00
vboxvideo drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vc4 drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vgem drm/vgem: move Kconfig under driver directory 2025-12-10 11:02:53 +02:00
virtio drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vkms drm/colorop: allow non-bypass colorops 2025-11-26 23:09:17 +01:00
vmwgfx Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
xe drm/xe: Add missing kernel docs in xe_exec_queue.c 2026-03-04 10:42:43 -08:00
xen drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
xlnx
Kconfig drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
Kconfig.debug
Makefile drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_atomic.c drm/atomic: Add dev pointer to drm_private_obj 2025-12-08 16:35:46 +01:00
drm_atomic_helper.c drm/colorop: Introduce new drm_colorop mode object 2025-11-26 23:03:30 +01:00
drm_atomic_state_helper.c drm/plane: Add COLOR PIPELINE property 2025-11-26 23:03:32 +01:00
drm_atomic_uapi.c drm/colorop: Add 3D LUT support to color pipeline 2025-11-26 23:09:42 +01:00
drm_auth.c
drm_blend.c
drm_bridge.c drm/bridge: add drm_bridge_unplug() and drm_bridge_enter/exit() 2025-12-11 11:28:43 +01:00
drm_bridge_helper.c
drm_buddy.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_cache.c
drm_client.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_client_event.c drm/client: Pass force parameter to client restore 2025-11-25 08:43:46 +01:00
drm_client_modeset.c
drm_client_sysrq.c drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_color_mgmt.c drm: Add Enhanced LUT precision structure 2025-11-26 23:03:35 +01:00
drm_colorop.c drm/colorop: Add DRM_COLOROP_1D_CURVE_GAMMA22 to 1D Curve 2025-11-26 23:09:44 +01:00
drm_connector.c drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE 2025-11-26 23:03:32 +01:00
drm_crtc.c drm/drm_crtc: Introduce sharpness strength property 2025-10-30 15:38:04 +02:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE 2025-11-26 23:03:32 +01:00
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c
drm_displayid.c drm/displayid: add quirk to ignore DisplayID checksum errors 2025-11-04 14:49:30 +02:00
drm_displayid_internal.h drm/displayid: add quirk to ignore DisplayID checksum errors 2025-11-04 14:49:30 +02:00
drm_draw.c
drm_draw_internal.h
drm_drv.c drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_dumb_buffers.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_edid.c drm/edid: add 6 bpc quirk to the Sharp LQ116M1JW10 2025-11-06 08:51:21 -08:00
drm_edid_load.c
drm_eld.c
drm_encoder.c
drm_exec.c
drm_fb_dma_helper.c
drm_fb_helper.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_fbdev_dma.c drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
drm_fbdev_shmem.c drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
drm_fbdev_ttm.c drm/fb-helper: Allocate and release fb_info in single place 2025-11-25 11:02:43 +01:00
drm_file.c drm/client: Pass force parameter to client restore 2025-11-25 08:43:46 +01:00
drm_flip_work.c
drm_format_helper.c
drm_format_internal.h
drm_fourcc.c
drm_framebuffer.c
drm_gem.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_gem_atomic_helper.c Linux 6.18-rc6 2025-11-21 08:55:08 +10:00
drm_gem_dma_helper.c drm/gem-dma: revert the 8-byte alignment constraint 2025-12-03 10:52:18 +01:00
drm_gem_framebuffer_helper.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_gem_shmem_helper.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_gem_ttm_helper.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_gem_vram_helper.c drm/ttm: Replace multiple booleans with flags in device init 2025-10-31 09:14:35 +00:00
drm_gpusvm.c drm/pagemap: pass pagemap_addr by reference 2026-02-17 13:10:52 +01:00
drm_gpuvm.c Cross-subsystem Changes: 2025-11-20 10:44:50 +10:00
drm_internal.h drm/client: Support emergency restore via sysrq for all clients 2025-11-25 08:43:47 +01:00
drm_ioc32.c
drm_ioctl.c drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE 2025-11-26 23:03:32 +01:00
drm_kms_helper_common.c
drm_lease.c
drm_managed.c
drm_mipi_dbi.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_mipi_dsi.c
drm_mm.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_mode_config.c drm/colorop: Introduce new drm_colorop mode object 2025-11-26 23:03:30 +01:00
drm_mode_object.c drm/colorop: Introduce DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE 2025-11-26 23:03:32 +01:00
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_pagemap.c drm/pagemap: pass pagemap_addr by reference 2026-02-17 13:10:52 +01:00
drm_pagemap_util.c drm/pagemap_util: Add a utility to assign an owner to a set of interconnected gpus 2025-12-23 10:00:47 +01:00
drm_panel.c
drm_panel_backlight_quirks.c
drm_panel_orientation_quirks.c
drm_panic.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_panic_qr.rs
drm_pci.c
drm_plane.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_plane_helper.c
drm_prime.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
drm_print.c
drm_privacy_screen.c
drm_privacy_screen_x86.c
drm_probe_helper.c
drm_property.c
drm_ras.c drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_ras_genl_family.c drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_ras_nl.c drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_ras_nl.h drm/ras: Introduce the DRM RAS infrastructure over generic netlink 2026-03-05 19:38:55 -05:00
drm_rect.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_suballoc.c drm/sa: Split drm_suballoc_new() into SA alloc and init helpers 2026-02-20 10:54:02 -08:00
drm_syncobj.c drm/syncobj: Convert syncobj idr to xarray 2025-12-18 09:05:30 +00:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm-misc-next for 6.19: 2025-12-26 18:15:33 +10:00
drm_vblank_helper.c
drm_vblank_work.c drm/vblank: use drm_crtc_vblank_crtc() in workers 2025-11-10 13:22:58 +02:00
drm_vma_manager.c
drm_writeback.c