Lines Matching refs:pi
84 struct sumo_power_info *pi = rdev->pm.dpm.priv; in sumo_get_pi() local
86 return pi; in sumo_get_pi()
287 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_enable_clock_power_gating() local
289 if (pi->enable_gfx_clock_gating) in sumo_enable_clock_power_gating()
291 if (pi->enable_gfx_power_gating) in sumo_enable_clock_power_gating()
293 if (pi->enable_mg_clock_gating) in sumo_enable_clock_power_gating()
295 if (pi->enable_gfx_clock_gating) in sumo_enable_clock_power_gating()
297 if (pi->enable_gfx_power_gating) in sumo_enable_clock_power_gating()
305 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_disable_clock_power_gating() local
307 if (pi->enable_gfx_clock_gating) in sumo_disable_clock_power_gating()
309 if (pi->enable_gfx_power_gating) in sumo_disable_clock_power_gating()
311 if (pi->enable_mg_clock_gating) in sumo_disable_clock_power_gating()
318 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_calculate_bsp() local
321 pi->pasi = 65535 * 100 / high_clk; in sumo_calculate_bsp()
322 pi->asi = 65535 * 100 / high_clk; in sumo_calculate_bsp()
324 r600_calculate_u_and_p(pi->asi, in sumo_calculate_bsp()
325 xclk, 16, &pi->bsp, &pi->bsu); in sumo_calculate_bsp()
327 r600_calculate_u_and_p(pi->pasi, in sumo_calculate_bsp()
328 xclk, 16, &pi->pbsp, &pi->pbsu); in sumo_calculate_bsp()
330 pi->dsp = BSP(pi->bsp) | BSU(pi->bsu); in sumo_calculate_bsp()
331 pi->psp = BSP(pi->pbsp) | BSU(pi->pbsu); in sumo_calculate_bsp()
336 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_init_bsp() local
338 WREG32(CG_BSP_0, pi->psp); in sumo_init_bsp()
345 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_bsp() local
351 highest_engine_clock = pi->boost_pl.sclk; in sumo_program_bsp()
356 WREG32(CG_BSP_0 + (i * 4), pi->dsp); in sumo_program_bsp()
358 WREG32(CG_BSP_0 + (i * 4), pi->psp); in sumo_program_bsp()
361 WREG32(CG_BSP_0 + (BOOST_DPM_LEVEL * 4), pi->psp); in sumo_program_bsp()
388 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_at() local
410 asi = (i == ps->num_levels - 1) ? pi->pasi : pi->asi; in sumo_program_at()
420 asi = pi->pasi; in sumo_program_at()
422 m_a = asi * pi->boost_pl.sclk / 100; in sumo_program_at()
497 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_set_ds_dividers() local
499 if (pi->enable_sclk_ds) { in sumo_set_ds_dividers()
511 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_set_ss_dividers() local
513 if (pi->enable_sclk_ds) { in sumo_set_ss_dividers()
533 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_set_allos_gnb_slow() local
537 if (pi->driver_nbps_policy_disable) in sumo_set_allos_gnb_slow()
550 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_power_level() local
577 if (pi->enable_boost) in sumo_program_power_level()
667 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_patch_boost_state() local
671 pi->boost_pl = new_ps->levels[new_ps->num_levels - 1]; in sumo_patch_boost_state()
672 pi->boost_pl.sclk = pi->sys_info.boost_sclk; in sumo_patch_boost_state()
673 pi->boost_pl.vddc_index = pi->sys_info.boost_vid_2bit; in sumo_patch_boost_state()
674 pi->boost_pl.sclk_dpm_tdp_limit = pi->sys_info.sclk_dpm_tdp_limit_boost; in sumo_patch_boost_state()
756 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_power_levels_0_to_n() local
771 sumo_program_power_level(rdev, &pi->boost_pl, BOOST_DPM_LEVEL); in sumo_program_power_levels_0_to_n()
786 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_acpi_power_level() local
791 pi->acpi_pl.sclk, in sumo_program_acpi_power_level()
802 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_bootup_state() local
806 sumo_program_power_level(rdev, &pi->boot_pl, 0); in sumo_program_bootup_state()
819 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_setup_uvd_clocks() local
821 if (pi->enable_gfx_power_gating) { in sumo_setup_uvd_clocks()
827 if (pi->enable_gfx_power_gating) { in sumo_setup_uvd_clocks()
828 if (!pi->disable_gfx_power_gating_in_uvd || in sumo_setup_uvd_clocks()
944 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_program_ttt() local
947 cg_sclk_dpm_ctrl_3 |= GNB_TT(pi->thermal_auto_throttling + 49); in sumo_program_ttt()
988 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_force_nbp_state() local
991 if (!pi->driver_nbps_policy_disable) { in sumo_force_nbp_state()
1008 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_get_sleep_divider_id_from_clock() local
1017 if (!pi->enable_sclk_ds) in sumo_get_sleep_divider_id_from_clock()
1032 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_get_valid_engine_clock() local
1035 for (i = 0; i < pi->sys_info.sclk_voltage_mapping_table.num_max_dpm_entries; i++) { in sumo_get_valid_engine_clock()
1036 if (pi->sys_info.sclk_voltage_mapping_table.entries[i].sclk_frequency >= lower_limit) in sumo_get_valid_engine_clock()
1037 return pi->sys_info.sclk_voltage_mapping_table.entries[i].sclk_frequency; in sumo_get_valid_engine_clock()
1040 …return pi->sys_info.sclk_voltage_mapping_table.entries[pi->sys_info.sclk_voltage_mapping_table.num… in sumo_get_valid_engine_clock()
1047 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_patch_thermal_state() local
1048 u32 sclk_in_sr = pi->sys_info.min_sclk; /* ??? */ in sumo_patch_thermal_state()
1057 current_vddc = pi->boot_pl.vddc_index; in sumo_patch_thermal_state()
1058 current_sclk = pi->boot_pl.sclk; in sumo_patch_thermal_state()
1093 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_apply_state_adjust_rules() local
1095 u32 min_sclk = pi->sys_info.min_sclk; /* XXX check against disp reqs */ in sumo_apply_state_adjust_rules()
1096 u32 sclk_in_sr = pi->sys_info.min_sclk; /* ??? */ in sumo_apply_state_adjust_rules()
1102 if (pi->enable_boost) { in sumo_apply_state_adjust_rules()
1185 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_update_current_ps() local
1187 pi->current_rps = *rps; in sumo_update_current_ps()
1188 pi->current_ps = *new_ps; in sumo_update_current_ps()
1189 pi->current_rps.ps_priv = &pi->current_ps; in sumo_update_current_ps()
1196 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_update_requested_ps() local
1198 pi->requested_rps = *rps; in sumo_update_requested_ps()
1199 pi->requested_ps = *new_ps; in sumo_update_requested_ps()
1200 pi->requested_rps.ps_priv = &pi->requested_ps; in sumo_update_requested_ps()
1205 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_enable() local
1216 if (pi->enable_auto_thermal_throttling) { in sumo_dpm_enable()
1228 if (pi->enable_sclk_ds) in sumo_dpm_enable()
1230 if (pi->enable_boost) in sumo_dpm_enable()
1260 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_disable() local
1265 if (pi->enable_sclk_ds) in sumo_dpm_disable()
1283 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_pre_set_power_state() local
1289 if (pi->enable_dynamic_patch_ps) in sumo_dpm_pre_set_power_state()
1291 &pi->requested_rps, in sumo_dpm_pre_set_power_state()
1292 &pi->current_rps); in sumo_dpm_pre_set_power_state()
1299 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_set_power_state() local
1300 struct radeon_ps *new_ps = &pi->requested_rps; in sumo_dpm_set_power_state()
1301 struct radeon_ps *old_ps = &pi->current_rps; in sumo_dpm_set_power_state()
1303 if (pi->enable_dpm) in sumo_dpm_set_power_state()
1305 if (pi->enable_boost) { in sumo_dpm_set_power_state()
1309 if (pi->enable_dpm) { in sumo_dpm_set_power_state()
1325 if (pi->enable_boost) in sumo_dpm_set_power_state()
1327 if (pi->enable_dpm) in sumo_dpm_set_power_state()
1335 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_post_set_power_state() local
1336 struct radeon_ps *new_ps = &pi->requested_rps; in sumo_dpm_post_set_power_state()
1357 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_setup_asic() local
1360 pi->fw_version = sumo_get_running_fw_version(rdev); in sumo_dpm_setup_asic()
1361 DRM_INFO("Found smc ucode version: 0x%08x\n", pi->fw_version); in sumo_dpm_setup_asic()
1396 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_patch_boot_state() local
1400 ps->levels[0] = pi->boot_pl; in sumo_patch_boot_state()
1434 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_parse_pplib_clock_info() local
1447 if (pi->enable_sclk_ds) { in sumo_parse_pplib_clock_info()
1561 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_convert_voltage_index_to_value() local
1562 u32 vid_7bit = sumo_convert_vid2_to_vid7(rdev, &pi->sys_info.vid_mapping_table, vid_2bit); in sumo_convert_voltage_index_to_value()
1657 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_parse_sys_info_table() local
1674 pi->sys_info.bootup_sclk = le32_to_cpu(igp_info->info_6.ulBootUpEngineClock); in sumo_parse_sys_info_table()
1675 pi->sys_info.min_sclk = le32_to_cpu(igp_info->info_6.ulMinEngineClock); in sumo_parse_sys_info_table()
1676 pi->sys_info.bootup_uma_clk = le32_to_cpu(igp_info->info_6.ulBootUpUMAClock); in sumo_parse_sys_info_table()
1677 pi->sys_info.bootup_nb_voltage_index = in sumo_parse_sys_info_table()
1680 pi->sys_info.htc_tmp_lmt = 203; in sumo_parse_sys_info_table()
1682 pi->sys_info.htc_tmp_lmt = igp_info->info_6.ucHtcTmpLmt; in sumo_parse_sys_info_table()
1684 pi->sys_info.htc_hyst_lmt = 5; in sumo_parse_sys_info_table()
1686 pi->sys_info.htc_hyst_lmt = igp_info->info_6.ucHtcHystLmt; in sumo_parse_sys_info_table()
1687 if (pi->sys_info.htc_tmp_lmt <= pi->sys_info.htc_hyst_lmt) { in sumo_parse_sys_info_table()
1691 pi->sys_info.csr_m3_arb_cntl_default[i] = in sumo_parse_sys_info_table()
1693 pi->sys_info.csr_m3_arb_cntl_uvd[i] = in sumo_parse_sys_info_table()
1695 pi->sys_info.csr_m3_arb_cntl_fs3d[i] = in sumo_parse_sys_info_table()
1698 pi->sys_info.sclk_dpm_boost_margin = in sumo_parse_sys_info_table()
1700 pi->sys_info.sclk_dpm_throttle_margin = in sumo_parse_sys_info_table()
1702 pi->sys_info.sclk_dpm_tdp_limit_pg = in sumo_parse_sys_info_table()
1704 pi->sys_info.gnb_tdp_limit = le16_to_cpu(igp_info->info_6.GnbTdpLimit); in sumo_parse_sys_info_table()
1705 pi->sys_info.sclk_dpm_tdp_limit_boost = in sumo_parse_sys_info_table()
1707 pi->sys_info.boost_sclk = le32_to_cpu(igp_info->info_6.ulBoostEngineCLock); in sumo_parse_sys_info_table()
1708 pi->sys_info.boost_vid_2bit = igp_info->info_6.ulBoostVid_2bit; in sumo_parse_sys_info_table()
1710 pi->sys_info.enable_boost = true; in sumo_parse_sys_info_table()
1712 pi->sys_info.enable_boost = false; in sumo_parse_sys_info_table()
1714 &pi->sys_info.disp_clk_voltage_mapping_table, in sumo_parse_sys_info_table()
1717 &pi->sys_info.sclk_voltage_mapping_table, in sumo_parse_sys_info_table()
1719 sumo_construct_vid_mapping_table(rdev, &pi->sys_info.vid_mapping_table, in sumo_parse_sys_info_table()
1728 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_construct_boot_and_acpi_state() local
1730 pi->boot_pl.sclk = pi->sys_info.bootup_sclk; in sumo_construct_boot_and_acpi_state()
1731 pi->boot_pl.vddc_index = pi->sys_info.bootup_nb_voltage_index; in sumo_construct_boot_and_acpi_state()
1732 pi->boot_pl.ds_divider_index = 0; in sumo_construct_boot_and_acpi_state()
1733 pi->boot_pl.ss_divider_index = 0; in sumo_construct_boot_and_acpi_state()
1734 pi->boot_pl.allow_gnb_slow = 1; in sumo_construct_boot_and_acpi_state()
1735 pi->acpi_pl = pi->boot_pl; in sumo_construct_boot_and_acpi_state()
1736 pi->current_ps.num_levels = 1; in sumo_construct_boot_and_acpi_state()
1737 pi->current_ps.levels[0] = pi->boot_pl; in sumo_construct_boot_and_acpi_state()
1742 struct sumo_power_info *pi; in sumo_dpm_init() local
1746 pi = kzalloc(sizeof(struct sumo_power_info), GFP_KERNEL); in sumo_dpm_init()
1747 if (pi == NULL) in sumo_dpm_init()
1749 rdev->pm.dpm.priv = pi; in sumo_dpm_init()
1751 pi->driver_nbps_policy_disable = false; in sumo_dpm_init()
1753 pi->disable_gfx_power_gating_in_uvd = true; in sumo_dpm_init()
1755 pi->disable_gfx_power_gating_in_uvd = false; in sumo_dpm_init()
1756 pi->enable_alt_vddnb = true; in sumo_dpm_init()
1757 pi->enable_sclk_ds = true; in sumo_dpm_init()
1758 pi->enable_dynamic_m3_arbiter = false; in sumo_dpm_init()
1759 pi->enable_dynamic_patch_ps = true; in sumo_dpm_init()
1764 pi->enable_gfx_power_gating = false; in sumo_dpm_init()
1766 pi->enable_gfx_power_gating = true; in sumo_dpm_init()
1767 pi->enable_gfx_clock_gating = true; in sumo_dpm_init()
1768 pi->enable_mg_clock_gating = true; in sumo_dpm_init()
1769 pi->enable_auto_thermal_throttling = true; in sumo_dpm_init()
1785 pi->pasi = CYPRESS_HASI_DFLT; in sumo_dpm_init()
1786 pi->asi = RV770_ASI_DFLT; in sumo_dpm_init()
1787 pi->thermal_auto_throttling = pi->sys_info.htc_tmp_lmt; in sumo_dpm_init()
1788 pi->enable_boost = pi->sys_info.enable_boost; in sumo_dpm_init()
1789 pi->enable_dpm = true; in sumo_dpm_init()
1815 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_debugfs_print_current_performance_level() local
1816 struct radeon_ps *rps = &pi->current_rps; in sumo_dpm_debugfs_print_current_performance_level()
1824 pl = &pi->boost_pl; in sumo_dpm_debugfs_print_current_performance_level()
1842 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_get_current_sclk() local
1843 struct radeon_ps *rps = &pi->current_rps; in sumo_dpm_get_current_sclk()
1851 pl = &pi->boost_pl; in sumo_dpm_get_current_sclk()
1863 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_get_current_mclk() local
1865 return pi->sys_info.bootup_uma_clk; in sumo_dpm_get_current_mclk()
1883 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_get_sclk() local
1884 struct sumo_ps *requested_state = sumo_get_ps(&pi->requested_rps); in sumo_dpm_get_sclk()
1894 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_get_mclk() local
1896 return pi->sys_info.bootup_uma_clk; in sumo_dpm_get_mclk()
1902 struct sumo_power_info *pi = sumo_get_pi(rdev); in sumo_dpm_force_performance_level() local
1903 struct radeon_ps *rps = &pi->current_rps; in sumo_dpm_force_performance_level()
1911 if (pi->enable_boost) in sumo_dpm_force_performance_level()
1923 if (pi->enable_boost) in sumo_dpm_force_performance_level()
1938 if (pi->enable_boost) in sumo_dpm_force_performance_level()