dm_test_i2c_...eturns_flags(9)
π¦ dm_test_i2c_func_returns_flags(9) π¦
okay so you opened the Kernel API Manual and landed on this little cutie β it's giving "short but iconic" and honestly? Obsessed. It's one single kunit test in the AMD display driver test suite, and yes, we're gonna read the whole thing together, bestie. No skipping. π
πΈ NAME πΈ
dm_test_i2c_func_returns_flags β Test the i2c functionality flags. That's the whole vibe. It tests flags. For i2c functionality. Periodt.
β¨ SYNOPSIS β¨
void dm_test_i2c_func_returns_flags (struct kunit *test );
That's it. That's the signature. One function, void, takes one arg, done. Lowkey the cleanest thing you'll read all day. π«Ά
π ARGUMENTS π
testβ The KUnit test context. This is the lil' harness buddy that carries the test state around so the test framework can do its thing. Hand it over and let it cook. π
π DESCRIPTION π
So here's the tea: the algorithm just straight up advertises plain I2C plus emulated SMBUS β and it does that regardless of the adapter argument. Like, doesn't matter what you hand it. It said "one size fits all" and meant it. π₯
And the plot twist? It never dereferences that adapter argument. Not once. Never touches it. It's giving "I don't even know her" energy β the pointer just sits there being decorative while the flags get advertised anyway. No cap. π
π SEE ALSO π
First up, the actual source, because reading the code is always the move:
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
And nowβ¦ the group chat. The whole entire guest list. Every single one of these is part of the same test family, and yes I listed them all because we don't do "and others" around here. π
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_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)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_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)
heads up bestie: that's the entire list, copied with love, and every one of them is a real (9) manpage you can go open. iykyk. π
and that's the page!! π§β¨ source is ./drivers/gpu/drm/amd/display/..., dated October 2026, and this whole lil' writeup is filed under dm_test_i2c_...eturns_flags(9) β go forth and test those i2c functionality flags, 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