dm_test_val..._null_stream(9)
π dm_test_val..._null_stream(9) π
okay so bestie, welcome to the Kernel API Manual β¨ this one's a lil KUnit test page and it's honestly iconic in its simplicity. pull up a chair, grab a strawberry π, and let's get into it.
π NAME π
dm_test_validate_stream_null_stream β the test that checks what happens when you hand it a NULL stream and expects the whole thing to come back with "unexpected" energy. literally her whole personality π«Ά
β¨ SYNOPSIS β¨
void dm_test_validate_stream_null_stream (struct kunit *test );
πΈ ARGUMENTS πΈ
testβ the KUnit test context, aka the lil scaffolding that holds this whole vibe together. she's the main character's dressing room π
π¦ DESCRIPTION π¦
so here's the tea β: when the stream is NULL, the validation doesn't even try to be brave. it jumps straight to cleanup, never once dereferencing the dc handle (not me being respectful of pointers π), and reports DC_ERROR_UNEXPECTED.
no crashes, no chaos, no drama. just a clean exit and a very clear error code. slay, honestly. β¨
π lowkey the safest possible outcome β a NULL stream gets treated like a NULL stream, and the dc handle stays untouched the entire time. no deref, no cap.
π SEE ALSO π
bestie. bestie. look at this list. this is the entire group chat ππ
Kernel file
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
and now, the squad (all in (9), all iconic):
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)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)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)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)dm_test_convert_color_depth_bpc_mappings(9)dm_test_convert_color_depth_bpc_unknown(9)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)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)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)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)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)dm_test_copy_crtc_timing_copies_all_fields(9)dm_test_copy_crtc_timing_leaves_non_crtc_fields(9)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)dm_test_funcs_reset_sets_defaults(9)dm_test_funcs_reset_edp_abm_level(9)dm_test_funcs_reset_edp_abm_disabled(9)dm_test_atomic_dup_state_copies_fields(9)dm_test_fill_hdr_null_metadata(9)dm_test_fill_hdr_zeroes_output(9)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)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)dm_test_highest_refresh_writeback_null(9)dm_test_highest_refresh_cached_base(9)dm_test_highest_refresh_preferred_mode(9)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)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)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)dm_test_update_subconnector_dp_with_sink(9)dm_test_update_subconnector_dp_no_sink(9)dm_test_update_subconnector_non_dp_noop(9)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)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)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)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)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)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)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)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)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)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)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)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)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_ddc_get_modes_null_edid(9)dm_test_add_fs_modes_no_preferred_mode(9)dm_test_add_freesync_modes_null_edid_noop(9)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)dm_test_mode_valid_interlace_rejected(9)dm_test_mode_valid_dblscan_rejected(9)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)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)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)
and that's the whole page, bestie π§ literally every test in the family showed up and they all ate π
okay and for the lil sign-off: this one comes from ./drivers/gpu/drm/amd/display/... and it's dated October 2026 β so mark your calendar, she's a future icon πβ¨ bye bestie, go dereference something safely ππ
π¦ 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