Lines Matching refs:dpm
321 struct ci_power_info *pi = adev->pm.dpm.priv; in ci_get_pi()
406 if (adev->pm.dpm.dyn_state.cac_leakage_table.entries == NULL) in ci_populate_bapm_vddc_vid_sidd()
408 if (adev->pm.dpm.dyn_state.cac_leakage_table.count > 8) in ci_populate_bapm_vddc_vid_sidd()
410 if (adev->pm.dpm.dyn_state.cac_leakage_table.count != in ci_populate_bapm_vddc_vid_sidd()
411 adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.count) in ci_populate_bapm_vddc_vid_sidd()
414 for (i = 0; i < adev->pm.dpm.dyn_state.cac_leakage_table.count; i++) { in ci_populate_bapm_vddc_vid_sidd()
415 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_EVV) { in ci_populate_bapm_vddc_vid_sidd()
416 lo_vid[i] = ci_convert_to_vid(adev->pm.dpm.dyn_state.cac_leakage_table.entries[i].vddc1); in ci_populate_bapm_vddc_vid_sidd()
417 hi_vid[i] = ci_convert_to_vid(adev->pm.dpm.dyn_state.cac_leakage_table.entries[i].vddc2); in ci_populate_bapm_vddc_vid_sidd()
418 hi2_vid[i] = ci_convert_to_vid(adev->pm.dpm.dyn_state.cac_leakage_table.entries[i].vddc3); in ci_populate_bapm_vddc_vid_sidd()
420 lo_vid[i] = ci_convert_to_vid(adev->pm.dpm.dyn_state.cac_leakage_table.entries[i].vddc); in ci_populate_bapm_vddc_vid_sidd()
421 hi_vid[i] = ci_convert_to_vid((u16)adev->pm.dpm.dyn_state.cac_leakage_table.entries[i].leakage); in ci_populate_bapm_vddc_vid_sidd()
461 tdc_limit = adev->pm.dpm.dyn_state.cac_tdp_table->tdc * 256; in ci_populate_tdc_limit()
494 if ((adev->pm.dpm.fan.fan_output_sensitivity & (1 << 15)) || in ci_populate_fuzzy_fan()
495 (adev->pm.dpm.fan.fan_output_sensitivity == 0)) in ci_populate_fuzzy_fan()
496 adev->pm.dpm.fan.fan_output_sensitivity = in ci_populate_fuzzy_fan()
497 adev->pm.dpm.fan.default_fan_output_sensitivity; in ci_populate_fuzzy_fan()
500 cpu_to_be16(adev->pm.dpm.fan.fan_output_sensitivity); in ci_populate_fuzzy_fan()
543 adev->pm.dpm.dyn_state.cac_tdp_table; in ci_populate_bapm_vddc_base_leakage_sidd()
560 adev->pm.dpm.dyn_state.cac_tdp_table; in ci_populate_bapm_parameters_in_dpm_table()
561 struct amdgpu_ppm_table *ppm = adev->pm.dpm.dyn_state.ppm_table; in ci_populate_bapm_parameters_in_dpm_table()
795 adev->pm.dpm.dyn_state.cac_tdp_table; in ci_enable_power_containment()
869 adev->pm.dpm.dyn_state.cac_tdp_table; in ci_power_control_set_level()
877 adev->pm.dpm.tdp_adjustment : (-1 * adev->pm.dpm.tdp_adjustment); in ci_power_control_set_level()
936 rps->evclk = adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].evclk; in ci_apply_state_adjust_rules()
937 rps->ecclk = adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].ecclk; in ci_apply_state_adjust_rules()
943 if ((adev->pm.dpm.new_active_crtc_count > 1) || in ci_apply_state_adjust_rules()
955 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac; in ci_apply_state_adjust_rules()
957 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc; in ci_apply_state_adjust_rules()
985 if (sclk < adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].sclk) in ci_apply_state_adjust_rules()
986 sclk = adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].sclk; in ci_apply_state_adjust_rules()
987 if (mclk < adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].mclk) in ci_apply_state_adjust_rules()
988 mclk = adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].mclk; in ci_apply_state_adjust_rules()
1036 adev->pm.dpm.thermal.min_temp = low_temp; in ci_thermal_set_temperature_range()
1037 adev->pm.dpm.thermal.max_temp = high_temp; in ci_thermal_set_temperature_range()
1106 adev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
1114 adev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
1118 tmp64 = (u64)adev->pm.dpm.fan.pwm_min * duty100; in ci_thermal_setup_fan_table()
1122 t_diff1 = adev->pm.dpm.fan.t_med - adev->pm.dpm.fan.t_min; in ci_thermal_setup_fan_table()
1123 t_diff2 = adev->pm.dpm.fan.t_high - adev->pm.dpm.fan.t_med; in ci_thermal_setup_fan_table()
1125 pwm_diff1 = adev->pm.dpm.fan.pwm_med - adev->pm.dpm.fan.pwm_min; in ci_thermal_setup_fan_table()
1126 pwm_diff2 = adev->pm.dpm.fan.pwm_high - adev->pm.dpm.fan.pwm_med; in ci_thermal_setup_fan_table()
1131 fan_table.TempMin = cpu_to_be16((50 + adev->pm.dpm.fan.t_min) / 100); in ci_thermal_setup_fan_table()
1132 fan_table.TempMed = cpu_to_be16((50 + adev->pm.dpm.fan.t_med) / 100); in ci_thermal_setup_fan_table()
1133 fan_table.TempMax = cpu_to_be16((50 + adev->pm.dpm.fan.t_max) / 100); in ci_thermal_setup_fan_table()
1140 fan_table.HystDown = cpu_to_be16(adev->pm.dpm.fan.t_hyst); in ci_thermal_setup_fan_table()
1150 fan_table.RefreshPeriod = cpu_to_be32((adev->pm.dpm.fan.cycle_delay * in ci_thermal_setup_fan_table()
1167 adev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
1186 adev->pm.dpm.fan.default_max_fan_pwm); in ci_fan_ctrl_start_smc_fan_control()
1285 if (adev->pm.dpm.fan.ucode_fan_control) in ci_dpm_set_fan_control_mode()
1290 if (adev->pm.dpm.fan.ucode_fan_control) in ci_dpm_set_fan_control_mode()
1294 if (adev->pm.dpm.fan.ucode_fan_control) in ci_dpm_set_fan_control_mode()
1352 if (adev->pm.dpm.fan.ucode_fan_control)
1385 if (adev->pm.dpm.fan.ucode_fan_control) { in ci_thermal_start_smc_fan_control()
1418 if (adev->pm.dpm.fan.ucode_fan_control) { in ci_thermal_start_thermal_controller()
1500 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_EVV) { in ci_get_leakage_voltages()
1602 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_REGULATOR_HOT) in ci_enable_vr_hot_gpio_interrupt()
1789 adev->pm.dpm.dyn_state.cac_tdp_table;
2127 if (adev->pm.dpm.new_active_crtc_count > 0) in ci_program_display_gap()
2147 ci_notify_smc_display_change(adev, (adev->pm.dpm.new_active_crtc_count == 1)); in ci_program_display_gap()
2286 &adev->pm.dpm.dyn_state.vddc_dependency_on_mclk, in ci_construct_voltage_tables()
2304 &adev->pm.dpm.dyn_state.vddci_dependency_on_mclk, in ci_construct_voltage_tables()
2322 &adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk, in ci_construct_voltage_tables()
2453 for (i = 0; i < adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk.count; i++) { in ci_populate_mvdd_value()
2454 if (mclk <= adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk.entries[i].clk) { in ci_populate_mvdd_value()
2460 if (i >= adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk.count) in ci_populate_mvdd_value()
2476 if (adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries == NULL) in ci_get_std_voltage_value_sidd()
2479 if (adev->pm.dpm.dyn_state.cac_leakage_table.entries) { in ci_get_std_voltage_value_sidd()
2480 …for (v_index = 0; (u32)v_index < adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.count; v_index++) { in ci_get_std_voltage_value_sidd()
2482 adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[v_index].v) { in ci_get_std_voltage_value_sidd()
2484 if ((u32)v_index < adev->pm.dpm.dyn_state.cac_leakage_table.count) in ci_get_std_voltage_value_sidd()
2487 idx = adev->pm.dpm.dyn_state.cac_leakage_table.count - 1; in ci_get_std_voltage_value_sidd()
2489 adev->pm.dpm.dyn_state.cac_leakage_table.entries[idx].vddc * VOLTAGE_SCALE; in ci_get_std_voltage_value_sidd()
2491 adev->pm.dpm.dyn_state.cac_leakage_table.entries[idx].leakage * VOLTAGE_SCALE; in ci_get_std_voltage_value_sidd()
2497 …for (v_index = 0; (u32)v_index < adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.count; v_index++) { in ci_get_std_voltage_value_sidd()
2499 adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[v_index].v) { in ci_get_std_voltage_value_sidd()
2501 if ((u32)v_index < adev->pm.dpm.dyn_state.cac_leakage_table.count) in ci_get_std_voltage_value_sidd()
2504 idx = adev->pm.dpm.dyn_state.cac_leakage_table.count - 1; in ci_get_std_voltage_value_sidd()
2506 adev->pm.dpm.dyn_state.cac_leakage_table.entries[idx].vddc * VOLTAGE_SCALE; in ci_get_std_voltage_value_sidd()
2508 adev->pm.dpm.dyn_state.cac_leakage_table.entries[idx].leakage * VOLTAGE_SCALE; in ci_get_std_voltage_value_sidd()
2729 for (level = 0; level < adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.count; level++) { in ci_populate_smc_initial_state()
2730 if (adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[level].clk >= in ci_populate_smc_initial_state()
2737 for (level = 0; level < adev->pm.dpm.dyn_state.vddc_dependency_on_mclk.count; level++) { in ci_populate_smc_initial_state()
2738 if (adev->pm.dpm.dyn_state.vddc_dependency_on_mclk.entries[level].clk >= in ci_populate_smc_initial_state()
2792 adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.count; in ci_populate_smc_uvd_level()
2796 adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.entries[count].vclk; in ci_populate_smc_uvd_level()
2798 adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.entries[count].dclk; in ci_populate_smc_uvd_level()
2800 adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.entries[count].v * VOLTAGE_SCALE; in ci_populate_smc_uvd_level()
2835 adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table.count; in ci_populate_smc_vce_level()
2839 adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table.entries[count].evclk; in ci_populate_smc_vce_level()
2841 (u16)adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table.entries[count].v * VOLTAGE_SCALE; in ci_populate_smc_vce_level()
2868 (adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table.count); in ci_populate_smc_acp_level()
2872 adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table.entries[count].clk; in ci_populate_smc_acp_level()
2874 adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table.entries[count].v; in ci_populate_smc_acp_level()
2900 adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table.count; in ci_populate_smc_samu_level()
2904 adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table.entries[count].clk; in ci_populate_smc_samu_level()
2906 adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table.entries[count].v * VOLTAGE_SCALE; in ci_populate_smc_samu_level()
3024 if (adev->pm.dpm.dyn_state.vddc_dependency_on_mclk.entries) { in ci_populate_single_memory_level()
3026 &adev->pm.dpm.dyn_state.vddc_dependency_on_mclk, in ci_populate_single_memory_level()
3032 if (adev->pm.dpm.dyn_state.vddci_dependency_on_mclk.entries) { in ci_populate_single_memory_level()
3034 &adev->pm.dpm.dyn_state.vddci_dependency_on_mclk, in ci_populate_single_memory_level()
3040 if (adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk.entries) { in ci_populate_single_memory_level()
3042 &adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk, in ci_populate_single_memory_level()
3052 &adev->pm.dpm.dyn_state.phase_shedding_limits_table, in ci_populate_single_memory_level()
3075 (adev->pm.dpm.new_active_crtc_count <= 2)) in ci_populate_single_memory_level()
3270 u16 ulv_voltage = adev->pm.dpm.backbias_response_time; in ci_populate_ulv_level()
3281 if (ulv_voltage > adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[0].v) in ci_populate_ulv_level()
3285 adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[0].v - ulv_voltage; in ci_populate_ulv_level()
3287 if (ulv_voltage > adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[0].v) in ci_populate_ulv_level()
3291 ((adev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[0].v - ulv_voltage) * in ci_populate_ulv_level()
3372 &adev->pm.dpm.dyn_state.vddc_dependency_on_sclk, in ci_populate_single_graphic_level()
3384 &adev->pm.dpm.dyn_state.phase_shedding_limits_table, in ci_populate_single_graphic_level()
3586 &adev->pm.dpm.dyn_state.vddc_dependency_on_sclk; in ci_setup_default_dpm_tables()
3588 &adev->pm.dpm.dyn_state.vddc_dependency_on_mclk; in ci_setup_default_dpm_tables()
3590 &adev->pm.dpm.dyn_state.cac_leakage_table; in ci_setup_default_dpm_tables()
3655 allowed_mclk_table = &adev->pm.dpm.dyn_state.vddci_dependency_on_mclk; in ci_setup_default_dpm_tables()
3665 allowed_mclk_table = &adev->pm.dpm.dyn_state.mvdd_dependency_on_mclk; in ci_setup_default_dpm_tables()
3704 struct amdgpu_ps *amdgpu_boot_state = adev->pm.dpm.boot_ps; in ci_init_smc_table()
3717 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_HARDWAREDC) in ci_init_smc_table()
3720 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_STEPVDDC) in ci_init_smc_table()
3931 &adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk; in ci_apply_disp_minimum_voltage_request()
3933 &adev->pm.dpm.dyn_state.vddc_dependency_on_sclk; in ci_apply_disp_minimum_voltage_request()
4036 if (adev->pm.dpm.current_active_crtc_count != in ci_find_dpm_states_clocks_in_dpm_table()
4037 adev->pm.dpm.new_active_crtc_count) in ci_find_dpm_states_clocks_in_dpm_table()
4082 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac; in ci_enable_uvd_dpm()
4084 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc; in ci_enable_uvd_dpm()
4089 for (i = adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.count - 1; i >= 0; i--) { in ci_enable_uvd_dpm()
4090 if (adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.entries[i].v <= max_limits->vddc) { in ci_enable_uvd_dpm()
4131 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac; in ci_enable_vce_dpm()
4133 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc; in ci_enable_vce_dpm()
4137 for (i = adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table.count - 1; i >= 0; i--) { in ci_enable_vce_dpm()
4138 if (adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table.entries[i].v <= max_limits->vddc) { in ci_enable_vce_dpm()
4164 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
4166 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc;
4170 for (i = adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table.count - 1; i >= 0; i--) {
4171 … if (adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table.entries[i].v <= max_limits->vddc) {
4195 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
4197 max_limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc;
4201 for (i = adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table.count - 1; i >= 0; i--) {
4202 if (adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table.entries[i].v <= max_limits->vddc) {
4230 (adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.count <= 0)) in ci_update_uvd_dpm()
4234 adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table.count - 1; in ci_update_uvd_dpm()
4255 &adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table; in ci_get_vce_boot_level()
4485 adev->pm.dpm.forced_level = level; in ci_dpm_force_performance_level()
5067 &adev->pm.dpm.dyn_state.vddc_dependency_on_sclk; in ci_set_private_data_variables_based_on_pptable()
5069 &adev->pm.dpm.dyn_state.vddc_dependency_on_mclk; in ci_set_private_data_variables_based_on_pptable()
5071 &adev->pm.dpm.dyn_state.vddci_dependency_on_mclk; in ci_set_private_data_variables_based_on_pptable()
5094 adev->pm.dpm.dyn_state.max_clock_voltage_on_ac.sclk = in ci_set_private_data_variables_based_on_pptable()
5096 adev->pm.dpm.dyn_state.max_clock_voltage_on_ac.mclk = in ci_set_private_data_variables_based_on_pptable()
5098 adev->pm.dpm.dyn_state.max_clock_voltage_on_ac.vddc = in ci_set_private_data_variables_based_on_pptable()
5100 adev->pm.dpm.dyn_state.max_clock_voltage_on_ac.vddci = in ci_set_private_data_variables_based_on_pptable()
5213 &adev->pm.dpm.dyn_state.vddc_dependency_on_sclk); in ci_patch_dependency_tables_with_leakage()
5215 &adev->pm.dpm.dyn_state.vddc_dependency_on_mclk); in ci_patch_dependency_tables_with_leakage()
5217 &adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk); in ci_patch_dependency_tables_with_leakage()
5219 &adev->pm.dpm.dyn_state.vddci_dependency_on_mclk); in ci_patch_dependency_tables_with_leakage()
5221 &adev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table); in ci_patch_dependency_tables_with_leakage()
5223 &adev->pm.dpm.dyn_state.uvd_clock_voltage_dependency_table); in ci_patch_dependency_tables_with_leakage()
5225 &adev->pm.dpm.dyn_state.samu_clock_voltage_dependency_table); in ci_patch_dependency_tables_with_leakage()
5227 &adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table); in ci_patch_dependency_tables_with_leakage()
5229 &adev->pm.dpm.dyn_state.phase_shedding_limits_table); in ci_patch_dependency_tables_with_leakage()
5231 &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac); in ci_patch_dependency_tables_with_leakage()
5233 &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc); in ci_patch_dependency_tables_with_leakage()
5235 &adev->pm.dpm.dyn_state.cac_leakage_table); in ci_patch_dependency_tables_with_leakage()
5248 adev->pm.dpm.current_ps = &pi->current_rps; in ci_update_current_ps()
5260 adev->pm.dpm.requested_ps = &pi->requested_rps; in ci_update_requested_ps()
5267 struct amdgpu_ps requested_ps = *adev->pm.dpm.requested_ps; in ci_dpm_pre_set_power_state()
5297 struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; in ci_dpm_enable()
5420 struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; in ci_dpm_disable()
5422 amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq, in ci_dpm_disable()
5424 amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq, in ci_dpm_disable()
5574 adev->pm.dpm.boot_ps = rps; in ci_parse_pplib_non_clock_info()
5576 adev->pm.dpm.uvd_ps = rps; in ci_parse_pplib_non_clock_info()
5682 adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries, in ci_parse_power_table()
5685 if (!adev->pm.dpm.ps) in ci_parse_power_table()
5696 kfree(adev->pm.dpm.ps); in ci_parse_power_table()
5699 adev->pm.dpm.ps[i].ps_priv = ps; in ci_parse_power_table()
5700 ci_parse_pplib_non_clock_info(adev, &adev->pm.dpm.ps[i], in ci_parse_power_table()
5715 &adev->pm.dpm.ps[i], k, in ci_parse_power_table()
5721 adev->pm.dpm.num_ps = state_array->ucNumEntries; in ci_parse_power_table()
5724 for (i = 0; i < adev->pm.dpm.num_of_vce_states; i++) { in ci_parse_power_table()
5726 clock_array_index = adev->pm.dpm.vce_states[i].clk_idx; in ci_parse_power_table()
5733 adev->pm.dpm.vce_states[i].sclk = sclk; in ci_parse_power_table()
5734 adev->pm.dpm.vce_states[i].mclk = mclk; in ci_parse_power_table()
5771 for (i = 0; i < adev->pm.dpm.num_ps; i++) { in ci_dpm_fini()
5772 kfree(adev->pm.dpm.ps[i].ps_priv); in ci_dpm_fini()
5774 kfree(adev->pm.dpm.ps); in ci_dpm_fini()
5775 kfree(adev->pm.dpm.priv); in ci_dpm_fini()
5776 kfree(adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries); in ci_dpm_fini()
5846 adev->pm.dpm.priv = pi; in ci_dpm_init()
5929 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = in ci_dpm_init()
5933 if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { in ci_dpm_init()
5937 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.count = 4; in ci_dpm_init()
5938 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0].clk = 0; in ci_dpm_init()
5939 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0].v = 0; in ci_dpm_init()
5940 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[1].clk = 36000; in ci_dpm_init()
5941 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[1].v = 720; in ci_dpm_init()
5942 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[2].clk = 54000; in ci_dpm_init()
5943 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[2].v = 810; in ci_dpm_init()
5944 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[3].clk = 72000; in ci_dpm_init()
5945 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[3].v = 900; in ci_dpm_init()
5947 adev->pm.dpm.dyn_state.mclk_sclk_ratio = 4; in ci_dpm_init()
5948 adev->pm.dpm.dyn_state.sclk_mclk_delta = 15000; in ci_dpm_init()
5949 adev->pm.dpm.dyn_state.vddc_vddci_delta = 200; in ci_dpm_init()
5951 adev->pm.dpm.dyn_state.valid_sclk_values.count = 0; in ci_dpm_init()
5952 adev->pm.dpm.dyn_state.valid_sclk_values.values = NULL; in ci_dpm_init()
5953 adev->pm.dpm.dyn_state.valid_mclk_values.count = 0; in ci_dpm_init()
5954 adev->pm.dpm.dyn_state.valid_mclk_values.values = NULL; in ci_dpm_init()
5973 adev->pm.dpm.platform_caps |= ATOM_PP_PLATFORM_CAP_REGULATOR_HOT; in ci_dpm_init()
5976 adev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_REGULATOR_HOT; in ci_dpm_init()
5982 adev->pm.dpm.platform_caps |= ATOM_PP_PLATFORM_CAP_HARDWAREDC; in ci_dpm_init()
5985 adev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_HARDWAREDC; in ci_dpm_init()
6025 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL) { in ci_dpm_init()
6031 adev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL; in ci_dpm_init()
6034 if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_MVDDCONTROL) { in ci_dpm_init()
6040 adev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_MVDDCONTROL; in ci_dpm_init()
6073 if ((adev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) || in ci_dpm_init()
6074 (adev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0)) in ci_dpm_init()
6075 adev->pm.dpm.dyn_state.max_clock_voltage_on_dc = in ci_dpm_init()
6076 adev->pm.dpm.dyn_state.max_clock_voltage_on_ac; in ci_dpm_init()
6281 &adev->pm.dpm.thermal.irq); in ci_dpm_sw_init()
6286 &adev->pm.dpm.thermal.irq); in ci_dpm_sw_init()
6291 adev->pm.dpm.state = POWER_STATE_TYPE_BALANCED; in ci_dpm_sw_init()
6292 adev->pm.dpm.user_state = POWER_STATE_TYPE_BALANCED; in ci_dpm_sw_init()
6293 adev->pm.dpm.forced_level = AMD_DPM_FORCED_LEVEL_AUTO; in ci_dpm_sw_init()
6307 INIT_WORK(&adev->pm.dpm.thermal.work, amdgpu_dpm_thermal_work_handler); in ci_dpm_sw_init()
6312 adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps; in ci_dpm_sw_init()
6331 flush_work(&adev->pm.dpm.thermal.work); in ci_dpm_sw_fini()
6392 amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq, in ci_dpm_suspend()
6394 amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq, in ci_dpm_suspend()
6396 adev->pm.dpm.last_user_state = adev->pm.dpm.user_state; in ci_dpm_suspend()
6397 adev->pm.dpm.last_state = adev->pm.dpm.state; in ci_dpm_suspend()
6398 adev->pm.dpm.user_state = POWER_STATE_TYPE_INTERNAL_BOOT; in ci_dpm_suspend()
6399 adev->pm.dpm.state = POWER_STATE_TYPE_INTERNAL_BOOT; in ci_dpm_suspend()
6422 adev->pm.dpm.user_state = adev->pm.dpm.last_user_state; in ci_dpm_resume()
6423 adev->pm.dpm.state = adev->pm.dpm.last_state; in ci_dpm_resume()
6508 adev->pm.dpm.thermal.high_to_low = false; in ci_dpm_process_interrupt()
6513 adev->pm.dpm.thermal.high_to_low = true; in ci_dpm_process_interrupt()
6521 schedule_work(&adev->pm.dpm.thermal.work); in ci_dpm_process_interrupt()
6612 if (adev->pm.dpm.forced_level != AMD_DPM_FORCED_LEVEL_MANUAL) in ci_dpm_force_clock_level()
6675 struct ci_ps *ps = ci_get_ps(adev->pm.dpm.requested_ps); in ci_dpm_set_sclk_od()
6711 struct ci_ps *ps = ci_get_ps(adev->pm.dpm.requested_ps); in ci_dpm_set_mclk_od()
6842 adev->pm.dpm.thermal.irq.num_types = AMDGPU_THERMAL_IRQ_LAST; in ci_dpm_set_irq_funcs()
6843 adev->pm.dpm.thermal.irq.funcs = &ci_dpm_irq_funcs; in ci_dpm_set_irq_funcs()