drm/radeon/kms: add dpm support for cayman (v5)
This adds dpm support for cayman asics. This includes: - clockgating - dynamic engine clock scaling - dynamic memory clock scaling - dynamic voltage scaling - dynamic pcie gen1/gen2 switching (requires additional acpi support) - power containment - shader power scaling Set radeon.dpm=1 to enable. v2: fold in tdp fix v3: fix indentation v4: fix 64 bit div v5: attempt to fix state enable Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
This commit is contained in:
@@ -45,9 +45,6 @@ struct rv7xx_ps *rv770_get_ps(struct radeon_ps *rps);
|
||||
struct rv7xx_power_info *rv770_get_pi(struct radeon_device *rdev);
|
||||
struct evergreen_power_info *evergreen_get_pi(struct radeon_device *rdev);
|
||||
|
||||
static u8 cypress_get_mclk_frequency_ratio(struct radeon_device *rdev,
|
||||
u32 memory_clock, bool strobe_mode);
|
||||
|
||||
static void cypress_enable_bif_dynamic_pcie_gen2(struct radeon_device *rdev,
|
||||
bool enable)
|
||||
{
|
||||
@@ -416,7 +413,7 @@ static int cypress_populate_voltage_value(struct radeon_device *rdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u8 cypress_get_strobe_mode_settings(struct radeon_device *rdev, u32 mclk)
|
||||
u8 cypress_get_strobe_mode_settings(struct radeon_device *rdev, u32 mclk)
|
||||
{
|
||||
struct rv7xx_power_info *pi = rv770_get_pi(rdev);
|
||||
u8 result = 0;
|
||||
@@ -434,7 +431,7 @@ static u8 cypress_get_strobe_mode_settings(struct radeon_device *rdev, u32 mclk)
|
||||
return result;
|
||||
}
|
||||
|
||||
static u32 cypress_map_clkf_to_ibias(struct radeon_device *rdev, u32 clkf)
|
||||
u32 cypress_map_clkf_to_ibias(struct radeon_device *rdev, u32 clkf)
|
||||
{
|
||||
u32 ref_clk = rdev->clock.mpll.reference_freq;
|
||||
u32 vco = clkf * ref_clk;
|
||||
@@ -603,8 +600,8 @@ static int cypress_populate_mclk_value(struct radeon_device *rdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u8 cypress_get_mclk_frequency_ratio(struct radeon_device *rdev,
|
||||
u32 memory_clock, bool strobe_mode)
|
||||
u8 cypress_get_mclk_frequency_ratio(struct radeon_device *rdev,
|
||||
u32 memory_clock, bool strobe_mode)
|
||||
{
|
||||
u8 mc_para_index;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user