OSDN Git Service

drm/amd/powerplay: Ignore smu buffer usage
authorXiangliang Yu <Xiangliang.Yu@amd.com>
Fri, 2 Dec 2016 03:15:41 +0000 (11:15 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 6 Dec 2016 23:08:36 +0000 (18:08 -0500)
SMU buffer is used for power feature, but for virtualization, the
power is controlled by hypervisor. Ignore it.

Signed-off-by: Xiangliang Yu <Xiangliang.Yu@amd.com>
Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c

index 877445d..0754911 100644 (file)
@@ -407,8 +407,14 @@ int smu7_request_smu_load_fw(struct pp_smumgr *smumgr)
                                        0x0);
 
        if (smumgr->chip_id > CHIP_TOPAZ) { /* add support for Topaz */
-               smu7_send_msg_to_smc_with_parameter(smumgr, PPSMC_MSG_SMU_DRAM_ADDR_HI, smu_data->smu_buffer.mc_addr_high);
-               smu7_send_msg_to_smc_with_parameter(smumgr, PPSMC_MSG_SMU_DRAM_ADDR_LO, smu_data->smu_buffer.mc_addr_low);
+               if (!cgs_is_virtualization_enabled(smumgr->device)) {
+                       smu7_send_msg_to_smc_with_parameter(smumgr,
+                                               PPSMC_MSG_SMU_DRAM_ADDR_HI,
+                                               smu_data->smu_buffer.mc_addr_high);
+                       smu7_send_msg_to_smc_with_parameter(smumgr,
+                                               PPSMC_MSG_SMU_DRAM_ADDR_LO,
+                                               smu_data->smu_buffer.mc_addr_low);
+               }
                fw_to_load = UCODE_ID_RLC_G_MASK
                           + UCODE_ID_SDMA0_MASK
                           + UCODE_ID_SDMA1_MASK
@@ -566,6 +572,9 @@ int smu7_init(struct pp_smumgr *smumgr)
                (cgs_handle_t)smu_data->header_buffer.handle);
                return -EINVAL);
 
+       if (cgs_is_virtualization_enabled(smumgr->device))
+               return 0;
+
        smu_allocate_memory(smumgr->device,
                smu_data->smu_buffer.data_size,
                CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB,