diff options
author | Huang Rui <ray.huang@amd.com> | 2016-11-01 03:35:38 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-03-29 23:54:33 -0400 |
commit | e635ee07456ac686b3c26ab3c5735936faebfb2e (patch) | |
tree | 7bca30692c4879c9436134ab3fad8a27b6c0f09d | |
parent | 70170d146d0f8d6df6c1edafa70cf983027f7a6e (diff) |
drm/amdgpu: use new flag to handle different firmware loading method
This patch introduces a new flag named "amdgpu_firmware_load_type" to
handle different firmware loading method. Since Vega10, there are
three ways to load firmware. It would be better to use a flag and a
fw_load_type kernel parameter to configure it.
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 67 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vi.c | 4 |
10 files changed, 90 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index a7108ba94794..c83d7bd5b712 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -81,7 +81,7 @@ extern int amdgpu_pcie_gen2; | |||
81 | extern int amdgpu_msi; | 81 | extern int amdgpu_msi; |
82 | extern int amdgpu_lockup_timeout; | 82 | extern int amdgpu_lockup_timeout; |
83 | extern int amdgpu_dpm; | 83 | extern int amdgpu_dpm; |
84 | extern int amdgpu_smc_load_fw; | 84 | extern int amdgpu_fw_load_type; |
85 | extern int amdgpu_aspm; | 85 | extern int amdgpu_aspm; |
86 | extern int amdgpu_runtime_pm; | 86 | extern int amdgpu_runtime_pm; |
87 | extern unsigned amdgpu_ip_block_mask; | 87 | extern unsigned amdgpu_ip_block_mask; |
@@ -1063,9 +1063,15 @@ struct amdgpu_sdma { | |||
1063 | /* | 1063 | /* |
1064 | * Firmware | 1064 | * Firmware |
1065 | */ | 1065 | */ |
1066 | enum amdgpu_firmware_load_type { | ||
1067 | AMDGPU_FW_LOAD_DIRECT = 0, | ||
1068 | AMDGPU_FW_LOAD_SMU, | ||
1069 | AMDGPU_FW_LOAD_PSP, | ||
1070 | }; | ||
1071 | |||
1066 | struct amdgpu_firmware { | 1072 | struct amdgpu_firmware { |
1067 | struct amdgpu_firmware_info ucode[AMDGPU_UCODE_ID_MAXIMUM]; | 1073 | struct amdgpu_firmware_info ucode[AMDGPU_UCODE_ID_MAXIMUM]; |
1068 | bool smu_load; | 1074 | enum amdgpu_firmware_load_type load_type; |
1069 | struct amdgpu_bo *fw_buf; | 1075 | struct amdgpu_bo *fw_buf; |
1070 | unsigned int fw_size; | 1076 | unsigned int fw_size; |
1071 | }; | 1077 | }; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 778d16f835ab..7292f4e7bb1a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |||
@@ -80,7 +80,7 @@ int amdgpu_pcie_gen2 = -1; | |||
80 | int amdgpu_msi = -1; | 80 | int amdgpu_msi = -1; |
81 | int amdgpu_lockup_timeout = 0; | 81 | int amdgpu_lockup_timeout = 0; |
82 | int amdgpu_dpm = -1; | 82 | int amdgpu_dpm = -1; |
83 | int amdgpu_smc_load_fw = 1; | 83 | int amdgpu_fw_load_type = -1; |
84 | int amdgpu_aspm = -1; | 84 | int amdgpu_aspm = -1; |
85 | int amdgpu_runtime_pm = -1; | 85 | int amdgpu_runtime_pm = -1; |
86 | unsigned amdgpu_ip_block_mask = 0xffffffff; | 86 | unsigned amdgpu_ip_block_mask = 0xffffffff; |
@@ -140,8 +140,8 @@ module_param_named(lockup_timeout, amdgpu_lockup_timeout, int, 0444); | |||
140 | MODULE_PARM_DESC(dpm, "DPM support (1 = enable, 0 = disable, -1 = auto)"); | 140 | MODULE_PARM_DESC(dpm, "DPM support (1 = enable, 0 = disable, -1 = auto)"); |
141 | module_param_named(dpm, amdgpu_dpm, int, 0444); | 141 | module_param_named(dpm, amdgpu_dpm, int, 0444); |
142 | 142 | ||
143 | MODULE_PARM_DESC(smc_load_fw, "SMC firmware loading(1 = enable, 0 = disable)"); | 143 | MODULE_PARM_DESC(fw_load_type, "firmware loading type (0 = direct, 1 = SMU, 2 = PSP, -1 = auto)"); |
144 | module_param_named(smc_load_fw, amdgpu_smc_load_fw, int, 0444); | 144 | module_param_named(fw_load_type, amdgpu_fw_load_type, int, 0444); |
145 | 145 | ||
146 | MODULE_PARM_DESC(aspm, "ASPM support (1 = enable, 0 = disable, -1 = auto)"); | 146 | MODULE_PARM_DESC(aspm, "ASPM support (1 = enable, 0 = disable, -1 = auto)"); |
147 | module_param_named(aspm, amdgpu_aspm, int, 0444); | 147 | module_param_named(aspm, amdgpu_aspm, int, 0444); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c index d56d200a3646..96a5113b948f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | |||
@@ -163,7 +163,7 @@ static int amdgpu_pp_hw_init(void *handle) | |||
163 | int ret = 0; | 163 | int ret = 0; |
164 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 164 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
165 | 165 | ||
166 | if (adev->pp_enabled && adev->firmware.smu_load) | 166 | if (adev->pp_enabled && adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) |
167 | amdgpu_ucode_init_bo(adev); | 167 | amdgpu_ucode_init_bo(adev); |
168 | 168 | ||
169 | if (adev->powerplay.ip_funcs->hw_init) | 169 | if (adev->powerplay.ip_funcs->hw_init) |
@@ -190,7 +190,7 @@ static int amdgpu_pp_hw_fini(void *handle) | |||
190 | ret = adev->powerplay.ip_funcs->hw_fini( | 190 | ret = adev->powerplay.ip_funcs->hw_fini( |
191 | adev->powerplay.pp_handle); | 191 | adev->powerplay.pp_handle); |
192 | 192 | ||
193 | if (adev->pp_enabled && adev->firmware.smu_load) | 193 | if (adev->pp_enabled && adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) |
194 | amdgpu_ucode_fini_bo(adev); | 194 | amdgpu_ucode_fini_bo(adev); |
195 | 195 | ||
196 | return ret; | 196 | return ret; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c index be16377128c3..73c3e664d99a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | |||
@@ -217,6 +217,49 @@ bool amdgpu_ucode_hdr_version(union amdgpu_firmware_header *hdr, | |||
217 | return true; | 217 | return true; |
218 | } | 218 | } |
219 | 219 | ||
220 | enum amdgpu_firmware_load_type | ||
221 | amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type) | ||
222 | { | ||
223 | switch (adev->asic_type) { | ||
224 | #ifdef CONFIG_DRM_AMDGPU_SI | ||
225 | case CHIP_TAHITI: | ||
226 | case CHIP_PITCAIRN: | ||
227 | case CHIP_VERDE: | ||
228 | case CHIP_OLAND: | ||
229 | return AMDGPU_FW_LOAD_DIRECT; | ||
230 | #endif | ||
231 | #ifdef CONFIG_DRM_AMDGPU_CIK | ||
232 | case CHIP_BONAIRE: | ||
233 | case CHIP_KAVERI: | ||
234 | case CHIP_KABINI: | ||
235 | case CHIP_HAWAII: | ||
236 | case CHIP_MULLINS: | ||
237 | return AMDGPU_FW_LOAD_DIRECT; | ||
238 | #endif | ||
239 | case CHIP_TOPAZ: | ||
240 | case CHIP_TONGA: | ||
241 | case CHIP_FIJI: | ||
242 | case CHIP_CARRIZO: | ||
243 | case CHIP_STONEY: | ||
244 | case CHIP_POLARIS10: | ||
245 | case CHIP_POLARIS11: | ||
246 | case CHIP_POLARIS12: | ||
247 | if (!load_type) | ||
248 | return AMDGPU_FW_LOAD_DIRECT; | ||
249 | else | ||
250 | return AMDGPU_FW_LOAD_SMU; | ||
251 | case CHIP_VEGA10: | ||
252 | if (!load_type) | ||
253 | return AMDGPU_FW_LOAD_DIRECT; | ||
254 | else | ||
255 | return AMDGPU_FW_LOAD_PSP; | ||
256 | default: | ||
257 | DRM_ERROR("Unknow firmware load type\n"); | ||
258 | } | ||
259 | |||
260 | return AMDGPU_FW_LOAD_DIRECT; | ||
261 | } | ||
262 | |||
220 | static int amdgpu_ucode_init_single_fw(struct amdgpu_firmware_info *ucode, | 263 | static int amdgpu_ucode_init_single_fw(struct amdgpu_firmware_info *ucode, |
221 | uint64_t mc_addr, void *kptr) | 264 | uint64_t mc_addr, void *kptr) |
222 | { | 265 | { |
@@ -273,7 +316,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev) | |||
273 | uint64_t fw_mc_addr; | 316 | uint64_t fw_mc_addr; |
274 | void *fw_buf_ptr = NULL; | 317 | void *fw_buf_ptr = NULL; |
275 | uint64_t fw_offset = 0; | 318 | uint64_t fw_offset = 0; |
276 | int i, err; | 319 | int i, err, max; |
277 | struct amdgpu_firmware_info *ucode = NULL; | 320 | struct amdgpu_firmware_info *ucode = NULL; |
278 | const struct common_firmware_header *header = NULL; | 321 | const struct common_firmware_header *header = NULL; |
279 | 322 | ||
@@ -306,7 +349,16 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev) | |||
306 | 349 | ||
307 | amdgpu_bo_unreserve(*bo); | 350 | amdgpu_bo_unreserve(*bo); |
308 | 351 | ||
309 | for (i = 0; i < AMDGPU_UCODE_ID_MAXIMUM; i++) { | 352 | /* |
353 | * if SMU loaded firmware, it needn't add SMC, UVD, and VCE | ||
354 | * ucode info here | ||
355 | */ | ||
356 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) | ||
357 | max = AMDGPU_UCODE_ID_MAXIMUM - 3; | ||
358 | else | ||
359 | max = AMDGPU_UCODE_ID_MAXIMUM; | ||
360 | |||
361 | for (i = 0; i < max; i++) { | ||
310 | ucode = &adev->firmware.ucode[i]; | 362 | ucode = &adev->firmware.ucode[i]; |
311 | if (ucode->fw) { | 363 | if (ucode->fw) { |
312 | header = (const struct common_firmware_header *)ucode->fw->data; | 364 | header = (const struct common_firmware_header *)ucode->fw->data; |
@@ -331,7 +383,8 @@ failed_pin: | |||
331 | failed_reserve: | 383 | failed_reserve: |
332 | amdgpu_bo_unref(bo); | 384 | amdgpu_bo_unref(bo); |
333 | failed: | 385 | failed: |
334 | adev->firmware.smu_load = false; | 386 | if (err) |
387 | adev->firmware.load_type = AMDGPU_FW_LOAD_DIRECT; | ||
335 | 388 | ||
336 | return err; | 389 | return err; |
337 | } | 390 | } |
@@ -340,8 +393,14 @@ int amdgpu_ucode_fini_bo(struct amdgpu_device *adev) | |||
340 | { | 393 | { |
341 | int i; | 394 | int i; |
342 | struct amdgpu_firmware_info *ucode = NULL; | 395 | struct amdgpu_firmware_info *ucode = NULL; |
396 | int max; | ||
397 | |||
398 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) | ||
399 | max = AMDGPU_UCODE_ID_MAXIMUM - 3; | ||
400 | else | ||
401 | max = AMDGPU_UCODE_ID_MAXIMUM; | ||
343 | 402 | ||
344 | for (i = 0; i < AMDGPU_UCODE_ID_MAXIMUM; i++) { | 403 | for (i = 0; i < max; i++) { |
345 | ucode = &adev->firmware.ucode[i]; | 404 | ucode = &adev->firmware.ucode[i]; |
346 | if (ucode->fw) { | 405 | if (ucode->fw) { |
347 | ucode->mc_addr = 0; | 406 | ucode->mc_addr = 0; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h index 19a584cd4527..2b212b04ce54 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | |||
@@ -176,4 +176,7 @@ bool amdgpu_ucode_hdr_version(union amdgpu_firmware_header *hdr, | |||
176 | int amdgpu_ucode_init_bo(struct amdgpu_device *adev); | 176 | int amdgpu_ucode_init_bo(struct amdgpu_device *adev); |
177 | int amdgpu_ucode_fini_bo(struct amdgpu_device *adev); | 177 | int amdgpu_ucode_fini_bo(struct amdgpu_device *adev); |
178 | 178 | ||
179 | enum amdgpu_firmware_load_type | ||
180 | amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type); | ||
181 | |||
179 | #endif | 182 | #endif |
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c index dbaedb4f2a6b..9d33e5641419 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik.c +++ b/drivers/gpu/drm/amd/amdgpu/cik.c | |||
@@ -1785,6 +1785,8 @@ static int cik_common_early_init(void *handle) | |||
1785 | return -EINVAL; | 1785 | return -EINVAL; |
1786 | } | 1786 | } |
1787 | 1787 | ||
1788 | adev->firmware.load_type = amdgpu_ucode_get_load_type(adev, amdgpu_fw_load_type); | ||
1789 | |||
1788 | amdgpu_get_pcie_info(adev); | 1790 | amdgpu_get_pcie_info(adev); |
1789 | 1791 | ||
1790 | return 0; | 1792 | return 0; |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 1e177cd9b46b..423ed68c2e52 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | |||
@@ -1040,7 +1040,7 @@ static int gfx_v8_0_init_microcode(struct amdgpu_device *adev) | |||
1040 | } | 1040 | } |
1041 | } | 1041 | } |
1042 | 1042 | ||
1043 | if (adev->firmware.smu_load) { | 1043 | if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) { |
1044 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CP_PFP]; | 1044 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CP_PFP]; |
1045 | info->ucode_id = AMDGPU_UCODE_ID_CP_PFP; | 1045 | info->ucode_id = AMDGPU_UCODE_ID_CP_PFP; |
1046 | info->fw = adev->gfx.pfp_fw; | 1046 | info->fw = adev->gfx.pfp_fw; |
@@ -4253,7 +4253,7 @@ static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev) | |||
4253 | gfx_v8_0_init_pg(adev); | 4253 | gfx_v8_0_init_pg(adev); |
4254 | 4254 | ||
4255 | if (!adev->pp_enabled) { | 4255 | if (!adev->pp_enabled) { |
4256 | if (!adev->firmware.smu_load) { | 4256 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) { |
4257 | /* legacy rlc firmware loading */ | 4257 | /* legacy rlc firmware loading */ |
4258 | r = gfx_v8_0_rlc_load_microcode(adev); | 4258 | r = gfx_v8_0_rlc_load_microcode(adev); |
4259 | if (r) | 4259 | if (r) |
@@ -5269,7 +5269,7 @@ static int gfx_v8_0_cp_resume(struct amdgpu_device *adev) | |||
5269 | gfx_v8_0_enable_gui_idle_interrupt(adev, false); | 5269 | gfx_v8_0_enable_gui_idle_interrupt(adev, false); |
5270 | 5270 | ||
5271 | if (!adev->pp_enabled) { | 5271 | if (!adev->pp_enabled) { |
5272 | if (!adev->firmware.smu_load) { | 5272 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) { |
5273 | /* legacy firmware loading */ | 5273 | /* legacy firmware loading */ |
5274 | r = gfx_v8_0_cp_gfx_load_microcode(adev); | 5274 | r = gfx_v8_0_cp_gfx_load_microcode(adev); |
5275 | if (r) | 5275 | if (r) |
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c index 1a4b351f350b..182de5dc2081 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | |||
@@ -158,7 +158,7 @@ static int sdma_v2_4_init_microcode(struct amdgpu_device *adev) | |||
158 | if (adev->sdma.instance[i].feature_version >= 20) | 158 | if (adev->sdma.instance[i].feature_version >= 20) |
159 | adev->sdma.instance[i].burst_nop = true; | 159 | adev->sdma.instance[i].burst_nop = true; |
160 | 160 | ||
161 | if (adev->firmware.smu_load) { | 161 | if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) { |
162 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i]; | 162 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i]; |
163 | info->ucode_id = AMDGPU_UCODE_ID_SDMA0 + i; | 163 | info->ucode_id = AMDGPU_UCODE_ID_SDMA0 + i; |
164 | info->fw = adev->sdma.instance[i].fw; | 164 | info->fw = adev->sdma.instance[i].fw; |
@@ -562,7 +562,7 @@ static int sdma_v2_4_start(struct amdgpu_device *adev) | |||
562 | int r; | 562 | int r; |
563 | 563 | ||
564 | if (!adev->pp_enabled) { | 564 | if (!adev->pp_enabled) { |
565 | if (!adev->firmware.smu_load) { | 565 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) { |
566 | r = sdma_v2_4_load_microcode(adev); | 566 | r = sdma_v2_4_load_microcode(adev); |
567 | if (r) | 567 | if (r) |
568 | return r; | 568 | return r; |
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c index 5f7812d1c90d..5be84df27cad 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | |||
@@ -310,7 +310,7 @@ static int sdma_v3_0_init_microcode(struct amdgpu_device *adev) | |||
310 | if (adev->sdma.instance[i].feature_version >= 20) | 310 | if (adev->sdma.instance[i].feature_version >= 20) |
311 | adev->sdma.instance[i].burst_nop = true; | 311 | adev->sdma.instance[i].burst_nop = true; |
312 | 312 | ||
313 | if (adev->firmware.smu_load) { | 313 | if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) { |
314 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i]; | 314 | info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i]; |
315 | info->ucode_id = AMDGPU_UCODE_ID_SDMA0 + i; | 315 | info->ucode_id = AMDGPU_UCODE_ID_SDMA0 + i; |
316 | info->fw = adev->sdma.instance[i].fw; | 316 | info->fw = adev->sdma.instance[i].fw; |
@@ -771,7 +771,7 @@ static int sdma_v3_0_start(struct amdgpu_device *adev) | |||
771 | int r, i; | 771 | int r, i; |
772 | 772 | ||
773 | if (!adev->pp_enabled) { | 773 | if (!adev->pp_enabled) { |
774 | if (!adev->firmware.smu_load) { | 774 | if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) { |
775 | r = sdma_v3_0_load_microcode(adev); | 775 | r = sdma_v3_0_load_microcode(adev); |
776 | if (r) | 776 | if (r) |
777 | return r; | 777 | return r; |
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c index 1ff36724fb2a..1fe654e8cb7f 100644 --- a/drivers/gpu/drm/amd/amdgpu/vi.c +++ b/drivers/gpu/drm/amd/amdgpu/vi.c | |||
@@ -1117,8 +1117,8 @@ static int vi_common_early_init(void *handle) | |||
1117 | return -EINVAL; | 1117 | return -EINVAL; |
1118 | } | 1118 | } |
1119 | 1119 | ||
1120 | if (amdgpu_smc_load_fw && smc_enabled) | 1120 | /* vi use smc load by default */ |
1121 | adev->firmware.smu_load = true; | 1121 | adev->firmware.load_type = amdgpu_ucode_get_load_type(adev, amdgpu_fw_load_type); |
1122 | 1122 | ||
1123 | amdgpu_get_pcie_info(adev); | 1123 | amdgpu_get_pcie_info(adev); |
1124 | 1124 | ||