dm_test_wri...able_success(9)
π NAME (aka what even is this)
Hiii bestie, welcome to the group chat π This is the manual page for dm_test_wri...able_success(9) β that's section 9 of the Kernel API Manual, and yes the name is abbreviated because it's the long one: dm_test_write_payload_alloc_table_success.
So what does it do? It's here to Exercise the MST success path β¨ That's it. That's the whole vibe. It's a KUnit test helper, and its job is to make the happy path happen on purpose. No cap.
β¨ SYNOPSIS β¨
void dm_test_write_payload_alloc_table_success (struct kunit *test , bool enable );
That's the whole signature, copy it exactly, don't get creative with it π«Ά
π ARGUMENTS π
testβ The KUnit test context. It's the lil' test harness babe that holds the whole thing together.enableβtruefor the add-payload path,falsefor the remove-payload path. That's it, that's the switch. Two moods, one boolean π
π¦ DESCRIPTION π¦
Okay so here's the tea β This thing builds a minimal MST topology-state fixture β think of it as setting the stage so the helper doesn't trip on the boring early exits. It does that specifically so the helper traverses past the early NULL checks (no getting stuck at the bouncer, we're going in πͺβ¨) and actually runs the real DRM MST payload helpers:
drm_dp_add_payload_part1drm_dp_remove_payload_part1
And here's the iconic part β with mgr->mst_primary == NULL, the topology walk fails gracefully. Which meansβ¦ no remote DPCD/AUX traffic is generated π literally zero network-y drama, nothing goes out the door. And yet the helper still returns true. Main character energy fr fr π A test that succeeds while everything around it is quietly NULL? Obsessed.
Ngl bestie, the graceful-fail-on-NULL is the whole point here β it's what keeps this test from poking actual hardware. Don't go "fixing" the NULL, iykyk π
π SEE ALSO π
Kernel file: ./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
And now, the moment you've all been waiting for⦠the entire friend group 𫢠This page's neighbours, in the exact order they were introduced to me, no skipping, no summarising, we list all of them:
dm_test_edid_extract_panel_id_basic(9)dm_test_edid_extract_panel_id_zeros(9)dm_test_apply_edid_quirks_dpcd_poweroff_delay(9)dm_test_apply_edid_quirks_disable_fams(9)dm_test_apply_edid_quirks_remove_sink_ext_caps(9)dm_test_apply_edid_quirks_disable_colorimetry(9)dm_test_apply_edid_quirks_skip_phy_ssc(9)dm_test_apply_edid_quirks_unknown_noop(9)dm_test_parse_edid_caps_null_edid(9)dm_test_parse_edid_caps_null_caps(9)dm_test_parse_edid_caps_valid(9)dm_test_parse_edid_caps_bad_checksum(9)dm_test_parse_edid_caps_hdmi_frl(9)dm_test_parse_edid_caps_hdmi_frl_dsc(9)dm_test_parse_edid_caps_cea_audio(9)dm_test_parse_edid_caps_cea_no_speaker(9)dm_test_probe_acpi_edid_no_companion(9)dm_test_read_acpi_edid_debug_mask_disabled(9)dm_test_read_acpi_edid_non_panel_connector(9)dm_test_read_acpi_edid_force_off(9)dm_test_read_vbios_edid_non_embedded(9)dm_test_read_vbios_edid_missing_callback(9)dm_test_read_vbios_edid_callback_error(9)dm_test_read_vbios_edid_missing_fake_edid(9)dm_test_read_vbios_edid_invalid_fake_edid(9)dm_test_read_vbios_edid_valid(9)dm_test_freesync_pcon_whitelist_all_known(9)dm_test_freesync_pcon_whitelist_not_in_list(9)dm_test_freesync_pcon_whitelist_zero(9)dm_test_populate_hdmi_scdc_present_true(9)dm_test_populate_hdmi_scdc_present_false(9)dm_test_populate_hdmi_frl_dsc_10bpc(9)dm_test_populate_hdmi_frl_dsc_12bpc(9)dm_test_populate_hdmi_frl_dsc_unknown_values(9)dm_test_adaptive_sync_type_none_default(9)dm_test_adaptive_sync_type_converter_no_conditions(9)dm_test_adaptive_sync_type_converter_partial_conditions(9)dm_test_adaptive_sync_type_pcon_whitelist(9)dm_test_adaptive_sync_type_converter_nonwhitelist(9)dm_test_helpers_is_fullscreen_returns_false(9)dm_test_helpers_is_hdr_on_returns_false(9)dm_test_get_max_frl_rate_3lanes_3gbps(9)dm_test_get_max_frl_rate_3lanes_6gbps(9)dm_test_get_max_frl_rate_4lanes_6gbps(9)dm_test_get_max_frl_rate_4lanes_8gbps(9)dm_test_get_max_frl_rate_4lanes_10gbps(9)dm_test_get_max_frl_rate_4lanes_12gbps(9)dm_test_get_max_frl_rate_unknown(9)dm_test_dtn_log_buffer_accumulates(9)dm_test_dtn_log_null_ctx_no_crash(9)dm_test_dp_read_dpcd_null_priv(9)dm_test_dp_write_dpcd_null_priv(9)dm_test_dp_read_dpcd_success(9)dm_test_dp_write_dpcd_success(9)dm_test_execute_fused_io_null_dmub_srv(9)dm_test_execute_synaptics_rc_command_write_success(9)dm_test_execute_synaptics_rc_command_read_success(9)dm_test_execute_synaptics_rc_command_write_fail(9)dm_test_apply_synaptics_fifo_reset_wa_full(9)dm_test_apply_synaptics_fifo_reset_wa_first_fail(9)dm_test_write_dsc_enable_synaptics_enable_inactive(9)dm_test_write_dsc_enable_synaptics_enable_active(9)dm_test_write_dsc_enable_synaptics_disable_inactive(9)dm_test_write_dsc_enable_synaptics_disable_active(9)dm_test_write_dsc_enable_synaptics_enable_non_synaptics(9)dm_test_dp_write_dsc_enable_routes_synaptics(9)dm_test_mst_start_top_mgr_null_priv(9)dm_test_mst_stop_top_mgr_null_priv(9)dm_test_mst_start_top_mgr_boot(9)dm_test_dp_write_hblank_reduction_false(9)dm_test_get_dsc_max_slices_1_340(9)dm_test_get_dsc_max_slices_2_340(9)dm_test_get_dsc_max_slices_4_340(9)dm_test_get_dsc_max_slices_8_340(9)dm_test_get_dsc_max_slices_8_400(9)dm_test_get_dsc_max_slices_12_400(9)dm_test_get_dsc_max_slices_16_400(9)dm_test_get_dsc_max_slices_unknown(9)dm_test_init_panel_settings_pps(9)dm_test_init_panel_settings_dsc(9)dm_test_override_panel_settings_debug_mask_disables_dsc(9)dm_test_override_panel_settings_second_edp_disables_psr(9)dm_test_fill_mst_payload_table_enable(9)dm_test_fill_mst_payload_table_disable(9)dm_test_fill_mst_payload_table_empty(9)dm_test_submit_i2c_null_priv(9)dm_test_submit_i2c_success(9)dm_test_submit_i2c_partial_transfer(9)dm_test_dmub_aux_transfer_sync_hpd_discon(9)dm_test_dp_update_branch_info_no_crash(9)dm_test_mst_poll_pending_down_reply_no_crash(9)dm_test_mst_clear_payload_alloc_table_no_crash(9)dm_test_set_dcn_clocks_no_crash(9)dm_test_dmu_timeout_no_crash(9)dm_test_smu_timeout_no_crash(9)dm_test_set_phyd32clk_no_crash(9)dm_test_mst_update_branch_bandwidth_no_crash(9)dm_test_mst_write_payload_alloc_table_null_ctx(9)dm_test_mst_poll_for_act_null_ctx(9)dm_test_mst_send_payload_alloc_null_ctx(9)dm_test_mst_update_mgr_dealloc_null_ctx(9)dm_test_is_dp_sink_present_null_priv(9)dm_test_dmub_outbox_interrupt_control_null_dc(9)dm_test_mst_enable_stream_features_aux_disabled(9)dm_test_mst_enable_stream_features_writes_downspread(9)dm_test_enable_periodic_detection_no_workqueue(9)dm_test_enable_periodic_detection_updates_enable(9)dm_test_enable_periodic_detection_schedules_work(9)dm_test_read_mccs_caps_null_ctx(9)dm_test_read_mccs_caps_null_link(9)dm_test_read_mccs_caps_no_vcp_code(9)dm_test_read_mccs_caps_i2c_vcp_request(9)dm_test_read_mccs_caps_hdmi_vcp_request(9)dm_test_read_mccs_caps_legacy_pcon_vcp_request(9)dm_test_read_mccs_caps_i2c_failure(9)dm_test_mccs_vcp_set_null_ctx(9)dm_test_mccs_vcp_set_not_supported(9)dm_test_mccs_vcp_set_null_link(9)dm_test_mccs_vcp_set_i2c_packet(9)dm_test_mccs_vcp_set_i2c_failure(9)dm_test_construct_old_payload_empty_list(9)dm_test_construct_old_payload_intervening(9)dm_test_write_payload_alloc_table_enable(9)dm_test_write_payload_alloc_table_disable(9)dm_test_mst_start_top_mgr_set_mst_fail(9)dm_test_mst_stop_top_mgr_active(9)dm_test_poll_for_act_no_mst_state(9)dm_test_poll_for_act_success(9)dm_test_poll_for_act_status_failed(9)dm_test_mst_send_payload_alloc_part2_fail(9)dm_test_mst_update_mgr_dealloc_success(9)dm_test_dp_write_dsc_enable_mst_no_aux(9)dm_test_dp_write_dsc_enable_non_dp(9)dm_test_dp_write_dsc_enable_mst_enable_decode_only(9)dm_test_dp_write_dsc_enable_mst_enable_passthrough(9)dm_test_dp_write_dsc_enable_mst_disable_decode_only(9)dm_test_dp_write_dsc_enable_mst_disable_passthrough(9)dm_test_dp_write_dsc_enable_sst_rx_enable(9)dm_test_dp_write_dsc_enable_sst_rx_disable(9)dm_test_dp_write_dsc_enable_pcon_enable(9)dm_test_dp_write_dsc_enable_pcon_disable(9)dm_test_dp_handle_test_pattern_no_pipe(9)
π that's a wrap, bestie
And that's the whole page β source/version line lives at ./drivers/gpu/drm/amd/display/... and it's dated October 2026, footer name still dm_test_wri...able_success(9) because they weren't gonna spell it out twice ππ
Now go run your tests, slay the MST success path, and remember: NULL is not a bug here, it's a β¨boundaryβ¨ ππ¦π
π¦ 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