STRUCT STUB_DPM_CONTEXT(9)
β¨ struct stub_dpm_context(9) β¨
okay so bestie, welcome to the Kernel API Manual π
β this is the page where we talk about struct stub_dpm_context, and honestly? It's giving "notebook where every fake DPM callback writes down what it did." π
πΈ NAME πΈ
struct stub_dpm_context β literally just Tracks stub DPM callback invocations π¦
π«Ά SYNOPSIS π«Ά
struct stub_dpm_context {
int ret_val;
struct amd_pp_clock_info get_current_clocks_info;
struct amd_pp_clocks get_clock_by_type_clocks;
struct amd_pp_simple_clock_info get_validation_clks;
int get_validation_clks_ret;
struct pp_clock_levels_with_latency
get_clock_by_type_with_latency_clks;
struct pp_clock_levels_with_voltage
get_clock_by_type_with_voltage_clks;
int set_watermarks_ret;
int display_clock_voltage_ret;
int display_disable_memory_clock_switch_ret;
int get_max_sustainable_ret;
int get_uclk_dpm_ret;
int get_dpm_clock_table_ret;
int set_active_display_count_ret;
int set_min_deep_sleep_dcefclk_ret;
};
no cap, that's the whole struct, copied exactly, line breaks and all β don't @ me π
π Members π
ret_valβ the return value for the next DPM callback β¨get_current_clocks_infoβ clock info that the stubget_current_clockshands back πΈget_clock_by_type_clocksβ the clocks that stubget_clock_by_typereturns π¦get_validation_clksβ validation clocks returned by the stub πget_validation_clks_retβ the return forget_display_mode_validation_clocksπget_clock_by_type_with_latency_clksβ returned by the stubwith_latencyβget_clock_by_type_with_voltage_clksβ returned by the stubwith_voltageπset_watermarks_retβ return value forset_watermarksπdisplay_clock_voltage_retβ return value fordisplay_clock_voltage_requestπ₯display_disable_memory_clock_switch_retβ return fordisable_memory_clockπget_max_sustainable_retβ return forget_max_sustainable_clocks_by_dcπget_uclk_dpm_retβ return forget_uclk_dpm_statesπget_dpm_clock_table_retβ return forget_dpm_clock_tableπ§set_active_display_count_retβ return forset_active_display_countπset_min_deep_sleep_dcefclk_retβ return forset_min_deep_sleep_dcefclkπ«Ά
π¦ SEE ALSO π¦
bestie there are so many of these and I'm listing every single one, periodt π
- the kernel file
./drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_pp_smu_test.cπ setup_stub_dpm(9)dm_test_default_clock_levels_display(9)dm_test_default_clock_levels_engine(9)dm_test_default_clock_levels_memory(9)dm_test_default_clock_levels_unknown(9)dm_test_dc_to_pp_clock_type_display(9)dm_test_dc_to_pp_clock_type_engine(9)dm_test_dc_to_pp_clock_type_memory(9)dm_test_dc_to_pp_clock_type_dcefclk(9)dm_test_dc_to_pp_clock_type_dcfclk(9)dm_test_dc_to_pp_clock_type_pixelclk(9)dm_test_dc_to_pp_clock_type_fclk(9)dm_test_dc_to_pp_clock_type_phyclk(9)dm_test_dc_to_pp_clock_type_dppclk(9)dm_test_dc_to_pp_clock_type_invalid(9)dm_test_pp_to_dc_clock_levels_within_limit(9)dm_test_pp_to_dc_clock_levels_caps_at_max(9)dm_test_pp_to_dc_clock_levels_latency_within_limit(9)dm_test_pp_to_dc_clock_levels_latency_caps_at_max(9)dm_test_pp_to_dc_clock_levels_voltage_within_limit(9)dm_test_pp_to_dc_clock_levels_voltage_caps_at_max(9)dm_test_get_funcs_rv(9)dm_test_get_funcs_rv_101(9)dm_test_get_funcs_nv(9)dm_test_get_funcs_rn(9)dm_test_get_funcs_unsupported(9)dm_test_apply_display_requirements_dpm_disabled(9)dm_test_apply_clock_for_voltage_invalid_type(9)dm_test_build_pm_display_cfg_scalar_fields(9)dm_test_build_pm_display_cfg_per_display(9)dm_test_build_wm_clock_ranges_dmif(9)dm_test_build_wm_clock_ranges_mcif(9)dm_test_cap_clock_levels_engine_caps(9)dm_test_cap_clock_levels_engine_first_exceeds(9)dm_test_cap_clock_levels_memory_caps(9)dm_test_cap_clock_levels_within_limit(9)dm_test_cap_clock_levels_other_type(9)dm_test_nv_clock_id_dispclk(9)dm_test_nv_clock_id_phyclk(9)dm_test_nv_clock_id_pixelclk(9)dm_test_nv_clock_id_invalid(9)dm_test_apply_display_requirements_dpm_enabled(9)dm_test_get_clock_levels_by_type_dpm_error(9)dm_test_get_clock_levels_by_type_success(9)dm_test_get_clock_levels_by_type_validation_fallback(9)dm_test_get_clock_levels_with_latency_success(9)dm_test_get_clock_levels_with_latency_failure(9)dm_test_get_clock_levels_with_voltage_success(9)dm_test_get_clock_levels_with_voltage_failure(9)dm_test_notify_wm_clock_changes_polaris(9)dm_test_notify_wm_clock_changes_non_polaris(9)dm_test_apply_clock_for_voltage_success(9)dm_test_apply_clock_for_voltage_eopnotsupp(9)dm_test_apply_clock_for_voltage_fail(9)dm_test_nv_set_display_count_ok(9)dm_test_nv_set_display_count_unsupported(9)dm_test_nv_set_display_count_fail(9)dm_test_nv_set_voltage_by_freq_ok(9)dm_test_nv_set_voltage_by_freq_invalid_id(9)dm_test_nv_pstate_handshake_ok(9)dm_test_nv_pstate_handshake_fail(9)dm_test_rn_get_dpm_clock_table_ok(9)dm_test_rn_get_dpm_clock_table_unsupported(9)dm_test_rn_get_dpm_clock_table_fail(9)dm_test_rv_set_wm_ranges(9)dm_test_rv_set_pme_wa_enable(9)dm_test_rv_set_active_display_count(9)dm_test_rv_set_min_deep_sleep_dcfclk(9)dm_test_rv_set_hard_min_dcefclk_by_freq(9)dm_test_rv_set_hard_min_fclk_by_freq(9)dm_test_nv_set_wm_ranges(9)dm_test_nv_set_min_deep_sleep_dcfclk_ok(9)dm_test_nv_set_min_deep_sleep_dcfclk_unsupported(9)dm_test_nv_set_min_deep_sleep_dcfclk_fail(9)dm_test_nv_set_hard_min_dcefclk_ok(9)dm_test_nv_set_hard_min_dcefclk_unsupported(9)dm_test_nv_set_hard_min_dcefclk_fail(9)dm_test_nv_set_hard_min_uclk_ok(9)dm_test_nv_set_hard_min_uclk_unsupported(9)dm_test_nv_set_hard_min_uclk_fail(9)dm_test_nv_get_max_sustainable_clocks_ok(9)dm_test_nv_get_max_sustainable_clocks_unsupported(9)dm_test_nv_get_max_sustainable_clocks_fail(9)dm_test_nv_get_uclk_dpm_states_ok(9)dm_test_nv_get_uclk_dpm_states_unsupported(9)dm_test_nv_get_uclk_dpm_states_fail(9)dm_test_smu_write_watermarks_table_default(9)π
and that's the whole page, bestie, iykyk π
mwah π β this cutie came from the source path ./drivers/gpu/drm/amd/display/..., dated October 2026, and it's page struct stub_dpm_context(9) all the way down. go read the tests, they ate π₯
π¦ 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