Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/pp: Save vf state in pp context

Store vf state in pp_context so we can
deprecate the cgs interface.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Rex Zhu and committed by
Alex Deucher
8bb575a2 b61e54cb

+13 -14
+2 -1
drivers/gpu/drm/amd/powerplay/amd_powerplay.c
··· 46 46 return -ENOMEM; 47 47 48 48 hwmgr->adev = adev; 49 - hwmgr->pm_en = (amdgpu_dpm != 0 && !amdgpu_sriov_vf(adev)) ? true : false; 49 + hwmgr->not_vf = !amdgpu_sriov_vf(adev); 50 + hwmgr->pm_en = (amdgpu_dpm && hwmgr->not_vf) ? true : false; 50 51 hwmgr->device = amdgpu_cgs_create_device(adev); 51 52 mutex_init(&hwmgr->smu_lock); 52 53 hwmgr->chip_family = adev->family;
+1
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
··· 718 718 uint32_t chip_family; 719 719 uint32_t chip_id; 720 720 uint32_t smu_version; 721 + bool not_vf; 721 722 bool pm_en; 722 723 struct mutex smu_lock; 723 724
+3 -4
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
··· 288 288 struct fiji_smumgr *priv = (struct fiji_smumgr *)(hwmgr->smu_backend); 289 289 290 290 /* Only start SMC if SMC RAM is not running */ 291 - if (!(smu7_is_smc_ram_running(hwmgr) 292 - || cgs_is_virtualization_enabled(hwmgr->device))) { 291 + if (!smu7_is_smc_ram_running(hwmgr) && hwmgr->not_vf) { 293 292 /* Check if SMU is running in protected mode */ 294 293 if (0 == PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, 295 294 CGS_IND_REG__SMC, ··· 334 335 uint32_t efuse = 0; 335 336 uint32_t mask = (1 << ((AVFS_EN_MSB - AVFS_EN_LSB) + 1)) - 1; 336 337 337 - if (cgs_is_virtualization_enabled(hwmgr->device)) 338 - return 0; 338 + if (!hwmgr->not_vf) 339 + return false; 339 340 340 341 if (!atomctrl_read_efuse(hwmgr->device, AVFS_EN_LSB, AVFS_EN_MSB, 341 342 mask, &efuse)) {
+1 -2
drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
··· 295 295 struct polaris10_smumgr *smu_data = (struct polaris10_smumgr *)(hwmgr->smu_backend); 296 296 297 297 /* Only start SMC if SMC RAM is not running */ 298 - if (!(smu7_is_smc_ram_running(hwmgr) 299 - || cgs_is_virtualization_enabled(hwmgr->device))) { 298 + if (!smu7_is_smc_ram_running(hwmgr) && hwmgr->not_vf) { 300 299 smu_data->protected_mode = (uint8_t) (PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC, SMU_FIRMWARE, SMU_MODE)); 301 300 smu_data->smu7_data.security_hard_key = (uint8_t) (PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC, SMU_FIRMWARE, SMU_SEL)); 302 301
+5 -5
drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c
··· 375 375 entry->meta_data_addr_low = 0; 376 376 377 377 /* digest need be excluded out */ 378 - if (cgs_is_virtualization_enabled(hwmgr->device)) 378 + if (!hwmgr->not_vf) 379 379 info.image_size -= 20; 380 380 entry->data_size_byte = info.image_size; 381 381 entry->num_register_entries = 0; ··· 409 409 0x0); 410 410 411 411 if (hwmgr->chip_id > CHIP_TOPAZ) { /* add support for Topaz */ 412 - if (!cgs_is_virtualization_enabled(hwmgr->device)) { 412 + if (hwmgr->not_vf) { 413 413 smu7_send_msg_to_smc_with_parameter(hwmgr, 414 414 PPSMC_MSG_SMU_DRAM_ADDR_HI, 415 415 upper_32_bits(smu_data->smu_buffer.mc_addr)); ··· 467 467 PP_ASSERT_WITH_CODE(0 == smu7_populate_single_firmware_entry(hwmgr, 468 468 UCODE_ID_SDMA1, &toc->entry[toc->num_entries++]), 469 469 "Failed to Get Firmware Entry.", return -EINVAL); 470 - if (cgs_is_virtualization_enabled(hwmgr->device)) 470 + if (!hwmgr->not_vf) 471 471 PP_ASSERT_WITH_CODE(0 == smu7_populate_single_firmware_entry(hwmgr, 472 472 UCODE_ID_MEC_STORAGE, &toc->entry[toc->num_entries++]), 473 473 "Failed to Get Firmware Entry.", return -EINVAL); ··· 608 608 smu_data->header = smu_data->header_buffer.kaddr; 609 609 smu_data->header_buffer.mc_addr = mc_addr; 610 610 611 - if (cgs_is_virtualization_enabled(hwmgr->device)) 611 + if (!hwmgr->not_vf) 612 612 return 0; 613 613 614 614 smu_data->smu_buffer.data_size = 200*4096; ··· 643 643 &smu_data->header_buffer.mc_addr, 644 644 &smu_data->header_buffer.kaddr); 645 645 646 - if (!cgs_is_virtualization_enabled(hwmgr->device)) 646 + if (hwmgr->not_vf) 647 647 amdgpu_bo_free_kernel(&smu_data->smu_buffer.handle, 648 648 &smu_data->smu_buffer.mc_addr, 649 649 &smu_data->smu_buffer.kaddr);
+1 -2
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
··· 199 199 int result; 200 200 201 201 /* Only start SMC if SMC RAM is not running */ 202 - if (!(smu7_is_smc_ram_running(hwmgr) || 203 - cgs_is_virtualization_enabled(hwmgr->device))) { 202 + if (!smu7_is_smc_ram_running(hwmgr) && hwmgr->not_vf) { 204 203 /*Check if SMU is running in protected mode*/ 205 204 if (0 == PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC, 206 205 SMU_FIRMWARE, SMU_MODE)) {