Skip to content

Commit

Permalink
drm/radeon/dpm: select the appropriate vce power state for KV/KB/ML
Browse files Browse the repository at this point in the history
Compare the clock in the limits table to the requested evclk rather
than just taking the first value.  Improves vce performance in certain
cases.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
  • Loading branch information
Alex Deucher committed Aug 15, 2014
1 parent b07a657 commit c83dec3
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/gpu/drm/radeon/kv_dpm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1438,14 +1438,14 @@ static int kv_update_uvd_dpm(struct radeon_device *rdev, bool gate)
return kv_enable_uvd_dpm(rdev, !gate);
}

static u8 kv_get_vce_boot_level(struct radeon_device *rdev)
static u8 kv_get_vce_boot_level(struct radeon_device *rdev, u32 evclk)
{
u8 i;
struct radeon_vce_clock_voltage_dependency_table *table =
&rdev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table;

for (i = 0; i < table->count; i++) {
if (table->entries[i].evclk >= 0) /* XXX */
if (table->entries[i].evclk >= evclk)
break;
}

Expand All @@ -1468,7 +1468,7 @@ static int kv_update_vce_dpm(struct radeon_device *rdev,
if (pi->caps_stable_p_state)
pi->vce_boot_level = table->count - 1;
else
pi->vce_boot_level = kv_get_vce_boot_level(rdev);
pi->vce_boot_level = kv_get_vce_boot_level(rdev, radeon_new_state->evclk);

ret = kv_copy_bytes_to_smc(rdev,
pi->dpm_table_start +
Expand Down

0 comments on commit c83dec3

Please sign in to comment.