aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorRex Zhu <Rex.Zhu@amd.com>2018-03-16 04:56:58 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-03-19 14:38:31 -0400
commit2538090cb62ab85d8e685bf79c31cc15f41f2629 (patch)
treeee63fc5dd6c3bd811edfdaca417d9d2fa6cd5555 /drivers/gpu
parentc7d30b40a240d6433eb016990632c11e3e7dcc36 (diff)
drm/amd/pp: Delete get_xclk function in powerplay (v2)
use asic's callback function get_xclk in amdgpu v2: squash in removal of leftover debug info (drm/amd/pp: Delete debug info in smu7_hwmgr.c) (Rex) Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Evan Quan <evan.quan@amd.com> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c5
-rw-r--r--drivers/gpu/drm/amd/include/cgs_common.h1
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c27
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h1
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c4
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c4
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h2
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c6
-rw-r--r--drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c2
12 files changed, 15 insertions, 43 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index 37098c68a645..5b37c1ac725c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -715,12 +715,9 @@ static int amdgpu_cgs_get_active_displays_info(struct cgs_device *cgs_device,
715 return -EINVAL; 715 return -EINVAL;
716 716
717 mode_info = info->mode_info; 717 mode_info = info->mode_info;
718 if (mode_info) { 718 if (mode_info)
719 /* if the displays are off, vblank time is max */ 719 /* if the displays are off, vblank time is max */
720 mode_info->vblank_time_us = 0xffffffff; 720 mode_info->vblank_time_us = 0xffffffff;
721 /* always set the reference clock */
722 mode_info->ref_clock = adev->clock.spll.reference_freq;
723 }
724 721
725 if (!amdgpu_device_has_dc_support(adev)) { 722 if (!amdgpu_device_has_dc_support(adev)) {
726 struct amdgpu_crtc *amdgpu_crtc; 723 struct amdgpu_crtc *amdgpu_crtc;
diff --git a/drivers/gpu/drm/amd/include/cgs_common.h b/drivers/gpu/drm/amd/include/cgs_common.h
index 860221924ef7..6ff8f35123c2 100644
--- a/drivers/gpu/drm/amd/include/cgs_common.h
+++ b/drivers/gpu/drm/amd/include/cgs_common.h
@@ -106,7 +106,6 @@ struct cgs_firmware_info {
106 106
107struct cgs_mode_info { 107struct cgs_mode_info {
108 uint32_t refresh_rate; 108 uint32_t refresh_rate;
109 uint32_t ref_clock;
110 uint32_t vblank_time_us; 109 uint32_t vblank_time_us;
111}; 110};
112 111
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
index 7a87209f7258..478e31d5da0f 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
@@ -891,30 +891,6 @@ static int smu7_setup_default_dpm_tables(struct pp_hwmgr *hwmgr)
891 return 0; 891 return 0;
892} 892}
893 893
894uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr)
895{
896 uint32_t reference_clock, tmp;
897 struct cgs_display_info info = {0};
898 struct cgs_mode_info mode_info = {0};
899
900 info.mode_info = &mode_info;
901
902 tmp = PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC, CG_CLKPIN_CNTL_2, MUX_TCLK_TO_XCLK);
903
904 if (tmp)
905 return TCLK;
906
907 cgs_get_active_displays_info(hwmgr->device, &info);
908 reference_clock = mode_info.ref_clock;
909
910 tmp = PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC, CG_CLKPIN_CNTL, XTALIN_DIVIDE);
911
912 if (0 != tmp)
913 return reference_clock / 4;
914
915 return reference_clock;
916}
917
918static int smu7_enable_vrhot_gpio_interrupt(struct pp_hwmgr *hwmgr) 894static int smu7_enable_vrhot_gpio_interrupt(struct pp_hwmgr *hwmgr)
919{ 895{
920 896
@@ -3970,7 +3946,8 @@ static int smu7_program_display_gap(struct pp_hwmgr *hwmgr)
3970 display_gap = PHM_SET_FIELD(display_gap, CG_DISPLAY_GAP_CNTL, DISP_GAP, (num_active_displays > 0) ? DISPLAY_GAP_VBLANK_OR_WM : DISPLAY_GAP_IGNORE); 3946 display_gap = PHM_SET_FIELD(display_gap, CG_DISPLAY_GAP_CNTL, DISP_GAP, (num_active_displays > 0) ? DISPLAY_GAP_VBLANK_OR_WM : DISPLAY_GAP_IGNORE);
3971 cgs_write_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixCG_DISPLAY_GAP_CNTL, display_gap); 3947 cgs_write_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixCG_DISPLAY_GAP_CNTL, display_gap);
3972 3948
3973 ref_clock = mode_info.ref_clock; 3949 ref_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
3950
3974 refresh_rate = mode_info.refresh_rate; 3951 refresh_rate = mode_info.refresh_rate;
3975 3952
3976 if (0 == refresh_rate) 3953 if (0 == refresh_rate)
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h
index 3bcfc61cd5a2..f40179c9ca97 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h
@@ -361,7 +361,6 @@ enum SMU7_I2CLineID {
361#define SMU7_I2C_DDCVGACLK 0x4d 361#define SMU7_I2C_DDCVGACLK 0x4d
362 362
363#define SMU7_UNUSED_GPIO_PIN 0x7F 363#define SMU7_UNUSED_GPIO_PIN 0x7F
364uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr);
365uint8_t smu7_get_sleep_divider_id_from_clock(uint32_t clock, 364uint8_t smu7_get_sleep_divider_id_from_clock(uint32_t clock,
366 uint32_t clock_insr); 365 uint32_t clock_insr);
367#endif 366#endif
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c
index f6573ed0357d..4dd26eb731b5 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c
@@ -95,7 +95,7 @@ int smu7_fan_ctrl_get_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t *speed)
95 if (tach_period == 0) 95 if (tach_period == 0)
96 return -EINVAL; 96 return -EINVAL;
97 97
98 crystal_clock_freq = smu7_get_xclk(hwmgr); 98 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
99 99
100 *speed = 60 * crystal_clock_freq * 10000 / tach_period; 100 *speed = 60 * crystal_clock_freq * 10000 / tach_period;
101 101
@@ -267,7 +267,7 @@ int smu7_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
267 if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl)) 267 if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
268 smu7_fan_ctrl_stop_smc_fan_control(hwmgr); 268 smu7_fan_ctrl_stop_smc_fan_control(hwmgr);
269 269
270 crystal_clock_freq = smu7_get_xclk(hwmgr); 270 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
271 271
272 tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed); 272 tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed);
273 273
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
index 0147267306d3..444337a19eee 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
@@ -110,7 +110,7 @@ int vega10_fan_ctrl_get_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t *speed)
110 if (tach_period == 0) 110 if (tach_period == 0)
111 return -EINVAL; 111 return -EINVAL;
112 112
113 crystal_clock_freq = smu7_get_xclk(hwmgr); 113 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
114 114
115 *speed = 60 * crystal_clock_freq * 10000 / tach_period; 115 *speed = 60 * crystal_clock_freq * 10000 / tach_period;
116 } 116 }
@@ -331,7 +331,7 @@ int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
331 result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr); 331 result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
332 332
333 if (!result) { 333 if (!result) {
334 crystal_clock_freq = smu7_get_xclk(hwmgr); 334 crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
335 tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed); 335 tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed);
336 reg = soc15_get_register_offset(THM_HWID, 0, 336 reg = soc15_get_register_offset(THM_HWID, 0,
337 mmCG_TACH_STATUS_BASE_IDX, mmCG_TACH_STATUS); 337 mmCG_TACH_STATUS_BASE_IDX, mmCG_TACH_STATUS);
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
index 82f10bdd5f07..21e7c4dfa2ca 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
@@ -73,7 +73,7 @@ extern int vega10_thermal_disable_alert(struct pp_hwmgr *hwmgr);
73extern int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr); 73extern int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr);
74extern int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr, 74extern int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr,
75 struct PP_TemperatureRange *range); 75 struct PP_TemperatureRange *range);
76extern uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr); 76
77 77
78#endif 78#endif
79 79
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
index 5d6dfdfbbbb6..08d000140eca 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
@@ -2222,7 +2222,7 @@ static int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
2222 2222
2223 fan_table.TempRespLim = cpu_to_be16(5); 2223 fan_table.TempRespLim = cpu_to_be16(5);
2224 2224
2225 reference_clock = smu7_get_xclk(hwmgr); 2225 reference_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
2226 2226
2227 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600); 2227 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600);
2228 2228
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
index 95fcda37f890..43432e4c7bdc 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
@@ -2254,7 +2254,7 @@ static int fiji_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
2254 2254
2255 fan_table.TempRespLim = cpu_to_be16(5); 2255 fan_table.TempRespLim = cpu_to_be16(5);
2256 2256
2257 reference_clock = smu7_get_xclk(hwmgr); 2257 reference_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
2258 2258
2259 fan_table.RefreshPeriod = cpu_to_be32((hwmgr-> 2259 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->
2260 thermal_controller.advanceFanControlParameters.ulCycleDelay * 2260 thermal_controller.advanceFanControlParameters.ulCycleDelay *
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
index 4e2f62e659ef..d4bb934e7334 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
@@ -2158,7 +2158,7 @@ int iceland_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
2158 2158
2159 fan_table.TempRespLim = cpu_to_be16(5); 2159 fan_table.TempRespLim = cpu_to_be16(5);
2160 2160
2161 reference_clock = smu7_get_xclk(hwmgr); 2161 reference_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
2162 2162
2163 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600); 2163 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600);
2164 2164
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
index 03ec1e59876b..f6b12980c87c 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
@@ -811,7 +811,7 @@ static void polaris10_get_sclk_range_table(struct pp_hwmgr *hwmgr,
811 811
812 struct pp_atom_ctrl_sclk_range_table range_table_from_vbios = { { {0} } }; 812 struct pp_atom_ctrl_sclk_range_table range_table_from_vbios = { { {0} } };
813 813
814 ref_clk = smu7_get_xclk(hwmgr); 814 ref_clk = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
815 815
816 if (0 == atomctrl_get_smc_sclk_range_table(hwmgr, &range_table_from_vbios)) { 816 if (0 == atomctrl_get_smc_sclk_range_table(hwmgr, &range_table_from_vbios)) {
817 for (i = 0; i < NUM_SCLK_RANGE; i++) { 817 for (i = 0; i < NUM_SCLK_RANGE; i++) {
@@ -876,7 +876,7 @@ static int polaris10_calculate_sclk_params(struct pp_hwmgr *hwmgr,
876 return result; 876 return result;
877 } 877 }
878 878
879 ref_clock = smu7_get_xclk(hwmgr); 879 ref_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
880 880
881 for (i = 0; i < NUM_SCLK_RANGE; i++) { 881 for (i = 0; i < NUM_SCLK_RANGE; i++) {
882 if (clock > smu_data->range_table[i].trans_lower_frequency 882 if (clock > smu_data->range_table[i].trans_lower_frequency
@@ -2132,7 +2132,7 @@ static int polaris10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
2132 2132
2133 fan_table.TempRespLim = cpu_to_be16(5); 2133 fan_table.TempRespLim = cpu_to_be16(5);
2134 2134
2135 reference_clock = smu7_get_xclk(hwmgr); 2135 reference_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
2136 2136
2137 fan_table.RefreshPeriod = cpu_to_be32((hwmgr-> 2137 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->
2138 thermal_controller.advanceFanControlParameters.ulCycleDelay * 2138 thermal_controller.advanceFanControlParameters.ulCycleDelay *
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
index 26cca8cce8f1..b51d7468c3e7 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
@@ -2574,7 +2574,7 @@ static int tonga_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
2574 2574
2575 fan_table.TempRespLim = cpu_to_be16(5); 2575 fan_table.TempRespLim = cpu_to_be16(5);
2576 2576
2577 reference_clock = smu7_get_xclk(hwmgr); 2577 reference_clock = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
2578 2578
2579 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600); 2579 fan_table.RefreshPeriod = cpu_to_be32((hwmgr->thermal_controller.advanceFanControlParameters.ulCycleDelay * reference_clock) / 1600);
2580 2580