aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_atombios.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-06-07 11:50:12 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-06-26 16:11:49 -0400
commit360b1f5e6241932dcfe767389d262d155a04b0b0 (patch)
treee922e3a69f9e9a6adcbd92505246e10185ee3487 /drivers/gpu/drm/radeon/radeon_atombios.c
parent6e2c3c0ae70ccac2e8d8f2c932e72fe9866930ca (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.c6
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;