dm_test_crt...tc_irq_error(9)
π dm_test_crtc_enable_vblank_crtc_irq_error(9) β like, the Kernel API Manual one, bestie β¨
okay so welcome to section 9 of the Kernel API Manual, the one and only dm_test_crtc_enable_vblank_crtc_irq_error(9) π β yes the page title got squished down to dm_test_crt...tc_irq_error(9) in the header because terminals are haters, but you and me both know the full name, and she is iconic.
β¨ NAME β¨
dm_test_crtc_enable_vblank_crtc_irq_error β the test that proves a crtc IRQ failure aborts the enable. like, it will NOT let enable slide through, periodt π
πΈ SYNOPSIS πΈ
void dm_test_crtc_enable_vblank_crtc_irq_error (struct kunit *test );
that's it. one function, one argument, zero drama (well, the test itself is the drama, but you know what I mean π«Ά).
π¦ ARGUMENTS π¦
testβ The KUnit test context. it's the little world this test lives in, hand it over and let her cook π
π DESCRIPTION π
okay so here's the vibe: on a non-VRR DC, the vupdate-irq branch is skipped. like, not invited to the party, mmkay π.
and then β and this is the main character moment β with the IRQ subsystem uninstalled, amdgpu_irq_get on the crtc IRQ returns -ENOENT π. and the enable path must propagate it before it touches the pageflip IRQ. like, it has to carry that error up the chain, no quietly ignoring it, no swallowing it, none of that π.
so the whole point of this test: does the enable path yeet that -ENOENT back out before it even thinks about touching the pageflip IRQ? that's the test. that's the girl. slay π₯
π SEE ALSO π
Kernel file
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c
and now the friend group, aka literally every sibling test in the file β go say hi to all of them, they all live in the same .c and they all have opinions π§:
dm_test_crtc_modeset_required_active_mode_changed(9)dm_test_crtc_modeset_required_active_active_changed(9)dm_test_crtc_modeset_required_active_connectors_changed(9)dm_test_crtc_modeset_required_inactive(9)dm_test_crtc_modeset_required_no_changes(9)dm_test_crtc_vrr_active_irq_variable(9)dm_test_crtc_vrr_active_irq_fixed(9)dm_test_crtc_vrr_active_irq_inactive(9)dm_test_crtc_vrr_active_irq_disabled(9)dm_test_crtc_vrr_active_irq_unsupported(9)dm_test_crtc_vrr_active_variable(9)dm_test_crtc_vrr_active_fixed(9)dm_test_crtc_vrr_active_inactive(9)dm_test_crtc_vrr_active_disabled(9)dm_test_crtc_vrr_active_unsupported(9)dm_test_crtc_is_headless_null_adev(9)dm_test_crtc_is_headless_no_connectors(9)dm_test_crtc_is_headless_writeback_only(9)dm_test_crtc_is_headless_disconnected_display(9)dm_test_crtc_is_headless_connected_display(9)dm_test_crtc_is_headless_mixed_connectors(9)dm_test_crtc_helper_mode_fixup_returns_true(9)dm_test_crtc_set_vupdate_irq_no_otg(9)dm_test_crtc_set_vupdate_irq_dc_busy(9)dm_test_crtc_set_vupdate_irq_enable(9)dm_test_idle_create_workqueue(9)dm_test_idle_worker_disabled_clears_running(9)dm_test_idle_worker_enabled_breaks_when_idle_disallowed(9)dm_test_idle_worker_enabled_breaks_when_not_headless(9)dm_test_idle_worker_enabled_runs_body(9)dm_test_crtc_set_static_screen_optimze_no_sr_entry(9)dm_test_crtc_set_static_screen_optimze_sr_entry_psr(9)dm_test_crtc_set_static_screen_optimze_psr_su_skips(9)dm_test_crtc_enable_vblank_rejects_unconfigured(9)dm_test_crtc_enable_vblank_full_path(9)dm_test_crtc_enable_vblank_vupdate_busy(9)dm_test_crtc_enable_vblank_in_reset(9)dm_test_crtc_enable_vblank_queues_work(9)dm_test_crtc_enable_vblank_ips_restore(9)dm_test_crtc_enable_vblank_ips_restore_replay(9)dm_test_crtc_update_active_planes_no_stream(9)dm_test_count_crtc_active_planes_none(9)dm_test_count_crtc_active_planes_mixed(9)dm_test_crtc_duplicate_state_copies_fields(9)dm_test_crtc_reset_state_allocates_state(9)dm_test_crtc_destroy_state_no_stream(9)dm_test_crtc_destroy_state_releases_stream(9)dm_test_crtc_handle_vblank_no_event(9)dm_test_crtc_handle_vblank_skips_when_flip_submitted(9)dm_test_crtc_handle_vblank_completes_cursor_only(9)dm_test_vblank_control_worker_setup(9)dm_test_vblank_control_worker_enable_increments(9)dm_test_vblank_control_worker_disable_decrements(9)dm_test_vblank_control_worker_disable_clamps_zero(9)dm_test_crtc_disable_vblank_no_irq_installed(9)dm_test_crtc_disable_vblank_vrr(9)dm_test_crtc_disable_vblank_queues_work(9)
(yes that's all of them, i counted, don't come for me π«Ά)
ngl the source path gets cut off in the footer, it's giving "we ran out of screen width", but that's just how the footer do π
okayyy that's the page, bestie!! π this whole thing ships from ./drivers/gpu/drm/amd/display/... and the date on it is October 2026 π
β and the footer still calls her dm_test_crt...tc_irq_error(9), which, honestly? she's earned that nickname. mwah πβ¨π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms