dm_test_read...ps_null_link(9)
π dm_test_read...ps_null_link β straight from the Kernel API Manual, bestie β¨
Okay so picture this: you're deep in the DRM/AMD display test suite, right? And this one is a whole vibe β it's a KUnit test whose entire personality is "what happens when the link is NULL" π. It's giving "early return" energy and honestly? Iconic. Let me walk you through the whole page, no cap π
β¨ NAME β¨
dm_test_read_mccs_caps_null_link β literally just testing the early return when the link is NULL π«Ά
πΈ SYNOPSIS πΈ
void dm_test_read_mccs_caps_null_link (struct kunit *test );
That's it. That's the whole signature. Short and slay π
π ARGUMENTS π
testβ the KUnit test context, aka the little backpack this test carries its stuff around in πβ¨
π¦ SEE ALSO π¦
So there's a kernel file it lives in, and bestie, it's got so many siblings. Grab a snack π:
- Kernel file
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.cdm_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_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_success(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)
Like, that's the whole friend group right there π so many branches and payload tables and DSC enable paths β all of them neighbors of this little NULL-link test. iykyk π
Heads up, bestie: this page is literally only the NAME / SYNOPSIS / ARGUMENTS / SEE ALSO situation. No options, no env vars, no exit statuses to memorize β the whole flex here is "link is NULL, we bail early" π§
π okay and one last thing so you have the receipts: this page lives at ./drivers/gpu/drm/amd/display/... and it's dated October 2026, and the header/footer both shout dm_test_read...ps_null_link(9) because apparently we're that girl. Now go forth and test responsibly, bestie β 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