Skip to content

Commit

Permalink
drm/radeon/kms: dynclks fixes
Browse files Browse the repository at this point in the history
- only r4xx/r5xx/rs6xx/rs740 have clock gating atom table,
so disable it on r6xx.  it's already disabled on r7xx
- check to make sure the clock_gating hook exists before
calling it.  This avoids a segfault on asics without
that function.
- remove unused static power management function.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Alex Deucher authored and Dave Airlie committed Feb 8, 2010
1 parent a0eb38e commit 6d7f2d8
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 13 deletions.
2 changes: 1 addition & 1 deletion drivers/gpu/drm/radeon/radeon_asic.h
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,7 @@ static struct radeon_asic r600_asic = {
.set_memory_clock = &radeon_atom_set_memory_clock,
.get_pcie_lanes = NULL,
.set_pcie_lanes = NULL,
.set_clock_gating = &radeon_atom_set_clock_gating,
.set_clock_gating = NULL,
.set_surface_reg = r600_set_surface_reg,
.clear_surface_reg = r600_clear_surface_reg,
.bandwidth_update = &rv515_bandwidth_update,
Expand Down
10 changes: 0 additions & 10 deletions drivers/gpu/drm/radeon/radeon_atombios.c
Original file line number Diff line number Diff line change
Expand Up @@ -1780,16 +1780,6 @@ void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable)
atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
}

void radeon_atom_static_pwrmgt_setup(struct radeon_device *rdev, int enable)
{
ENABLE_ASIC_STATIC_PWR_MGT_PS_ALLOCATION args;
int index = GetIndexIntoMasterTable(COMMAND, EnableASIC_StaticPwrMgt);

args.ucEnable = enable;

atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
}

uint32_t radeon_atom_get_engine_clock(struct radeon_device *rdev)
{
GET_ENGINE_CLOCK_PS_ALLOCATION args;
Expand Down
6 changes: 4 additions & 2 deletions drivers/gpu/drm/radeon/radeon_clocks.c
Original file line number Diff line number Diff line change
Expand Up @@ -846,8 +846,10 @@ int radeon_static_clocks_init(struct drm_device *dev)
/* XXX make sure engine is idle */

if (radeon_dynclks != -1) {
if (radeon_dynclks)
radeon_set_clock_gating(rdev, 1);
if (radeon_dynclks) {
if (rdev->asic->set_clock_gating)
radeon_set_clock_gating(rdev, 1);
}
}
radeon_apply_clock_quirks(rdev);
return 0;
Expand Down

0 comments on commit 6d7f2d8

Please sign in to comment.