dm_test_crt...d_connectors(9)
π dm_test_crtc_is_headless_mixed_connectors π
okay so bestie, welcome to the Kernel API Manual entry for dm_test_crt...d_connectors(9) β yes that's the abbreviated header name, we're being efficient with our screen real estate, slay. This is a KUnit test, it lives in the AMD display driver test suite, and it's here to vibe check whether a "headless" display setup correctly skips WB and still finds a display. That's the whole mission. Short king behavior, honestly. π
β¨ NAME β¨
dm_test_crtc_is_headless_mixed_connectors β Test headless skips WB and finds display π₯οΈβ¨
Like, that's literally it. It's headless, it's mixed connectors, and the test is checking that the writeback path gets skipped while the display still gets found. no cap, that's the flex. π
πΈ SYNOPSIS πΈ
void dm_test_crtc_is_headless_mixed_connectors (struct kunit *test );
one function, one argument, zero drama. π«Ά
π ARGUMENTS π
testβ The KUnit test context. this is the little harness buddy that carries the test state around, and yeah, we're passing it in. standard KUnit moment. π§
π¦ SEE ALSO π¦
okay this is the part where I introduce you to the whole friend group. there are a LOT of them and they're all (9) kernel API pages, so buckle up bestie, we're doing a roll call. π€
first up, the modeset_required crew:
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)
then the VRR active irq girlies:
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)
and the VRR active (no irq) edition:
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)
now the is_headless extended universe (our girl is literally one of these):
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)
a lone helper in the wild:
set_vupdate_irq squad:
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)
idle worker gang:
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)
static screen optimze crew (and yes, that spelling is exactly how it's spelled in the original, we do not correct the source, we respect the source π):
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)
enable_vblank lineup:
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_crtc_irq_error(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)
active planes counting besties:
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)
state handling crew:
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)
handle_vblank posse:
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)
vblank_control_worker hive:
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)
and finally, disable_vblank trio, closing out the list:
dm_test_crtc_disable_vblank_no_irq_installed(9)dm_test_crtc_disable_vblank_vrr(9)dm_test_crtc_disable_vblank_queues_work(9)
π Kernel file π
the source lives here, go say hi to it:
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c
like, that's the actual file, in the actual tree, in drivers/gpu/drm/amd/display/amdgpu_dm/tests/. iconic path honestly. π₯
quick vibe check reminder: every name above is literal and exact β copy them character for character if you're grepping or cross-referencing. no shortcuts, bestie. π
and that's the whole page! π source/version footer vibe: this one's stamped from ./drivers/gpu/drm/amd/display/... (truncated in the real footer, we're keeping it cute and keeping it exact) and dated October 2026. periodt. πβ¨πΈ
π¦ 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