diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-08-21 10:02:32 -0400 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2014-02-18 10:11:30 -0500 |
commit | 82f79cc54b6a67c0b17aff4fb5ed43155ff3f0ea (patch) | |
tree | 6e986d77466b1f668cc47ea1f08c2868cedd4fab /drivers/gpu/drm/radeon | |
parent | b59b733397cac70be5b04c60e8810077ac6ca48d (diff) |
drm/radeon/dpm: move platform caps fetching to a separate function
It's needed by by both the asic specific functions and the
extended table parser.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r-- | drivers/gpu/drm/radeon/btc_dpm.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/ci_dpm.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/cypress_dpm.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/kv_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/ni_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600_dpm.c | 20 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600_dpm.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rs780_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rv6xx_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rv770_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/si_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/sumo_dpm.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/trinity_dpm.c | 7 |
13 files changed, 68 insertions, 27 deletions
diff --git a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c index ea103ccdf4bd..f81d7ca134db 100644 --- a/drivers/gpu/drm/radeon/btc_dpm.c +++ b/drivers/gpu/drm/radeon/btc_dpm.c | |||
@@ -2601,6 +2601,10 @@ int btc_dpm_init(struct radeon_device *rdev) | |||
2601 | pi->min_vddc_in_table = 0; | 2601 | pi->min_vddc_in_table = 0; |
2602 | pi->max_vddc_in_table = 0; | 2602 | pi->max_vddc_in_table = 0; |
2603 | 2603 | ||
2604 | ret = r600_get_platform_caps(rdev); | ||
2605 | if (ret) | ||
2606 | return ret; | ||
2607 | |||
2604 | ret = rv7xx_parse_power_table(rdev); | 2608 | ret = rv7xx_parse_power_table(rdev); |
2605 | if (ret) | 2609 | if (ret) |
2606 | return ret; | 2610 | return ret; |
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c index 8d49104ca6c2..4a0c40186046 100644 --- a/drivers/gpu/drm/radeon/ci_dpm.c +++ b/drivers/gpu/drm/radeon/ci_dpm.c | |||
@@ -4959,9 +4959,6 @@ static int ci_parse_power_table(struct radeon_device *rdev) | |||
4959 | if (!rdev->pm.dpm.ps) | 4959 | if (!rdev->pm.dpm.ps) |
4960 | return -ENOMEM; | 4960 | return -ENOMEM; |
4961 | power_state_offset = (u8 *)state_array->states; | 4961 | power_state_offset = (u8 *)state_array->states; |
4962 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
4963 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
4964 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
4965 | for (i = 0; i < state_array->ucNumEntries; i++) { | 4962 | for (i = 0; i < state_array->ucNumEntries; i++) { |
4966 | u8 *idx; | 4963 | u8 *idx; |
4967 | power_state = (union pplib_power_state *)power_state_offset; | 4964 | power_state = (union pplib_power_state *)power_state_offset; |
@@ -5077,6 +5074,12 @@ int ci_dpm_init(struct radeon_device *rdev) | |||
5077 | ci_dpm_fini(rdev); | 5074 | ci_dpm_fini(rdev); |
5078 | return ret; | 5075 | return ret; |
5079 | } | 5076 | } |
5077 | |||
5078 | ret = r600_get_platform_caps(rdev); | ||
5079 | if (ret) { | ||
5080 | ci_dpm_fini(rdev); | ||
5081 | return ret; | ||
5082 | } | ||
5080 | ret = ci_parse_power_table(rdev); | 5083 | ret = ci_parse_power_table(rdev); |
5081 | if (ret) { | 5084 | if (ret) { |
5082 | ci_dpm_fini(rdev); | 5085 | ci_dpm_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c index cf783fc0ef21..5a9a5f4d7888 100644 --- a/drivers/gpu/drm/radeon/cypress_dpm.c +++ b/drivers/gpu/drm/radeon/cypress_dpm.c | |||
@@ -2036,6 +2036,10 @@ int cypress_dpm_init(struct radeon_device *rdev) | |||
2036 | pi->min_vddc_in_table = 0; | 2036 | pi->min_vddc_in_table = 0; |
2037 | pi->max_vddc_in_table = 0; | 2037 | pi->max_vddc_in_table = 0; |
2038 | 2038 | ||
2039 | ret = r600_get_platform_caps(rdev); | ||
2040 | if (ret) | ||
2041 | return ret; | ||
2042 | |||
2039 | ret = rv7xx_parse_power_table(rdev); | 2043 | ret = rv7xx_parse_power_table(rdev); |
2040 | if (ret) | 2044 | if (ret) |
2041 | return ret; | 2045 | return ret; |
diff --git a/drivers/gpu/drm/radeon/kv_dpm.c b/drivers/gpu/drm/radeon/kv_dpm.c index 351db361239d..b5bb3a5654ce 100644 --- a/drivers/gpu/drm/radeon/kv_dpm.c +++ b/drivers/gpu/drm/radeon/kv_dpm.c | |||
@@ -2538,9 +2538,6 @@ static int kv_parse_power_table(struct radeon_device *rdev) | |||
2538 | if (!rdev->pm.dpm.ps) | 2538 | if (!rdev->pm.dpm.ps) |
2539 | return -ENOMEM; | 2539 | return -ENOMEM; |
2540 | power_state_offset = (u8 *)state_array->states; | 2540 | power_state_offset = (u8 *)state_array->states; |
2541 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
2542 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
2543 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
2544 | for (i = 0; i < state_array->ucNumEntries; i++) { | 2541 | for (i = 0; i < state_array->ucNumEntries; i++) { |
2545 | u8 *idx; | 2542 | u8 *idx; |
2546 | power_state = (union pplib_power_state *)power_state_offset; | 2543 | power_state = (union pplib_power_state *)power_state_offset; |
@@ -2590,6 +2587,10 @@ int kv_dpm_init(struct radeon_device *rdev) | |||
2590 | return -ENOMEM; | 2587 | return -ENOMEM; |
2591 | rdev->pm.dpm.priv = pi; | 2588 | rdev->pm.dpm.priv = pi; |
2592 | 2589 | ||
2590 | ret = r600_get_platform_caps(rdev); | ||
2591 | if (ret) | ||
2592 | return ret; | ||
2593 | |||
2593 | ret = r600_parse_extended_power_table(rdev); | 2594 | ret = r600_parse_extended_power_table(rdev); |
2594 | if (ret) | 2595 | if (ret) |
2595 | return ret; | 2596 | return ret; |
diff --git a/drivers/gpu/drm/radeon/ni_dpm.c b/drivers/gpu/drm/radeon/ni_dpm.c index 1217fbcbdcca..89fc5b976d9b 100644 --- a/drivers/gpu/drm/radeon/ni_dpm.c +++ b/drivers/gpu/drm/radeon/ni_dpm.c | |||
@@ -4025,9 +4025,6 @@ static int ni_parse_power_table(struct radeon_device *rdev) | |||
4025 | power_info->pplib.ucNumStates, GFP_KERNEL); | 4025 | power_info->pplib.ucNumStates, GFP_KERNEL); |
4026 | if (!rdev->pm.dpm.ps) | 4026 | if (!rdev->pm.dpm.ps) |
4027 | return -ENOMEM; | 4027 | return -ENOMEM; |
4028 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
4029 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
4030 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
4031 | 4028 | ||
4032 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { | 4029 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { |
4033 | power_state = (union pplib_power_state *) | 4030 | power_state = (union pplib_power_state *) |
@@ -4089,6 +4086,10 @@ int ni_dpm_init(struct radeon_device *rdev) | |||
4089 | pi->min_vddc_in_table = 0; | 4086 | pi->min_vddc_in_table = 0; |
4090 | pi->max_vddc_in_table = 0; | 4087 | pi->max_vddc_in_table = 0; |
4091 | 4088 | ||
4089 | ret = r600_get_platform_caps(rdev); | ||
4090 | if (ret) | ||
4091 | return ret; | ||
4092 | |||
4092 | ret = ni_parse_power_table(rdev); | 4093 | ret = ni_parse_power_table(rdev); |
4093 | if (ret) | 4094 | if (ret) |
4094 | return ret; | 4095 | return ret; |
diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c index e4cc9b314ce9..e8b6e4ab312b 100644 --- a/drivers/gpu/drm/radeon/r600_dpm.c +++ b/drivers/gpu/drm/radeon/r600_dpm.c | |||
@@ -834,6 +834,26 @@ static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependen | |||
834 | return 0; | 834 | return 0; |
835 | } | 835 | } |
836 | 836 | ||
837 | int r600_get_platform_caps(struct radeon_device *rdev) | ||
838 | { | ||
839 | struct radeon_mode_info *mode_info = &rdev->mode_info; | ||
840 | union power_info *power_info; | ||
841 | int index = GetIndexIntoMasterTable(DATA, PowerPlayInfo); | ||
842 | u16 data_offset; | ||
843 | u8 frev, crev; | ||
844 | |||
845 | if (!atom_parse_data_header(mode_info->atom_context, index, NULL, | ||
846 | &frev, &crev, &data_offset)) | ||
847 | return -EINVAL; | ||
848 | power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); | ||
849 | |||
850 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
851 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
852 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
853 | |||
854 | return 0; | ||
855 | } | ||
856 | |||
837 | /* sizeof(ATOM_PPLIB_EXTENDEDHEADER) */ | 857 | /* sizeof(ATOM_PPLIB_EXTENDEDHEADER) */ |
838 | #define SIZE_OF_ATOM_PPLIB_EXTENDEDHEADER_V2 12 | 858 | #define SIZE_OF_ATOM_PPLIB_EXTENDEDHEADER_V2 12 |
839 | #define SIZE_OF_ATOM_PPLIB_EXTENDEDHEADER_V3 14 | 859 | #define SIZE_OF_ATOM_PPLIB_EXTENDEDHEADER_V3 14 |
diff --git a/drivers/gpu/drm/radeon/r600_dpm.h b/drivers/gpu/drm/radeon/r600_dpm.h index 07eab2b04e81..46b9d2a03018 100644 --- a/drivers/gpu/drm/radeon/r600_dpm.h +++ b/drivers/gpu/drm/radeon/r600_dpm.h | |||
@@ -215,6 +215,8 @@ void r600_stop_dpm(struct radeon_device *rdev); | |||
215 | 215 | ||
216 | bool r600_is_internal_thermal_sensor(enum radeon_int_thermal_type sensor); | 216 | bool r600_is_internal_thermal_sensor(enum radeon_int_thermal_type sensor); |
217 | 217 | ||
218 | int r600_get_platform_caps(struct radeon_device *rdev); | ||
219 | |||
218 | int r600_parse_extended_power_table(struct radeon_device *rdev); | 220 | int r600_parse_extended_power_table(struct radeon_device *rdev); |
219 | void r600_free_extended_power_table(struct radeon_device *rdev); | 221 | void r600_free_extended_power_table(struct radeon_device *rdev); |
220 | 222 | ||
diff --git a/drivers/gpu/drm/radeon/rs780_dpm.c b/drivers/gpu/drm/radeon/rs780_dpm.c index 8512085b0aef..02f7710de470 100644 --- a/drivers/gpu/drm/radeon/rs780_dpm.c +++ b/drivers/gpu/drm/radeon/rs780_dpm.c | |||
@@ -807,9 +807,6 @@ static int rs780_parse_power_table(struct radeon_device *rdev) | |||
807 | power_info->pplib.ucNumStates, GFP_KERNEL); | 807 | power_info->pplib.ucNumStates, GFP_KERNEL); |
808 | if (!rdev->pm.dpm.ps) | 808 | if (!rdev->pm.dpm.ps) |
809 | return -ENOMEM; | 809 | return -ENOMEM; |
810 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
811 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
812 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
813 | 810 | ||
814 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { | 811 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { |
815 | power_state = (union pplib_power_state *) | 812 | power_state = (union pplib_power_state *) |
@@ -859,6 +856,10 @@ int rs780_dpm_init(struct radeon_device *rdev) | |||
859 | return -ENOMEM; | 856 | return -ENOMEM; |
860 | rdev->pm.dpm.priv = pi; | 857 | rdev->pm.dpm.priv = pi; |
861 | 858 | ||
859 | ret = r600_get_platform_caps(rdev); | ||
860 | if (ret) | ||
861 | return ret; | ||
862 | |||
862 | ret = rs780_parse_power_table(rdev); | 863 | ret = rs780_parse_power_table(rdev); |
863 | if (ret) | 864 | if (ret) |
864 | return ret; | 865 | return ret; |
diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c b/drivers/gpu/drm/radeon/rv6xx_dpm.c index bebf31c4d841..e7045b085715 100644 --- a/drivers/gpu/drm/radeon/rv6xx_dpm.c +++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c | |||
@@ -1891,9 +1891,6 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev) | |||
1891 | power_info->pplib.ucNumStates, GFP_KERNEL); | 1891 | power_info->pplib.ucNumStates, GFP_KERNEL); |
1892 | if (!rdev->pm.dpm.ps) | 1892 | if (!rdev->pm.dpm.ps) |
1893 | return -ENOMEM; | 1893 | return -ENOMEM; |
1894 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
1895 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
1896 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
1897 | 1894 | ||
1898 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { | 1895 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { |
1899 | power_state = (union pplib_power_state *) | 1896 | power_state = (union pplib_power_state *) |
@@ -1943,6 +1940,10 @@ int rv6xx_dpm_init(struct radeon_device *rdev) | |||
1943 | return -ENOMEM; | 1940 | return -ENOMEM; |
1944 | rdev->pm.dpm.priv = pi; | 1941 | rdev->pm.dpm.priv = pi; |
1945 | 1942 | ||
1943 | ret = r600_get_platform_caps(rdev); | ||
1944 | if (ret) | ||
1945 | return ret; | ||
1946 | |||
1946 | ret = rv6xx_parse_power_table(rdev); | 1947 | ret = rv6xx_parse_power_table(rdev); |
1947 | if (ret) | 1948 | if (ret) |
1948 | return ret; | 1949 | return ret; |
diff --git a/drivers/gpu/drm/radeon/rv770_dpm.c b/drivers/gpu/drm/radeon/rv770_dpm.c index 5b2ea8ac0731..9098c86ca006 100644 --- a/drivers/gpu/drm/radeon/rv770_dpm.c +++ b/drivers/gpu/drm/radeon/rv770_dpm.c | |||
@@ -2281,9 +2281,6 @@ int rv7xx_parse_power_table(struct radeon_device *rdev) | |||
2281 | power_info->pplib.ucNumStates, GFP_KERNEL); | 2281 | power_info->pplib.ucNumStates, GFP_KERNEL); |
2282 | if (!rdev->pm.dpm.ps) | 2282 | if (!rdev->pm.dpm.ps) |
2283 | return -ENOMEM; | 2283 | return -ENOMEM; |
2284 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
2285 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
2286 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
2287 | 2284 | ||
2288 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { | 2285 | for (i = 0; i < power_info->pplib.ucNumStates; i++) { |
2289 | power_state = (union pplib_power_state *) | 2286 | power_state = (union pplib_power_state *) |
@@ -2361,6 +2358,10 @@ int rv770_dpm_init(struct radeon_device *rdev) | |||
2361 | pi->min_vddc_in_table = 0; | 2358 | pi->min_vddc_in_table = 0; |
2362 | pi->max_vddc_in_table = 0; | 2359 | pi->max_vddc_in_table = 0; |
2363 | 2360 | ||
2361 | ret = r600_get_platform_caps(rdev); | ||
2362 | if (ret) | ||
2363 | return ret; | ||
2364 | |||
2364 | ret = rv7xx_parse_power_table(rdev); | 2365 | ret = rv7xx_parse_power_table(rdev); |
2365 | if (ret) | 2366 | if (ret) |
2366 | return ret; | 2367 | return ret; |
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c index eafb0e6bc67e..d5024778cabe 100644 --- a/drivers/gpu/drm/radeon/si_dpm.c +++ b/drivers/gpu/drm/radeon/si_dpm.c | |||
@@ -6271,9 +6271,6 @@ static int si_parse_power_table(struct radeon_device *rdev) | |||
6271 | if (!rdev->pm.dpm.ps) | 6271 | if (!rdev->pm.dpm.ps) |
6272 | return -ENOMEM; | 6272 | return -ENOMEM; |
6273 | power_state_offset = (u8 *)state_array->states; | 6273 | power_state_offset = (u8 *)state_array->states; |
6274 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
6275 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
6276 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
6277 | for (i = 0; i < state_array->ucNumEntries; i++) { | 6274 | for (i = 0; i < state_array->ucNumEntries; i++) { |
6278 | u8 *idx; | 6275 | u8 *idx; |
6279 | power_state = (union pplib_power_state *)power_state_offset; | 6276 | power_state = (union pplib_power_state *)power_state_offset; |
@@ -6350,6 +6347,10 @@ int si_dpm_init(struct radeon_device *rdev) | |||
6350 | pi->min_vddc_in_table = 0; | 6347 | pi->min_vddc_in_table = 0; |
6351 | pi->max_vddc_in_table = 0; | 6348 | pi->max_vddc_in_table = 0; |
6352 | 6349 | ||
6350 | ret = r600_get_platform_caps(rdev); | ||
6351 | if (ret) | ||
6352 | return ret; | ||
6353 | |||
6353 | ret = si_parse_power_table(rdev); | 6354 | ret = si_parse_power_table(rdev); |
6354 | if (ret) | 6355 | if (ret) |
6355 | return ret; | 6356 | return ret; |
diff --git a/drivers/gpu/drm/radeon/sumo_dpm.c b/drivers/gpu/drm/radeon/sumo_dpm.c index 8b47b3cd0357..3f0e8d7b8dbe 100644 --- a/drivers/gpu/drm/radeon/sumo_dpm.c +++ b/drivers/gpu/drm/radeon/sumo_dpm.c | |||
@@ -1484,9 +1484,6 @@ static int sumo_parse_power_table(struct radeon_device *rdev) | |||
1484 | if (!rdev->pm.dpm.ps) | 1484 | if (!rdev->pm.dpm.ps) |
1485 | return -ENOMEM; | 1485 | return -ENOMEM; |
1486 | power_state_offset = (u8 *)state_array->states; | 1486 | power_state_offset = (u8 *)state_array->states; |
1487 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
1488 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
1489 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
1490 | for (i = 0; i < state_array->ucNumEntries; i++) { | 1487 | for (i = 0; i < state_array->ucNumEntries; i++) { |
1491 | u8 *idx; | 1488 | u8 *idx; |
1492 | power_state = (union pplib_power_state *)power_state_offset; | 1489 | power_state = (union pplib_power_state *)power_state_offset; |
@@ -1772,6 +1769,10 @@ int sumo_dpm_init(struct radeon_device *rdev) | |||
1772 | 1769 | ||
1773 | sumo_construct_boot_and_acpi_state(rdev); | 1770 | sumo_construct_boot_and_acpi_state(rdev); |
1774 | 1771 | ||
1772 | ret = r600_get_platform_caps(rdev); | ||
1773 | if (ret) | ||
1774 | return ret; | ||
1775 | |||
1775 | ret = sumo_parse_power_table(rdev); | 1776 | ret = sumo_parse_power_table(rdev); |
1776 | if (ret) | 1777 | if (ret) |
1777 | return ret; | 1778 | return ret; |
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c index 2da0e17eb960..2a2822c03329 100644 --- a/drivers/gpu/drm/radeon/trinity_dpm.c +++ b/drivers/gpu/drm/radeon/trinity_dpm.c | |||
@@ -1694,9 +1694,6 @@ static int trinity_parse_power_table(struct radeon_device *rdev) | |||
1694 | if (!rdev->pm.dpm.ps) | 1694 | if (!rdev->pm.dpm.ps) |
1695 | return -ENOMEM; | 1695 | return -ENOMEM; |
1696 | power_state_offset = (u8 *)state_array->states; | 1696 | power_state_offset = (u8 *)state_array->states; |
1697 | rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); | ||
1698 | rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); | ||
1699 | rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); | ||
1700 | for (i = 0; i < state_array->ucNumEntries; i++) { | 1697 | for (i = 0; i < state_array->ucNumEntries; i++) { |
1701 | u8 *idx; | 1698 | u8 *idx; |
1702 | power_state = (union pplib_power_state *)power_state_offset; | 1699 | power_state = (union pplib_power_state *)power_state_offset; |
@@ -1895,6 +1892,10 @@ int trinity_dpm_init(struct radeon_device *rdev) | |||
1895 | 1892 | ||
1896 | trinity_construct_boot_state(rdev); | 1893 | trinity_construct_boot_state(rdev); |
1897 | 1894 | ||
1895 | ret = r600_get_platform_caps(rdev); | ||
1896 | if (ret) | ||
1897 | return ret; | ||
1898 | |||
1898 | ret = trinity_parse_power_table(rdev); | 1899 | ret = trinity_parse_power_table(rdev); |
1899 | if (ret) | 1900 | if (ret) |
1900 | return ret; | 1901 | return ret; |