dm_test_ddc...es_null_edid(9)
π NAME π
okay bestie, welcome to the Kernel API Manual (section 9, we're fancy like that) π β today's main character is dm_test_ddc_get_modes_null_edid, and she's here to test that a NULL EDID resets the mode count. that's it, that's the whole vibe. no cap. β¨
β¨ SYNOPSIS β¨
void dm_test_ddc_get_modes_null_edid (struct kunit *test );
like... look at her. one argument. zero drama. she ate and left no crumbs π
π¦ ARGUMENTS π¦
testβ the KUnit test context π§ that's the little test-framework bestie that carries all the state for the run. hand her over and she does her thing.
πΈ SEE ALSO πΈ
okay so this is the part where I need you to stay with me, because this list is long long β but every single one of these is a sibling test in the same family and they all deserve their moment ππ
the kernel file it lives in:
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.cποΈ
subconnector type besties:
dm_test_subconnector_type_none(9)dm_test_subconnector_type_vga(9)dm_test_subconnector_type_dvi_converter(9)dm_test_subconnector_type_dvi_dongle(9)dm_test_subconnector_type_hdmi_converter(9)dm_test_subconnector_type_hdmi_dongle(9)dm_test_subconnector_type_mismatched(9)dm_test_subconnector_type_default_unknown(9)
content type girlies:
dm_test_content_type_no_data(9)dm_test_content_type_graphics(9)dm_test_content_type_photo(9)dm_test_content_type_cinema(9)dm_test_content_type_game(9)dm_test_content_type_unknown_defaults_no_data(9)
colour depth adjustment squad:
dm_test_adjust_colour_depth_fits_at_888(9)dm_test_adjust_colour_depth_reduces_to_888(9)dm_test_adjust_colour_depth_10bpc_passes(9)dm_test_adjust_colour_depth_420_halves_clk(9)dm_test_adjust_colour_depth_420_reduces(9)dm_test_adjust_colour_depth_reduces_12bpc_to_10bpc(9)dm_test_adjust_colour_depth_16bpc_no_fallback(9)dm_test_adjust_colour_depth_none_fits(9)dm_test_adjust_colour_depth_invalid_depth(9)
output colour space, the whole roster π:
dm_test_output_color_space_default_rgb_full(9)dm_test_output_color_space_default_rgb_limited(9)dm_test_output_color_space_default_ycbcr709(9)dm_test_output_color_space_default_ycbcr601_limited(9)dm_test_output_color_space_bt601_y_only(9)dm_test_output_color_space_bt601(9)dm_test_output_color_space_bt709(9)dm_test_output_color_space_bt709_y_only(9)dm_test_output_color_space_oprgb(9)dm_test_output_color_space_bt2020_rgb(9)dm_test_output_color_space_bt2020_rgb_limited(9)dm_test_output_color_space_default_rgb_auto_hdmi_cta(9)dm_test_output_color_space_default_rgb_auto_hdmi_vga(9)dm_test_output_color_space_default_rgb_auto_dp_cta(9)dm_test_output_color_space_default_rgb_full_hdmi_cta(9)dm_test_output_color_space_bt2020_rgb_auto_hdmi_cta(9)dm_test_output_color_space_bt2020_ycc(9)dm_test_output_color_space_default_ycbcr709_y_only(9)dm_test_output_color_space_default_ycbcr601(9)dm_test_output_color_space_bt2020_ycc_rgb_encoding(9)dm_test_output_color_space_bt2020_ycc_rgb_encoding_limited(9)dm_test_output_color_space_bt2020_rgb_ycc_encoding(9)
convert colour depth:
colour depth from info (so many, I love her):
dm_test_color_depth_from_info_bpc8(9)dm_test_color_depth_from_info_bpc10(9)dm_test_color_depth_from_info_zero_bpc_defaults_888(9)dm_test_color_depth_from_info_requested_bpc_caps(9)dm_test_color_depth_from_info_y420_default(9)dm_test_color_depth_from_info_y420_10bpc(9)dm_test_color_depth_from_info_y420_12bpc(9)dm_test_color_depth_from_info_y420_16bpc(9)dm_test_color_depth_from_info_requested_odd_bpc(9)dm_test_color_depth_from_info_unsupported_bpc(9)
to connector type:
dm_test_to_connector_type_hdmi(9)dm_test_to_connector_type_edp(9)dm_test_to_connector_type_lvds(9)dm_test_to_connector_type_rgb(9)dm_test_to_connector_type_dp(9)dm_test_to_connector_type_dp_mst(9)dm_test_to_connector_type_dvi_dvii(9)dm_test_to_connector_type_dual_link_dvii(9)dm_test_to_connector_type_dvi_dvid(9)dm_test_to_connector_type_dual_link_dvid(9)dm_test_to_connector_type_virtual(9)dm_test_to_connector_type_unknown(9)
duplicate mode checks:
dm_test_is_duplicate_mode_empty_list(9)dm_test_is_duplicate_mode_match(9)dm_test_is_duplicate_mode_no_match(9)dm_test_is_duplicate_mode_same_size_different_clock(9)
encoder crtc masks 1β6 plus default:
dm_test_encoder_crtc_mask_1(9)dm_test_encoder_crtc_mask_2(9)dm_test_encoder_crtc_mask_3(9)dm_test_encoder_crtc_mask_4(9)dm_test_encoder_crtc_mask_5(9)dm_test_encoder_crtc_mask_6(9)dm_test_encoder_crtc_mask_default(9)
aspect ratio cuties:
dm_test_aspect_ratio_no_data(9)dm_test_aspect_ratio_4_3(9)dm_test_aspect_ratio_16_9(9)dm_test_aspect_ratio_64_27(9)dm_test_aspect_ratio_256_135(9)
copy crtc timing:
decide crtc timing:
dm_test_decide_crtc_timing_scale_enabled(9)dm_test_decide_crtc_timing_matching_mode(9)dm_test_decide_crtc_timing_no_copy(9)dm_test_decide_crtc_timing_no_crtc_clock(9)
funcs reset crew:
dm_test_funcs_reset_sets_defaults(9)dm_test_funcs_reset_edp_abm_level(9)dm_test_funcs_reset_edp_abm_disabled(9)
atomic + hdr:
dm_test_atomic_dup_state_copies_fields(9)dm_test_fill_hdr_null_metadata(9)dm_test_fill_hdr_zeroes_output(9)
set property squad:
dm_test_set_property_scaling_center(9)dm_test_set_property_scaling_aspect(9)dm_test_set_property_scaling_fullscreen(9)dm_test_set_property_scaling_none(9)dm_test_set_property_scaling_unchanged(9)dm_test_set_property_underscan_hborder(9)dm_test_set_property_underscan_vborder(9)dm_test_set_property_underscan_enable(9)dm_test_set_property_abm_sysfs_control(9)dm_test_set_property_abm_level_off(9)dm_test_set_property_abm_level_value(9)dm_test_set_property_unknown(9)
get property squad:
dm_test_get_property_scaling_center(9)dm_test_get_property_scaling_aspect(9)dm_test_get_property_scaling_full(9)dm_test_get_property_scaling_off(9)dm_test_get_property_underscan_borders(9)dm_test_get_property_abm_sysfs_allowed(9)dm_test_get_property_abm_level(9)dm_test_get_property_abm_disabled_zero(9)dm_test_get_property_unknown(9)
refresh rate trio:
dm_test_highest_refresh_writeback_null(9)dm_test_highest_refresh_cached_base(9)dm_test_highest_refresh_preferred_mode(9)
freesync video mode:
dm_test_is_freesync_video_mode_null_mode(9)dm_test_is_freesync_video_mode_match(9)dm_test_is_freesync_video_mode_no_match(9)
cacp caps (first batch):
dm_test_cacp_caps_unsupported_ip(9)dm_test_cacp_caps_excluded_ip_316(9)dm_test_cacp_caps_edp_oled_supported(9)dm_test_cacp_caps_lvds_oled_supported(9)dm_test_cacp_caps_non_edp_signal(9)dm_test_cacp_caps_lcd_panel(9)
set panel type, part one:
dm_test_set_panel_type_vsdb_oled(9)dm_test_set_panel_type_vsdb_miniled(9)dm_test_set_panel_type_dpcd_oled(9)dm_test_set_panel_type_dpcd_miniled(9)dm_test_set_panel_type_did_oled(9)dm_test_set_panel_type_did_lcd(9)dm_test_set_panel_type_vendor_lum_heuristic(9)dm_test_set_panel_type_defaults_to_lcd(9)
update subconnector:
dm_test_update_subconnector_dp_with_sink(9)dm_test_update_subconnector_dp_no_sink(9)dm_test_update_subconnector_non_dp_noop(9)
fbc init:
dm_test_fbc_init_no_compressor(9)dm_test_fbc_init_non_edp(9)dm_test_fbc_init_already_allocated(9)dm_test_fbc_init_no_modes(9)
detect mst:
dm_test_detect_mst_no_connectors(9)dm_test_detect_mst_skips_writeback(9)dm_test_detect_mst_non_mst_link(9)dm_test_detect_mst_branch_without_aux(9)
find first crtc:
dm_test_find_first_crtc_match(9)dm_test_find_first_crtc_no_match(9)dm_test_find_first_crtc_empty_state(9)dm_test_find_first_crtc_skips_null_ptr(9)dm_test_find_first_crtc_returns_first(9)
set panel type, part two (samsung + defaults):
dm_test_set_panel_type_samsung_miniled(9)dm_test_set_panel_type_samsung_below_threshold(9)dm_test_set_panel_type_default_lcd(9)
cacp caps (second batch):
dm_test_cacp_caps_edp_supported(9)dm_test_cacp_caps_lvds_supported(9)dm_test_cacp_caps_old_ip_unsupported(9)dm_test_cacp_caps_ip_3_1_6_unsupported(9)dm_test_cacp_caps_non_edp_lvds_unsupported(9)dm_test_cacp_caps_lcd_unsupported(9)
fill stream era π:
dm_test_fill_stream_borders_zeroed(9)dm_test_fill_stream_rgb_defaults(9)dm_test_fill_stream_sync_polarity_positive(9)dm_test_fill_stream_sync_polarity_negative(9)dm_test_fill_stream_inherits_old_stream(9)dm_test_fill_stream_timing_from_crtc(9)dm_test_fill_stream_color_depth_requested_bpc(9)dm_test_fill_stream_content_type(9)dm_test_fill_stream_aspect_ratio(9)dm_test_fill_stream_encoding_from_caller_ycbcr420(9)dm_test_fill_stream_encoding_from_caller_ycbcr422(9)dm_test_fill_stream_encoding_from_caller_ycbcr444(9)dm_test_fill_stream_hdmi_ep_clamps_depth(9)dm_test_fill_stream_non_hdmi_ep_keeps_depth(9)
create stream crew:
dm_test_create_stream_fake_sink_success(9)dm_test_create_stream_sets_dm_context(9)dm_test_create_stream_virtual_signal(9)dm_test_create_stream_scaling_src(9)dm_test_create_stream_existing_sink(9)
detect things:
dm_test_detect_force_on(9)dm_test_detect_force_on_digital(9)dm_test_detect_force_off(9)dm_test_detect_sink_present(9)dm_test_detect_no_sink(9)
misc legendary behaviour:
dm_test_poll_dac_load_returns_cached(9)dm_test_late_register_non_dp_succeeds(9)dm_test_unregister_non_dp_noop(9)dm_test_destroy_minimal(9)dm_test_destroy_releases_dc_sink(9)dm_test_destroy_releases_dc_em_sink(9)dm_test_encoder_disable_noop(9)
atomic check trio:
dm_test_atomic_check_edp_native_keeps_scaling(9)dm_test_atomic_check_lvds_non_native_enables_scaling(9)dm_test_atomic_check_non_mst_returns_zero(9)
hdmi cec + edid management:
dm_test_hdmi_cec_unset_edid_no_notifier(9)dm_test_create_eml_sink_no_edid(9)dm_test_handle_edid_mgmt_dp_sets_link_caps(9)dm_test_handle_edid_mgmt_non_dp_leaves_caps(9)dm_test_funcs_force_no_edid(9)
validate / encoder / native mode:
dm_test_validate_stream_null_stream(9)dm_test_to_encoder_no_encoder(9)dm_test_to_encoder_returns_attached(9)dm_test_native_mode_no_encoder(9)dm_test_native_mode_empty_probed_zeroes_clock(9)dm_test_native_mode_copies_preferred(9)
common modes + freesync modes:
dm_test_create_common_mode_overrides(9)dm_test_add_common_modes_non_edp_noop(9)dm_test_add_common_modes_edp_adds(9)dm_test_add_fs_modes_no_preferred_mode(9)dm_test_add_freesync_modes_null_edid_noop(9)
i2c + vsdb + displayid vrr:
dm_test_i2c_func_returns_flags(9)dm_test_i2c_xfer_no_ddc_pin(9)dm_test_get_amd_vsdb_unsupported(9)dm_test_get_amd_vsdb_supported(9)dm_test_parse_hdmi_amd_vsdb_null_edid(9)dm_test_parse_hdmi_amd_vsdb_no_extensions(9)dm_test_parse_hdmi_amd_vsdb_no_cea_ext(9)dm_test_parse_displayid_vrr_null_edid(9)dm_test_parse_displayid_vrr_no_displayid(9)dm_test_parse_displayid_vrr_sets_range(9)
mode valid (interlace/dblscan say no thanks):
hdmi cec set edid + s3 handlers:
dm_test_hdmi_cec_set_edid_no_notifier(9)dm_test_s3_handle_hdmi_cec_suspend(9)dm_test_s3_handle_hdmi_cec_resume(9)
create validate stream / update after detect:
dm_test_create_validate_stream_null_dm_state(9)dm_test_update_after_detect_mst_noop(9)dm_test_update_after_detect_sink_unchanged(9)
update scaling finale π:
dm_test_update_scaling_null_mode(9)dm_test_update_scaling_fullscreen_default(9)dm_test_update_scaling_rmx_full(9)dm_test_update_scaling_rmx_aspect_pillarbox(9)dm_test_update_scaling_rmx_aspect_letterbox(9)dm_test_update_scaling_rmx_center(9)dm_test_update_scaling_underscan(9)
bestie I'm not gonna lie, that list is giving "the whole extended family showed up to the cookout" π but every single one of them is important, so nobody gets left out. iykyk.
and that's the page!! π«Ά this one ships from ./drivers/gpu/drm/amd/display/... and it's dated October 2026 β so screenshot it, pin it, tattoo it, whatever, because we're done here. 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