Lines Matching refs:ps
349 struct trinity_ps *ps = rps->ps_priv; in trinity_get_ps() local
351 return ps; in trinity_get_ps()
871 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_setup_uvd_clock_table() local
872 u32 uvdstates = (ps->vclk_low_divider | in trinity_setup_uvd_clock_table()
873 ps->vclk_high_divider << 8 | in trinity_setup_uvd_clock_table()
874 ps->dclk_low_divider << 16 | in trinity_setup_uvd_clock_table()
875 ps->dclk_high_divider << 24); in trinity_setup_uvd_clock_table()
1205 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_dpm_force_performance_level() local
1208 if (ps->num_levels <= 1) in trinity_dpm_force_performance_level()
1215 ret = trinity_dpm_n_levels_disabled(rdev, ps->num_levels - 1); in trinity_dpm_force_performance_level()
1219 for (i = 0; i < ps->num_levels; i++) { in trinity_dpm_force_performance_level()
1323 struct trinity_ps *ps) in trinity_patch_boot_state() argument
1327 ps->num_levels = 1; in trinity_patch_boot_state()
1328 ps->nbps_flags = 0; in trinity_patch_boot_state()
1329 ps->bapm_flags = 0; in trinity_patch_boot_state()
1330 ps->levels[0] = pi->boot_pl; in trinity_patch_boot_state()
1398 struct trinity_ps *ps, in trinity_patch_thermal_state() argument
1415 ps->levels[0].vddc_index = current_vddc; in trinity_patch_thermal_state()
1417 if (ps->levels[0].sclk > current_sclk) in trinity_patch_thermal_state()
1418 ps->levels[0].sclk = current_sclk; in trinity_patch_thermal_state()
1420 ps->levels[0].ds_divider_index = in trinity_patch_thermal_state()
1421 trinity_get_sleep_divider_id_from_clock(rdev, ps->levels[0].sclk, sclk_in_sr); in trinity_patch_thermal_state()
1422 ps->levels[0].ss_divider_index = ps->levels[0].ds_divider_index; in trinity_patch_thermal_state()
1423 ps->levels[0].allow_gnb_slow = 1; in trinity_patch_thermal_state()
1424 ps->levels[0].force_nbp_state = 0; in trinity_patch_thermal_state()
1425 ps->levels[0].display_wm = 0; in trinity_patch_thermal_state()
1426 ps->levels[0].vce_wm = in trinity_patch_thermal_state()
1427 trinity_calculate_vce_wm(rdev, ps->levels[0].sclk); in trinity_patch_thermal_state()
1431 struct trinity_ps *ps, u32 index) in trinity_calculate_display_wm() argument
1433 if (ps == NULL || ps->num_levels <= 1) in trinity_calculate_display_wm()
1435 else if (ps->num_levels == 2) { in trinity_calculate_display_wm()
1443 else if (ps->levels[index].sclk < 30000) in trinity_calculate_display_wm()
1472 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_adjust_uvd_state() local
1492 ps->vclk_low_divider = in trinity_adjust_uvd_state()
1494 ps->dclk_low_divider = in trinity_adjust_uvd_state()
1496 ps->vclk_high_divider = in trinity_adjust_uvd_state()
1498 ps->dclk_high_divider = in trinity_adjust_uvd_state()
1537 struct trinity_ps *ps = trinity_get_ps(new_rps); in trinity_apply_state_adjust_rules() local
1549 return trinity_patch_thermal_state(rdev, ps, current_ps); in trinity_apply_state_adjust_rules()
1561 for (i = 0; i < ps->num_levels; i++) { in trinity_apply_state_adjust_rules()
1562 if (ps->levels[i].vddc_index < min_voltage) in trinity_apply_state_adjust_rules()
1563 ps->levels[i].vddc_index = min_voltage; in trinity_apply_state_adjust_rules()
1565 if (ps->levels[i].sclk < min_sclk) in trinity_apply_state_adjust_rules()
1566 ps->levels[i].sclk = in trinity_apply_state_adjust_rules()
1572 if (ps->levels[i].sclk < rdev->pm.dpm.vce_states[rdev->pm.dpm.vce_level].sclk) in trinity_apply_state_adjust_rules()
1573 ps->levels[i].sclk = rdev->pm.dpm.vce_states[rdev->pm.dpm.vce_level].sclk; in trinity_apply_state_adjust_rules()
1576 if (ps->levels[i].vddc_index < min_vce_voltage) in trinity_apply_state_adjust_rules()
1577 ps->levels[i].vddc_index = min_vce_voltage; in trinity_apply_state_adjust_rules()
1580 ps->levels[i].ds_divider_index = in trinity_apply_state_adjust_rules()
1581 sumo_get_sleep_divider_id_from_clock(rdev, ps->levels[i].sclk, sclk_in_sr); in trinity_apply_state_adjust_rules()
1583 ps->levels[i].ss_divider_index = ps->levels[i].ds_divider_index; in trinity_apply_state_adjust_rules()
1585 ps->levels[i].allow_gnb_slow = 1; in trinity_apply_state_adjust_rules()
1586 ps->levels[i].force_nbp_state = 0; in trinity_apply_state_adjust_rules()
1587 ps->levels[i].display_wm = in trinity_apply_state_adjust_rules()
1588 trinity_calculate_display_wm(rdev, ps, i); in trinity_apply_state_adjust_rules()
1589 ps->levels[i].vce_wm = in trinity_apply_state_adjust_rules()
1590 trinity_calculate_vce_wm(rdev, ps->levels[0].sclk); in trinity_apply_state_adjust_rules()
1595 ps->bapm_flags |= TRINITY_POWERSTATE_FLAGS_BAPM_DISABLE; in trinity_apply_state_adjust_rules()
1598 ps->Dpm0PgNbPsLo = 0x1; in trinity_apply_state_adjust_rules()
1599 ps->Dpm0PgNbPsHi = 0x0; in trinity_apply_state_adjust_rules()
1600 ps->DpmXNbPsLo = 0x2; in trinity_apply_state_adjust_rules()
1601 ps->DpmXNbPsHi = 0x1; in trinity_apply_state_adjust_rules()
1609 ps->Dpm0PgNbPsLo = force_high ? 0x2 : 0x3; in trinity_apply_state_adjust_rules()
1610 ps->Dpm0PgNbPsHi = 0x1; in trinity_apply_state_adjust_rules()
1611 ps->DpmXNbPsLo = force_high ? 0x2 : 0x3; in trinity_apply_state_adjust_rules()
1612 ps->DpmXNbPsHi = 0x2; in trinity_apply_state_adjust_rules()
1613 ps->levels[ps->num_levels - 1].allow_gnb_slow = 0; in trinity_apply_state_adjust_rules()
1684 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_parse_pplib_non_clock_info() local
1700 trinity_patch_boot_state(rdev, ps); in trinity_parse_pplib_non_clock_info()
1711 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_parse_pplib_clock_info() local
1712 struct trinity_pl *pl = &ps->levels[index]; in trinity_parse_pplib_clock_info()
1720 ps->num_levels = index + 1; in trinity_parse_pplib_clock_info()
1743 struct sumo_ps *ps; in trinity_parse_power_table() local
1760 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * in trinity_parse_power_table()
1762 if (!rdev->pm.dpm.ps) in trinity_parse_power_table()
1773 ps = kzalloc(sizeof(struct sumo_ps), GFP_KERNEL); in trinity_parse_power_table()
1774 if (ps == NULL) { in trinity_parse_power_table()
1775 kfree(rdev->pm.dpm.ps); in trinity_parse_power_table()
1778 rdev->pm.dpm.ps[i].ps_priv = ps; in trinity_parse_power_table()
1791 &rdev->pm.dpm.ps[i], k, in trinity_parse_power_table()
1795 trinity_parse_pplib_non_clock_info(rdev, &rdev->pm.dpm.ps[i], in trinity_parse_power_table()
2013 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_dpm_print_power_state() local
2018 for (i = 0; i < ps->num_levels; i++) { in trinity_dpm_print_power_state()
2019 struct trinity_pl *pl = &ps->levels[i]; in trinity_dpm_print_power_state()
2032 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_dpm_debugfs_print_current_performance_level() local
2038 if (current_index >= ps->num_levels) { in trinity_dpm_debugfs_print_current_performance_level()
2041 pl = &ps->levels[current_index]; in trinity_dpm_debugfs_print_current_performance_level()
2053 struct trinity_ps *ps = trinity_get_ps(rps); in trinity_dpm_get_current_sclk() local
2059 if (current_index >= ps->num_levels) { in trinity_dpm_get_current_sclk()
2062 pl = &ps->levels[current_index]; in trinity_dpm_get_current_sclk()
2081 kfree(rdev->pm.dpm.ps[i].ps_priv); in trinity_dpm_fini()
2083 kfree(rdev->pm.dpm.ps); in trinity_dpm_fini()