diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-06-07 11:50:12 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-06-26 16:11:49 -0400 |
commit | 360b1f5e6241932dcfe767389d262d155a04b0b0 (patch) | |
tree | e922e3a69f9e9a6adcbd92505246e10185ee3487 /drivers/gpu/drm/radeon/radeon_atombios.c | |
parent | 6e2c3c0ae70ccac2e8d8f2c932e72fe9866930ca (diff) |
drm/radeon: update radeon_atom_get_clock_dividers() for SI
SI uses v5 of the command table and uses a different table
for memory PLLs.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_atombios.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_atombios.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index 3236755857a8..774e3549b527 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c | |||
@@ -2732,7 +2732,8 @@ int radeon_atom_get_clock_dividers(struct radeon_device *rdev, | |||
2732 | break; | 2732 | break; |
2733 | case 2: | 2733 | case 2: |
2734 | case 3: | 2734 | case 3: |
2735 | /* r6xx, r7xx, evergreen, ni */ | 2735 | case 5: |
2736 | /* r6xx, r7xx, evergreen, ni, si */ | ||
2736 | if (rdev->family <= CHIP_RV770) { | 2737 | if (rdev->family <= CHIP_RV770) { |
2737 | args.v2.ucAction = clock_type; | 2738 | args.v2.ucAction = clock_type; |
2738 | args.v2.ulClock = cpu_to_le32(clock); /* 10 khz */ | 2739 | args.v2.ulClock = cpu_to_le32(clock); /* 10 khz */ |
@@ -2765,6 +2766,9 @@ int radeon_atom_get_clock_dividers(struct radeon_device *rdev, | |||
2765 | dividers->vco_mode = (args.v3.ucCntlFlag & | 2766 | dividers->vco_mode = (args.v3.ucCntlFlag & |
2766 | ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE) ? 1 : 0; | 2767 | ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE) ? 1 : 0; |
2767 | } else { | 2768 | } else { |
2769 | /* for SI we use ComputeMemoryClockParam for memory plls */ | ||
2770 | if (rdev->family >= CHIP_TAHITI) | ||
2771 | return -EINVAL; | ||
2768 | args.v5.ulClockParams = cpu_to_le32((clock_type << 24) | clock); | 2772 | args.v5.ulClockParams = cpu_to_le32((clock_type << 24) | clock); |
2769 | if (strobe_mode) | 2773 | if (strobe_mode) |
2770 | args.v5.ucInputFlag = ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN; | 2774 | args.v5.ucInputFlag = ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN; |