drm/amd/pp: implement function notify_cac_buffer_info on Vega
authorRex Zhu <Rex.Zhu@amd.com>
Fri, 15 Sep 2017 11:39:09 +0000 (19:39 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 19 Oct 2017 19:26:51 +0000 (15:26 -0400)
Used for smu power logging.

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>
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index 48de45e..ebaea5c 100644 (file)
@@ -4994,6 +4994,33 @@ static int vega10_set_mclk_od(struct pp_hwmgr *hwmgr, uint32_t value)
        return 0;
 }
 
+static int vega10_notify_cac_buffer_info(struct pp_hwmgr *hwmgr,
+                                       uint32_t virtual_addr_low,
+                                       uint32_t virtual_addr_hi,
+                                       uint32_t mc_addr_low,
+                                       uint32_t mc_addr_hi,
+                                       uint32_t size)
+{
+       smum_send_msg_to_smc_with_parameter(hwmgr,
+                                       PPSMC_MSG_SetSystemVirtualDramAddrHigh,
+                                       virtual_addr_hi);
+       smum_send_msg_to_smc_with_parameter(hwmgr,
+                                       PPSMC_MSG_SetSystemVirtualDramAddrLow,
+                                       virtual_addr_low);
+       smum_send_msg_to_smc_with_parameter(hwmgr,
+                                       PPSMC_MSG_DramLogSetDramAddrHigh,
+                                       mc_addr_hi);
+
+       smum_send_msg_to_smc_with_parameter(hwmgr,
+                                       PPSMC_MSG_DramLogSetDramAddrLow,
+                                       mc_addr_low);
+
+       smum_send_msg_to_smc_with_parameter(hwmgr,
+                                       PPSMC_MSG_DramLogSetDramSize,
+                                       size);
+       return 0;
+}
+
 static int vega10_register_thermal_interrupt(struct pp_hwmgr *hwmgr,
                const void *info)
 {
@@ -5079,6 +5106,7 @@ static const struct pp_hwmgr_func vega10_hwmgr_funcs = {
        .get_mclk_od = vega10_get_mclk_od,
        .set_mclk_od = vega10_set_mclk_od,
        .avfs_control = vega10_avfs_enable,
+       .notify_cac_buffer_info = vega10_notify_cac_buffer_info,
        .register_internal_thermal_interrupt = vega10_register_thermal_interrupt,
 };