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:41:05 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-06-26 16:11:36 -0400
commitbc19f59704ac33ea31b4fceb9d16ebec26dc3dd9 (patch)
treea8252091840ed8d7f26a9e957bae7ef6d4390bf8 /drivers/gpu/drm/radeon/radeon_atombios.c
parent511502071471956e7aa3e05fb3840a46080be905 (diff)
drm/radeon: update power state parsing for CI
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.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index cb3273b26d4d..88a55afae4c2 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1945,6 +1945,7 @@ union pplib_clock_info {
1945 struct _ATOM_PPLIB_EVERGREEN_CLOCK_INFO evergreen; 1945 struct _ATOM_PPLIB_EVERGREEN_CLOCK_INFO evergreen;
1946 struct _ATOM_PPLIB_SUMO_CLOCK_INFO sumo; 1946 struct _ATOM_PPLIB_SUMO_CLOCK_INFO sumo;
1947 struct _ATOM_PPLIB_SI_CLOCK_INFO si; 1947 struct _ATOM_PPLIB_SI_CLOCK_INFO si;
1948 struct _ATOM_PPLIB_CI_CLOCK_INFO ci;
1948}; 1949};
1949 1950
1950union pplib_power_state { 1951union pplib_power_state {
@@ -2353,6 +2354,15 @@ static bool radeon_atombios_parse_pplib_clock_info(struct radeon_device *rdev,
2353 sclk |= clock_info->rs780.ucLowEngineClockHigh << 16; 2354 sclk |= clock_info->rs780.ucLowEngineClockHigh << 16;
2354 rdev->pm.power_state[state_index].clock_info[mode_index].sclk = sclk; 2355 rdev->pm.power_state[state_index].clock_info[mode_index].sclk = sclk;
2355 } 2356 }
2357 } else if (rdev->family >= CHIP_BONAIRE) {
2358 sclk = le16_to_cpu(clock_info->ci.usEngineClockLow);
2359 sclk |= clock_info->ci.ucEngineClockHigh << 16;
2360 mclk = le16_to_cpu(clock_info->ci.usMemoryClockLow);
2361 mclk |= clock_info->ci.ucMemoryClockHigh << 16;
2362 rdev->pm.power_state[state_index].clock_info[mode_index].mclk = mclk;
2363 rdev->pm.power_state[state_index].clock_info[mode_index].sclk = sclk;
2364 rdev->pm.power_state[state_index].clock_info[mode_index].voltage.type =
2365 VOLTAGE_NONE;
2356 } else if (rdev->family >= CHIP_TAHITI) { 2366 } else if (rdev->family >= CHIP_TAHITI) {
2357 sclk = le16_to_cpu(clock_info->si.usEngineClockLow); 2367 sclk = le16_to_cpu(clock_info->si.usEngineClockLow);
2358 sclk |= clock_info->si.ucEngineClockHigh << 16; 2368 sclk |= clock_info->si.ucEngineClockHigh << 16;