aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h71
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c30
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c15
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c2
6 files changed, 65 insertions, 61 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 8b1ff13d50cc..637eff393bc7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -2040,6 +2040,7 @@ struct amdgpu_device {
2040 2040
2041 /* powerplay */ 2041 /* powerplay */
2042 struct amd_powerplay powerplay; 2042 struct amd_powerplay powerplay;
2043 bool pp_enabled;
2043 2044
2044 /* dpm */ 2045 /* dpm */
2045 struct amdgpu_pm pm; 2046 struct amdgpu_pm pm;
@@ -2268,68 +2269,68 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
2268#define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e)) 2269#define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e))
2269 2270
2270#define amdgpu_dpm_get_temperature(adev) \ 2271#define amdgpu_dpm_get_temperature(adev) \
2271 amdgpu_powerplay ? \ 2272 (adev)->pp_enabled ? \
2272 (adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle) : \ 2273 (adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle) : \
2273 (adev)->pm.funcs->get_temperature((adev)) 2274 (adev)->pm.funcs->get_temperature((adev))
2274 2275
2275#define amdgpu_dpm_set_fan_control_mode(adev, m) \ 2276#define amdgpu_dpm_set_fan_control_mode(adev, m) \
2276 amdgpu_powerplay ? \ 2277 (adev)->pp_enabled ? \
2277 (adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)) : \ 2278 (adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)) : \
2278 (adev)->pm.funcs->set_fan_control_mode((adev), (m)) 2279 (adev)->pm.funcs->set_fan_control_mode((adev), (m))
2279 2280
2280#define amdgpu_dpm_get_fan_control_mode(adev) \ 2281#define amdgpu_dpm_get_fan_control_mode(adev) \
2281 amdgpu_powerplay ? \ 2282 (adev)->pp_enabled ? \
2282 (adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle) : \ 2283 (adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle) : \
2283 (adev)->pm.funcs->get_fan_control_mode((adev)) 2284 (adev)->pm.funcs->get_fan_control_mode((adev))
2284 2285
2285#define amdgpu_dpm_set_fan_speed_percent(adev, s) \ 2286#define amdgpu_dpm_set_fan_speed_percent(adev, s) \
2286 amdgpu_powerplay ? \ 2287 (adev)->pp_enabled ? \
2287 (adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ 2288 (adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \
2288 (adev)->pm.funcs->set_fan_speed_percent((adev), (s)) 2289 (adev)->pm.funcs->set_fan_speed_percent((adev), (s))
2289 2290
2290#define amdgpu_dpm_get_fan_speed_percent(adev, s) \ 2291#define amdgpu_dpm_get_fan_speed_percent(adev, s) \
2291 amdgpu_powerplay ? \ 2292 (adev)->pp_enabled ? \
2292 (adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ 2293 (adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \
2293 (adev)->pm.funcs->get_fan_speed_percent((adev), (s)) 2294 (adev)->pm.funcs->get_fan_speed_percent((adev), (s))
2294 2295
2295#define amdgpu_dpm_get_sclk(adev, l) \ 2296#define amdgpu_dpm_get_sclk(adev, l) \
2296 amdgpu_powerplay ? \ 2297 (adev)->pp_enabled ? \
2297 (adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)) : \ 2298 (adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)) : \
2298 (adev)->pm.funcs->get_sclk((adev), (l)) 2299 (adev)->pm.funcs->get_sclk((adev), (l))
2299 2300
2300#define amdgpu_dpm_get_mclk(adev, l) \ 2301#define amdgpu_dpm_get_mclk(adev, l) \
2301 amdgpu_powerplay ? \ 2302 (adev)->pp_enabled ? \
2302 (adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)) : \ 2303 (adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)) : \
2303 (adev)->pm.funcs->get_mclk((adev), (l)) 2304 (adev)->pm.funcs->get_mclk((adev), (l))
2304 2305
2305 2306
2306#define amdgpu_dpm_force_performance_level(adev, l) \ 2307#define amdgpu_dpm_force_performance_level(adev, l) \
2307 amdgpu_powerplay ? \ 2308 (adev)->pp_enabled ? \
2308 (adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)) : \ 2309 (adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)) : \
2309 (adev)->pm.funcs->force_performance_level((adev), (l)) 2310 (adev)->pm.funcs->force_performance_level((adev), (l))
2310 2311
2311#define amdgpu_dpm_powergate_uvd(adev, g) \ 2312#define amdgpu_dpm_powergate_uvd(adev, g) \
2312 amdgpu_powerplay ? \ 2313 (adev)->pp_enabled ? \
2313 (adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)) : \ 2314 (adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)) : \
2314 (adev)->pm.funcs->powergate_uvd((adev), (g)) 2315 (adev)->pm.funcs->powergate_uvd((adev), (g))
2315 2316
2316#define amdgpu_dpm_powergate_vce(adev, g) \ 2317#define amdgpu_dpm_powergate_vce(adev, g) \
2317 amdgpu_powerplay ? \ 2318 (adev)->pp_enabled ? \
2318 (adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)) : \ 2319 (adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)) : \
2319 (adev)->pm.funcs->powergate_vce((adev), (g)) 2320 (adev)->pm.funcs->powergate_vce((adev), (g))
2320 2321
2321#define amdgpu_dpm_debugfs_print_current_performance_level(adev, m) \ 2322#define amdgpu_dpm_debugfs_print_current_performance_level(adev, m) \
2322 amdgpu_powerplay ? \ 2323 (adev)->pp_enabled ? \
2323 (adev)->powerplay.pp_funcs->print_current_performance_level((adev)->powerplay.pp_handle, (m)) : \ 2324 (adev)->powerplay.pp_funcs->print_current_performance_level((adev)->powerplay.pp_handle, (m)) : \
2324 (adev)->pm.funcs->debugfs_print_current_performance_level((adev), (m)) 2325 (adev)->pm.funcs->debugfs_print_current_performance_level((adev), (m))
2325 2326
2326#define amdgpu_dpm_get_current_power_state(adev) \ 2327#define amdgpu_dpm_get_current_power_state(adev) \
2327 (adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle) 2328 (adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle)
2328 2329
2329#define amdgpu_dpm_get_performance_level(adev) \ 2330#define amdgpu_dpm_get_performance_level(adev) \
2330 (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) 2331 (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle)
2331 2332
2332#define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \ 2333#define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \
2333 (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output)) 2334 (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output))
2334 2335
2335#define amdgpu_gds_switch(adev, r, v, d, w, a) (adev)->gds.funcs->patch_gds_switch((r), (v), (d), (w), (a)) 2336#define amdgpu_gds_switch(adev, r, v, d, w, a) (adev)->gds.funcs->patch_gds_switch((r), (v), (d), (w), (a))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index a15ca4c7cf60..b5dbbb573491 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -82,7 +82,7 @@ int amdgpu_enable_scheduler = 1;
82int amdgpu_sched_jobs = 32; 82int amdgpu_sched_jobs = 32;
83int amdgpu_sched_hw_submission = 2; 83int amdgpu_sched_hw_submission = 2;
84int amdgpu_enable_semaphores = 0; 84int amdgpu_enable_semaphores = 0;
85int amdgpu_powerplay = 0; 85int amdgpu_powerplay = -1;
86 86
87MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes"); 87MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes");
88module_param_named(vramlimit, amdgpu_vram_limit, int, 0600); 88module_param_named(vramlimit, amdgpu_vram_limit, int, 0600);
@@ -166,7 +166,7 @@ MODULE_PARM_DESC(enable_semaphores, "Enable semaphores (1 = enable, 0 = disable
166module_param_named(enable_semaphores, amdgpu_enable_semaphores, int, 0644); 166module_param_named(enable_semaphores, amdgpu_enable_semaphores, int, 0644);
167 167
168#ifdef CONFIG_DRM_AMD_POWERPLAY 168#ifdef CONFIG_DRM_AMD_POWERPLAY
169MODULE_PARM_DESC(powerplay, "Powerplay component (1 = enable, 0 = disable (default))"); 169MODULE_PARM_DESC(powerplay, "Powerplay component (1 = enable, 0 = disable, -1 = auto (default))");
170module_param_named(powerplay, amdgpu_powerplay, int, 0444); 170module_param_named(powerplay, amdgpu_powerplay, int, 0444);
171#endif 171#endif
172 172
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index 40ae30530a01..3b78982abaf1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -36,7 +36,7 @@ static int amdgpu_debugfs_pm_init(struct amdgpu_device *adev);
36 36
37void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev) 37void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev)
38{ 38{
39 if (amdgpu_powerplay) 39 if (adev->pp_enabled)
40 /* TODO */ 40 /* TODO */
41 return; 41 return;
42 42
@@ -60,7 +60,7 @@ static ssize_t amdgpu_get_dpm_state(struct device *dev,
60 struct amdgpu_device *adev = ddev->dev_private; 60 struct amdgpu_device *adev = ddev->dev_private;
61 enum amd_pm_state_type pm; 61 enum amd_pm_state_type pm;
62 62
63 if (amdgpu_powerplay) { 63 if (adev->pp_enabled) {
64 pm = amdgpu_dpm_get_current_power_state(adev); 64 pm = amdgpu_dpm_get_current_power_state(adev);
65 } else 65 } else
66 pm = adev->pm.dpm.user_state; 66 pm = adev->pm.dpm.user_state;
@@ -90,7 +90,7 @@ static ssize_t amdgpu_set_dpm_state(struct device *dev,
90 goto fail; 90 goto fail;
91 } 91 }
92 92
93 if (amdgpu_powerplay) { 93 if (adev->pp_enabled) {
94 amdgpu_dpm_dispatch_task(adev, AMD_PP_EVENT_ENABLE_USER_STATE, &state, NULL); 94 amdgpu_dpm_dispatch_task(adev, AMD_PP_EVENT_ENABLE_USER_STATE, &state, NULL);
95 } else { 95 } else {
96 mutex_lock(&adev->pm.mutex); 96 mutex_lock(&adev->pm.mutex);
@@ -113,7 +113,7 @@ static ssize_t amdgpu_get_dpm_forced_performance_level(struct device *dev,
113 struct drm_device *ddev = dev_get_drvdata(dev); 113 struct drm_device *ddev = dev_get_drvdata(dev);
114 struct amdgpu_device *adev = ddev->dev_private; 114 struct amdgpu_device *adev = ddev->dev_private;
115 115
116 if (amdgpu_powerplay) { 116 if (adev->pp_enabled) {
117 enum amd_dpm_forced_level level; 117 enum amd_dpm_forced_level level;
118 118
119 level = amdgpu_dpm_get_performance_level(adev); 119 level = amdgpu_dpm_get_performance_level(adev);
@@ -151,7 +151,7 @@ static ssize_t amdgpu_set_dpm_forced_performance_level(struct device *dev,
151 goto fail; 151 goto fail;
152 } 152 }
153 153
154 if (amdgpu_powerplay) 154 if (adev->pp_enabled)
155 amdgpu_dpm_force_performance_level(adev, level); 155 amdgpu_dpm_force_performance_level(adev, level);
156 else { 156 else {
157 mutex_lock(&adev->pm.mutex); 157 mutex_lock(&adev->pm.mutex);
@@ -184,7 +184,7 @@ static ssize_t amdgpu_hwmon_show_temp(struct device *dev,
184 struct amdgpu_device *adev = dev_get_drvdata(dev); 184 struct amdgpu_device *adev = dev_get_drvdata(dev);
185 int temp; 185 int temp;
186 186
187 if (!amdgpu_powerplay && !adev->pm.funcs->get_temperature) 187 if (!adev->pp_enabled && !adev->pm.funcs->get_temperature)
188 temp = 0; 188 temp = 0;
189 else 189 else
190 temp = amdgpu_dpm_get_temperature(adev); 190 temp = amdgpu_dpm_get_temperature(adev);
@@ -215,7 +215,7 @@ static ssize_t amdgpu_hwmon_get_pwm1_enable(struct device *dev,
215 struct amdgpu_device *adev = dev_get_drvdata(dev); 215 struct amdgpu_device *adev = dev_get_drvdata(dev);
216 u32 pwm_mode = 0; 216 u32 pwm_mode = 0;
217 217
218 if (!amdgpu_powerplay && !adev->pm.funcs->get_fan_control_mode) 218 if (!adev->pp_enabled && !adev->pm.funcs->get_fan_control_mode)
219 return -EINVAL; 219 return -EINVAL;
220 220
221 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev); 221 pwm_mode = amdgpu_dpm_get_fan_control_mode(adev);
@@ -233,7 +233,7 @@ static ssize_t amdgpu_hwmon_set_pwm1_enable(struct device *dev,
233 int err; 233 int err;
234 int value; 234 int value;
235 235
236 if (!amdgpu_powerplay && !adev->pm.funcs->set_fan_control_mode) 236 if (!adev->pp_enabled && !adev->pm.funcs->set_fan_control_mode)
237 return -EINVAL; 237 return -EINVAL;
238 238
239 err = kstrtoint(buf, 10, &value); 239 err = kstrtoint(buf, 10, &value);
@@ -340,7 +340,7 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj,
340 attr == &sensor_dev_attr_pwm1_min.dev_attr.attr)) 340 attr == &sensor_dev_attr_pwm1_min.dev_attr.attr))
341 return 0; 341 return 0;
342 342
343 if (amdgpu_powerplay) 343 if (adev->pp_enabled)
344 return effective_mode; 344 return effective_mode;
345 345
346 /* Skip fan attributes if fan is not present */ 346 /* Skip fan attributes if fan is not present */
@@ -674,7 +674,7 @@ done:
674 674
675void amdgpu_dpm_enable_uvd(struct amdgpu_device *adev, bool enable) 675void amdgpu_dpm_enable_uvd(struct amdgpu_device *adev, bool enable)
676{ 676{
677 if (amdgpu_powerplay) 677 if (adev->pp_enabled)
678 amdgpu_dpm_powergate_uvd(adev, !enable); 678 amdgpu_dpm_powergate_uvd(adev, !enable);
679 else { 679 else {
680 if (adev->pm.funcs->powergate_uvd) { 680 if (adev->pm.funcs->powergate_uvd) {
@@ -701,7 +701,7 @@ void amdgpu_dpm_enable_uvd(struct amdgpu_device *adev, bool enable)
701 701
702void amdgpu_dpm_enable_vce(struct amdgpu_device *adev, bool enable) 702void amdgpu_dpm_enable_vce(struct amdgpu_device *adev, bool enable)
703{ 703{
704 if (amdgpu_powerplay) 704 if (adev->pp_enabled)
705 amdgpu_dpm_powergate_vce(adev, !enable); 705 amdgpu_dpm_powergate_vce(adev, !enable);
706 else { 706 else {
707 if (adev->pm.funcs->powergate_vce) { 707 if (adev->pm.funcs->powergate_vce) {
@@ -729,7 +729,7 @@ void amdgpu_pm_print_power_states(struct amdgpu_device *adev)
729{ 729{
730 int i; 730 int i;
731 731
732 if (amdgpu_powerplay) 732 if (adev->pp_enabled)
733 /* TO DO */ 733 /* TO DO */
734 return; 734 return;
735 735
@@ -745,7 +745,7 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
745 if (adev->pm.sysfs_initialized) 745 if (adev->pm.sysfs_initialized)
746 return 0; 746 return 0;
747 747
748 if (!amdgpu_powerplay) { 748 if (!adev->pp_enabled) {
749 if (adev->pm.funcs->get_temperature == NULL) 749 if (adev->pm.funcs->get_temperature == NULL)
750 return 0; 750 return 0;
751 } 751 }
@@ -798,7 +798,7 @@ void amdgpu_pm_compute_clocks(struct amdgpu_device *adev)
798 if (!adev->pm.dpm_enabled) 798 if (!adev->pm.dpm_enabled)
799 return; 799 return;
800 800
801 if (amdgpu_powerplay) { 801 if (adev->pp_enabled) {
802 int i = 0; 802 int i = 0;
803 803
804 amdgpu_display_bandwidth_update(adev); 804 amdgpu_display_bandwidth_update(adev);
@@ -852,7 +852,7 @@ static int amdgpu_debugfs_pm_info(struct seq_file *m, void *data)
852 seq_printf(m, "dpm not enabled\n"); 852 seq_printf(m, "dpm not enabled\n");
853 return 0; 853 return 0;
854 } 854 }
855 if (amdgpu_powerplay) { 855 if (adev->pp_enabled) {
856 amdgpu_dpm_debugfs_print_current_performance_level(adev, m); 856 amdgpu_dpm_debugfs_print_current_performance_level(adev, m);
857 } else { 857 } else {
858 mutex_lock(&adev->pm.mutex); 858 mutex_lock(&adev->pm.mutex);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c
index 1ff6fd54df61..6b46fbfd6be4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c
@@ -40,7 +40,7 @@ static int amdgpu_powerplay_init(struct amdgpu_device *adev)
40 40
41 amd_pp = &(adev->powerplay); 41 amd_pp = &(adev->powerplay);
42 42
43 if (amdgpu_powerplay) { 43 if (adev->pp_enabled) {
44#ifdef CONFIG_DRM_AMD_POWERPLAY 44#ifdef CONFIG_DRM_AMD_POWERPLAY
45 struct amd_pp_init *pp_init; 45 struct amd_pp_init *pp_init;
46 46
@@ -100,11 +100,14 @@ static int amdgpu_pp_early_init(void *handle)
100 switch (adev->asic_type) { 100 switch (adev->asic_type) {
101 case CHIP_TONGA: 101 case CHIP_TONGA:
102 case CHIP_FIJI: 102 case CHIP_FIJI:
103 amdgpu_powerplay = 1; 103 adev->pp_enabled = (amdgpu_powerplay == 0) ? false : true;
104 break; 104 break;
105 default: 105 default:
106 adev->pp_enabled = (amdgpu_powerplay > 0) ? true : false;
106 break; 107 break;
107 } 108 }
109#else
110 adev->pp_enabled = false;
108#endif 111#endif
109 112
110 ret = amdgpu_powerplay_init(adev); 113 ret = amdgpu_powerplay_init(adev);
@@ -127,7 +130,7 @@ static int amdgpu_pp_sw_init(void *handle)
127 adev->powerplay.pp_handle); 130 adev->powerplay.pp_handle);
128 131
129#ifdef CONFIG_DRM_AMD_POWERPLAY 132#ifdef CONFIG_DRM_AMD_POWERPLAY
130 if (amdgpu_powerplay) { 133 if (adev->pp_enabled) {
131 adev->pm.dpm_enabled = true; 134 adev->pm.dpm_enabled = true;
132 amdgpu_pm_sysfs_init(adev); 135 amdgpu_pm_sysfs_init(adev);
133 } 136 }
@@ -148,7 +151,7 @@ static int amdgpu_pp_sw_fini(void *handle)
148 return ret; 151 return ret;
149 152
150#ifdef CONFIG_DRM_AMD_POWERPLAY 153#ifdef CONFIG_DRM_AMD_POWERPLAY
151 if (amdgpu_powerplay) { 154 if (adev->pp_enabled) {
152 amdgpu_pm_sysfs_fini(adev); 155 amdgpu_pm_sysfs_fini(adev);
153 amd_powerplay_fini(adev->powerplay.pp_handle); 156 amd_powerplay_fini(adev->powerplay.pp_handle);
154 } 157 }
@@ -162,7 +165,7 @@ static int amdgpu_pp_hw_init(void *handle)
162 int ret = 0; 165 int ret = 0;
163 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 166 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
164 167
165 if (amdgpu_powerplay && adev->firmware.smu_load) 168 if (adev->pp_enabled && adev->firmware.smu_load)
166 amdgpu_ucode_init_bo(adev); 169 amdgpu_ucode_init_bo(adev);
167 170
168 if (adev->powerplay.ip_funcs->hw_init) 171 if (adev->powerplay.ip_funcs->hw_init)
@@ -181,7 +184,7 @@ static int amdgpu_pp_hw_fini(void *handle)
181 ret = adev->powerplay.ip_funcs->hw_fini( 184 ret = adev->powerplay.ip_funcs->hw_fini(
182 adev->powerplay.pp_handle); 185 adev->powerplay.pp_handle);
183 186
184 if (amdgpu_powerplay && adev->firmware.smu_load) 187 if (adev->pp_enabled && adev->firmware.smu_load)
185 amdgpu_ucode_fini_bo(adev); 188 amdgpu_ucode_fini_bo(adev);
186 189
187 return ret; 190 return ret;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index d90aae08445e..6c063a4a2c38 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -2902,7 +2902,7 @@ static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
2902 2902
2903 gfx_v8_0_rlc_reset(adev); 2903 gfx_v8_0_rlc_reset(adev);
2904 2904
2905 if (!amdgpu_powerplay) { 2905 if (!adev->pp_enabled) {
2906 if (!adev->firmware.smu_load) { 2906 if (!adev->firmware.smu_load) {
2907 /* legacy rlc firmware loading */ 2907 /* legacy rlc firmware loading */
2908 r = gfx_v8_0_rlc_load_microcode(adev); 2908 r = gfx_v8_0_rlc_load_microcode(adev);
@@ -3804,7 +3804,7 @@ static int gfx_v8_0_cp_resume(struct amdgpu_device *adev)
3804 if (!(adev->flags & AMD_IS_APU)) 3804 if (!(adev->flags & AMD_IS_APU))
3805 gfx_v8_0_enable_gui_idle_interrupt(adev, false); 3805 gfx_v8_0_enable_gui_idle_interrupt(adev, false);
3806 3806
3807 if (!amdgpu_powerplay) { 3807 if (!adev->pp_enabled) {
3808 if (!adev->firmware.smu_load) { 3808 if (!adev->firmware.smu_load) {
3809 /* legacy firmware loading */ 3809 /* legacy firmware loading */
3810 r = gfx_v8_0_cp_gfx_load_microcode(adev); 3810 r = gfx_v8_0_cp_gfx_load_microcode(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
index 8091c1c37c4e..c741c091bc9e 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -727,7 +727,7 @@ static int sdma_v3_0_start(struct amdgpu_device *adev)
727{ 727{
728 int r, i; 728 int r, i;
729 729
730 if (!amdgpu_powerplay) { 730 if (!adev->pp_enabled) {
731 if (!adev->firmware.smu_load) { 731 if (!adev->firmware.smu_load) {
732 r = sdma_v3_0_load_microcode(adev); 732 r = sdma_v3_0_load_microcode(adev);
733 if (r) 733 if (r)