dm_test_hand...detect_false(9)
π dm_test_hand...detect_false(9) π
okay so bestie, this is a page from the Kernel API Manual β yes the whole name is genuinely dm_test_hand...detect_false(9), the truncation is not a typo, it's just the vibe π
. It's a KUnit test page, so buckle up π¦
β¨ NAME β¨
dm_test_handle_hpd_irq_helper_detect_false β the test that checks the immediate detect branch. literally that's her whole job π₯
πΈ SYNOPSIS πΈ
void dm_test_handle_hpd_irq_helper_detect_false (struct kunit *test );
π ARGUMENTS π
testβ the KUnit test context. that's it, that's the argument, she's low maintenance π«Ά
β DESCRIPTION β
So picture this π β there's no force, no debounce, and detection is stubbed out to report no connection. Given all that, the helper takes the else branch, periodt:
dc_exit_ips_for_hw_accessis a safe no-op here (no IPS support), so nothing spicy happens πdc_link_detectreturns false, which means the connectedif (ret)block gets skipped entirely β not me skipping my responsibilities, the code skipping the block π
And the one thing you cannot forget bestie: fake_enable must still be cleared. like, that's the whole point of the test, don't leave her hanging π
π¦ SEE ALSO π¦
π§ The kernel file (iykyk)
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
π HPD β DAL IRQ source mapping girlies
dm_test_hpd_to_dal_irq_source_hpd1(9),dm_test_hpd_to_dal_irq_source_hpd2(9),dm_test_hpd_to_dal_irq_source_hpd3(9),dm_test_hpd_to_dal_irq_source_hpd4(9),dm_test_hpd_to_dal_irq_source_hpd5(9),dm_test_hpd_to_dal_irq_source_hpd6(9),dm_test_hpd_to_dal_irq_source_invalid(9),dm_test_hpd_to_dal_irq_source_out_of_range(9)
π are_sinks_equal (the comparison clique)
dm_test_are_sinks_equal_both_null(9),dm_test_are_sinks_equal_first_null(9),dm_test_are_sinks_equal_second_null(9),dm_test_are_sinks_equal_different_signal(9),dm_test_are_sinks_equal_different_edid_length(9),dm_test_are_sinks_equal_different_edid_data(9),dm_test_are_sinks_equal_identical(9),dm_test_are_sinks_equal_zero_length(9),dm_test_are_sinks_equal_full_edid_identical(9),dm_test_are_sinks_equal_full_edid_last_byte_differs(9)
π notification_str (every flavour)
dm_test_notification_str_no_data(9),dm_test_notification_str_aux_reply(9),dm_test_notification_str_hpd(9),dm_test_notification_str_hpd_irq(9),dm_test_notification_str_set_config(9),dm_test_notification_str_dpia(9),dm_test_notification_str_hpd_sense(9),dm_test_notification_str_fused_io(9),dm_test_notification_str_unknown(9)
πΈ irq init / register / unregister / fini
dm_test_irq_init_initializes_lists(9)dm_test_irq_register_rejects_null_params(9),dm_test_irq_register_rejects_invalid_context(9),dm_test_irq_register_rejects_invalid_source(9)dm_test_irq_register_adds_low_context_handler(9),dm_test_irq_register_adds_high_context_handler(9)dm_test_irq_register_multiple_handlers(9),dm_test_irq_register_separate_contexts(9)dm_test_irq_unregister_rejects_invalid_source(9),dm_test_irq_unregister_rejects_null_handler(9),dm_test_irq_unregister_handler_not_found(9)dm_test_irq_fini_removes_registered_handlers(9),dm_test_irq_fini_on_empty_tables(9)
π crtc lookup + funcs
dm_test_get_crtc_by_otg_inst_returns_match(9),dm_test_get_crtc_by_otg_inst_returns_null(9),dm_test_get_crtc_by_otg_inst_empty_list(9),dm_test_set_irq_funcs(9)
β irq suspend / resume era
dm_test_irq_suspend_empty(9),dm_test_irq_resume_early_empty(9),dm_test_irq_resume_late_empty(9),dm_test_irq_suspend_registered(9),dm_test_irq_suspend_disables_polling(9),dm_test_irq_resume_early_registered(9),dm_test_irq_resume_late_registered(9),dm_test_irq_resume_late_enables_polling(9)
π«Ά hpd rx irq workqueue
dm_test_hpd_rx_irq_create_workqueue(9),dm_test_hpd_rx_irq_work_suspend_null(9),dm_test_hpd_rx_irq_work_suspend_flushes(9)
π set_*_irq_state (the whole collection)
dm_test_set_crtc_irq_state_no_crtc(9),dm_test_set_pflip_irq_state_no_crtc(9),dm_test_set_vline0_irq_state_no_crtc(9),dm_test_set_vupdate_irq_state_no_crtc(9)dm_test_set_crtc_irq_state_otg_disabled(9),dm_test_set_crtc_irq_state_enable(9),dm_test_set_pflip_irq_state_disable(9),dm_test_set_vline0_irq_state_enable(9),dm_test_set_vupdate_irq_state_enable(9),dm_test_set_crtc_irq_state_allows_idle(9)
π₯ irq work dispatch
dm_test_irq_immediate_work_empty(9),dm_test_irq_immediate_work_invokes_handler(9),dm_test_irq_immediate_work_invokes_all(9),dm_test_irq_schedule_work_empty(9),dm_test_irq_schedule_work_queues_handler(9),dm_test_irq_schedule_work_requeue_fallback(9)
π null dc squad
dm_test_set_hpd_irq_state_null_dc(9),dm_test_set_dmub_outbox_irq_state_null_dc(9),dm_test_set_dmub_trace_irq_state_null_dc(9),dm_test_outbox_init_null_dc(9)
π§ hpd init / fini
dm_test_hpd_init_empty_connectors(9),dm_test_hpd_fini_empty_connectors(9),dm_test_hpd_init_fini_with_connectors(9),dm_test_hpd_init_fini_analog_connector(9),dm_test_hpd_init_fini_irq_ref(9)
π hpd rx offload work
dm_test_hpd_rx_offload_work_no_connector(9),dm_test_hpd_rx_offload_work_no_connection(9),dm_test_hpd_rx_offload_work_automated_test(9),dm_test_hpd_rx_offload_work_link_loss(9)
π¦ hdmi hpd debounce
π handle_hpd_irq fam
dm_test_handle_hpd_irq_disabled(9),dm_test_handle_hpd_irq_helper_debounce_schedule(9),dm_test_handle_hpd_irq_helper_debounce_release_prev(9)
πΈ handle_hpd_rx_irq + schedule
dm_test_handle_hpd_rx_irq_disabled(9),dm_test_schedule_hpd_rx_offload_work(9),dm_test_handle_hpd_rx_irq_no_left_work(9),dm_test_handle_hpd_rx_irq_automated_test(9),dm_test_handle_hpd_rx_irq_msg_rdy(9),dm_test_handle_hpd_rx_irq_link_loss(9)
π dmub hpd callback
dm_test_dmub_hpd_callback_null_inputs(9),dm_test_dmub_hpd_callback_invalid_index(9),dm_test_dmub_hpd_callback_empty_connectors(9),dm_test_dmub_hpd_callback_unknown_type_match(9),dm_test_dmub_hpd_callback_hpd_type(9),dm_test_dmub_hpd_callback_hpd_irq_type(9)
π register_hpd_handlers
dm_test_register_hpd_handlers_empty(9),dm_test_register_hpd_handlers_valid(9),dm_test_register_hpd_handlers_invalid_hpd(9),dm_test_register_hpd_handlers_invalid_hpd_rx(9),dm_test_register_hpd_handlers_dmub_outbox(9)
π high irq girlies
dm_test_pflip_high_irq_no_crtc(9),dm_test_pflip_high_irq_not_submitted(9),dm_test_vupdate_high_irq_no_crtc(9),dm_test_crtc_high_irq_no_crtc(9),dm_test_crtc_high_irq_vrr_pre_ai(9),dm_test_crtc_high_irq_vrr_ai_no_stream(9)
π out-of-range + dmub outbox1 low irq
dm_test_handle_hpd_work_out_of_range(9),dm_test_dmub_outbox1_low_irq_empty(9),dm_test_dmub_outbox1_low_irq_no_handler(9),dm_test_dmub_outbox1_low_irq_direct_callback(9),dm_test_dmub_outbox1_low_irq_offload(9)
π₯ register irq handlers (dce110 + dcn10) and outbox handlers
dm_test_dce110_register_irq_handlers_rejects_uninitialized_sources(9),dm_test_dce110_register_irq_handlers_one_crtc(9),dm_test_dcn10_register_irq_handlers_zero_crtc(9),dm_test_dcn10_register_irq_handlers_one_crtc(9),dm_test_register_outbox_irq_handlers_without_dmub(9),dm_test_register_outbox_irq_handlers_with_dmub(9)
β the finale
ngl bestie, that SEE ALSO list is a whole friend group π but every single one of them matters, don't skip a single name.
mwah π this page lives in ./drivers/gpu/drm/amd/display/... and it's dated October 2026 β ok bye, go clear that fake_enable π«Άβ¨
π¦ 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