dm_test_lp_w...rite_payload(9)
π dm_test_lp_write_i2c_builds_single_write_payload β the kernel API manual, but make it make sense π
okay so bestie, welcome to the Kernel API Manual entry for dm_test_lp_w...rite_payload(9) β¨ yes the header is literally abbreviated like that, that's just how it is, don't come for me π this is a KUnit test page and it's short and sweet, so let's get into it π¦
πΈ NAME πΈ
dm_test_lp_write_i2c_builds_single_write_payload β write builds one i2c msg π
like, that's the whole vibe. the test is: does the write path build exactly one i2c message? slay. π
β¨ SYNOPSIS β¨
void dm_test_lp_write_i2c_builds_single_write_payload (struct kunit
*test );
notice the return type is void β this test doesn't hand anything back, it just is π₯
π ARGUMENTS π
testβ the KUnit test context π§ that's the little harness-y object that carries the test machinery around, and our function takes it asstruct kunit *test. it's giving "I just need the context, thanks" energy.
π¦ DESCRIPTION π¦
okay so here's the actual tea β lp_write_i2c must forward a single write payload carrying the address, length and data buffer β all of it unchanged π
like, unchanged. not "mostly unchanged", not "reordered for convenience", not "hey I added a field". unchanged. the address stays the address, the length stays the length, the data buffer stays the data buffer, and there is exactly one payload doing the forwarding, periodt. π
if you're out here letting lp_write_i2c split that payload or shuffle the contents, the test is gonna look at you like π and you'll deserve it ngl.
π₯ SEE ALSO π₯
bestie this list is long β like, scroll-for-a-while long, but every single one of these is iconic in its own right so we're gonna get through them together π«Ά
- Kernel file β
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_hdcp_test.cπ (yes, that's where the whole friend group lives) dm_test_hdcp_get_cp_disabled_returns_desired(9)dm_test_hdcp_get_cp_type0_returns_enabled(9)dm_test_hdcp_get_cp_type1_returns_enabled(9)dm_test_hdcp_get_cp_type1_rejects_type0_status(9)dm_test_hdcp_get_cp_type0_rejects_type1_status(9)dm_test_hdcp_get_adjustments_disable_authentication(9)dm_test_hdcp_get_adjustments_type0_policy(9)dm_test_hdcp_get_adjustments_type1_policy(9)dm_test_hdcp_get_adjustments_fused_io_enables_fw_check(9)alloc_test_workqueue(9)dm_test_process_output_property_validate_always_scheduled(9)dm_test_process_output_callback_needed(9)dm_test_process_output_callback_stop(9)dm_test_process_output_watchdog_needed(9)dm_test_process_output_watchdog_stop(9)dm_test_process_output_callback_and_watchdog_needed(9)dm_test_process_output_callback_stop_and_needed_requeues(9)dm_test_process_output_watchdog_stop_and_needed_requeues(9)alloc_test_workqueue_for_property_update(9)alloc_update_connector(9)dm_test_event_property_update_skips_null_connector(9)dm_test_event_property_update_skips_disconnected(9)dm_test_event_property_update_skips_null_state(9)dm_test_event_property_update_skips_null_dev(9)dm_test_event_property_update_desired_when_off(9)dm_test_event_property_update_enabled_when_encrypted(9)alloc_test_workqueue_for_callback(9)dm_test_event_callback_cancels_callback_dwork(9)dm_test_event_callback_schedules_property_validate(9)alloc_test_workqueue_for_property_validate(9)alloc_validate_connector(9)dm_test_event_property_validate_skips_null_connector(9)dm_test_event_property_validate_skips_disconnected(9)dm_test_event_property_validate_skips_null_state(9)dm_test_event_property_validate_updates_on_status_change(9)dm_test_event_property_validate_no_update_when_unchanged(9)dm_test_event_watchdog_timer_cancels_watchdog_dwork(9)dm_test_event_watchdog_timer_schedules_property_validate(9)alloc_test_workqueue_for_cpirq(9)dm_test_event_cpirq_schedules_property_validate(9)dm_test_event_cpirq_leaves_callback_and_watchdog_idle(9)dm_test_hdcp_handle_cpirq_schedules_work(9)dm_test_hdcp_handle_cpirq_selects_link_index(9)dm_test_hdcp_update_display_enable_schedules_property_validate(9)dm_test_hdcp_update_display_disable_resets_status_and_cancels_validate(9)dm_test_hdcp_create_workqueue_zero_max_links_returns_null(9)dm_test_hdcp_create_workqueue_initializes_work(9)dm_test_hdcp_create_workqueue_sets_dtm_v3_for_dcn31(9)dm_test_hdcp_create_workqueue_initializes_all_links(9)setup_destroy_sysfs(9)dm_test_hdcp_destroy_frees_and_removes_sysfs(9)dm_test_hdcp_destroy_zero_links_null_srm(9)dm_test_link_lock_locks_and_unlocks_all_links(9)dm_test_link_lock_zero_links_is_noop(9)dm_test_psp_get_srm_uninitialized_returns_null(9)dm_test_psp_set_srm_uninitialized_returns_einval(9)dm_test_psp_set_srm_initialized_stages_command(9)dm_test_srm_data_write_uninitialized_ta_keeps_srm(9)dm_test_srm_data_read_uninitialized_ta_returns_einval(9)dm_test_srm_data_read_empty_srm_returns_zero(9)alloc_test_ddc_link(9)dm_test_lp_read_i2c_builds_offset_then_read(9)dm_test_lp_write_dpcd_forwards_native_write(9)dm_test_lp_read_dpcd_forwards_native_read(9)dm_test_lp_write_i2c_no_connector_returns_false(9)dm_test_lp_read_dpcd_no_connector_returns_false(9)dm_test_lp_atomic_i2c_null_handle_returns_false(9)dm_test_lp_atomic_i2c_oversized_op_returns_false(9)dm_test_lp_atomic_aux_null_handle_returns_false(9)dm_test_lp_atomic_aux_oversized_op_returns_false(9)alloc_test_workqueue_locked(9)alloc_test_connector(9)dm_test_hdcp_update_display_enable_registers_connector(9)dm_test_hdcp_update_display_disable_sets_status_off(9)dm_test_hdcp_remove_display_enabled_resets_cp(9)dm_test_hdcp_remove_display_null_state_clears_connector(9)dm_test_hdcp_reset_display_clears_all_state(9)alloc_test_workqueue_for_assr(9)dm_test_enable_assr_uninitialized_dtm_returns_false(9)dm_test_enable_assr_uninitialized_dtm_ignores_link(9)dm_test_enable_assr_initialized_builds_command_and_fails(9)dm_test_update_config_null_connector_is_noop(9)dm_test_update_config_null_dc_link_is_noop(9)dm_test_update_config_dpms_off_removes_display(9)dm_test_update_config_populates_display_and_link(9)
^ that's the whole friend group, no cap π every single one, exactly as listed, no edits, no merges, no "I'll just skip the boring ones" β we don't do that here π§
π friendly reminder: lp_write_i2c forwards one payload with address, length and data buffer unchanged. that's the entire test. if you change any of that, you're not testing what this page says you're testing. iykyk.
and that's the page, bestie π this one came from ./drivers/gpu/drm/amd/display/... and it's dated October 2026 β shoutout to whoever wrote it, you ate π see you in the next dm_test_lp_w...rite_payload(9), 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