<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Times New Roman" size="3"><span style="font-size:12pt;"><a name="_msipheader9f8d35bc"></a>
<div><font face="Arial" size="2" color="blue"><span style="font-size:10pt;">[AMD Official Use Only]<br>

</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">From your explanation , seems  SMU always need this special handling  for SBR on  passthrough mode , but in the  code , that only apply to XGMI configuration.  Should you change that as well ? 
Two comments inline.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Regards</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Shaoyun.liu</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-----Original Message-----<br>

From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of sashank saye<br>

Sent: Friday, December 17, 2021 12:39 PM<br>

To: amd-gfx@lists.freedesktop.org<br>

Cc: Saye, Sashank <Sashank.Saye@amd.com><br>

Subject: [PATCH] drm/amdgpu: Send Message to SMU on aldebaran passthrough for sbr handling</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">For Aldebaran chip passthrough case we need to intimate SMU about special handling for SBR.On older chips we send LightSBR to SMU, enabling the same for Aldebaran. Slight difference, compared
to previous chips, is on Aldebaran, SMU would do a heavy reset on SBR. Hence, the word Heavy instead of Light SBR is used for SMU to differentiate.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Signed-off-by: sashank saye <<a href="mailto:sashank.saye@amd.com">sashank.saye@amd.com</a>></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Change-Id: I79420e7352bb670d6f9696df97d7546f131b18fc</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">---</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |  6 +++---</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/inc/aldebaran_ppsmc.h       |  4 +++-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h            |  6 +++---</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/inc/smu_types.h             |  3 ++-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/inc/smu_v11_0.h             |  2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c          |  6 +++---</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c  |  2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c     |  2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 11 +++++++++++</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> 9 files changed, 28 insertions(+), 14 deletions(-)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index f31caec669e7..01b02701121e 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -2618,11 +2618,11 @@ static int amdgpu_device_ip_late_init(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         if (r)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">                 DRM_ERROR("enable mgpu fan boost failed (%d).\n", r);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       /* For XGMI + passthrough configuration on arcturus, enable light SBR */</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       if (adev->asic_type == CHIP_ARCTURUS &&</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       /* For XGMI + passthrough configuration on arcturus and aldebaran, enable light SBR */</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       if ((adev->asic_type == CHIP_ARCTURUS || adev->asic_type == </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+CHIP_ALDEBARAN ) &&</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">             amdgpu_passthrough(adev) &&</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">             adev->gmc.xgmi.num_physical_nodes > 1)</span></font></div>
<div><font size="2" color="red"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2" color="red"><span style="font-size:11pt;">[shaoyunl] , Should this apply to none  XGMI configuration as well? </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-               smu_set_light_sbr(&adev->smu, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+               smu_handle_passthrough_sbr(&adev->smu, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         if (adev->gmc.xgmi.num_physical_nodes > 1) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">                 mutex_lock(&mgpu_info.mutex);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/inc/aldebaran_ppsmc.h b/drivers/gpu/drm/amd/pm/inc/aldebaran_ppsmc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 35fa0d8e92dd..ab66a4b9e438 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/inc/aldebaran_ppsmc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/inc/aldebaran_ppsmc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -102,7 +102,9 @@</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> #define PPSMC_MSG_GfxDriverResetRecovery       0x42</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> #define PPSMC_MSG_BoardPowerCalibration         0x43</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-#define PPSMC_Message_Count                    0x44</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+#define PPSMC_MSG_HeavySBR                      0x45</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+#define PPSMC_Message_Count                    0x46</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> //PPSMC Reset Types</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> #define PPSMC_RESET_TYPE_WARM_RESET              0x00</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 2b9b9a7ba97a..ba7565bc8104 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -1257,9 +1257,9 @@ struct pptable_funcs {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         int (*set_fine_grain_gfx_freq_parameters)(struct smu_context *smu);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         /**</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-        * @set_light_sbr:  Set light sbr mode for the SMU.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+        * @smu_handle_passthrough_sbr:  Send message to SMU about special handling for SBR.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">          */</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       int (*set_light_sbr)(struct smu_context *smu, bool enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       int (*smu_handle_passthrough_sbr)(struct smu_context *smu, bool </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         /**</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">          * @wait_for_event:  Wait for events from SMU.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -1415,7 +1415,7 @@ int smu_allow_xgmi_power_down(struct smu_context *smu, bool en);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int smu_get_status_gfxoff(struct amdgpu_device *adev, uint32_t *value);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-int smu_set_light_sbr(struct smu_context *smu, bool enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int smu_handle_passthrough_sbr(struct smu_context *smu, bool enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int smu_wait_for_event(struct amdgpu_device *adev, enum smu_event_type event,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">                        uint64_t event_arg);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/inc/smu_types.h b/drivers/gpu/drm/amd/pm/inc/smu_types.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 18b862a90fbe..ff8a0bcbd290 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/inc/smu_types.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/inc/smu_types.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -229,7 +229,8 @@</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         __SMU_DUMMY_MAP(BoardPowerCalibration),   \</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         __SMU_DUMMY_MAP(RequestGfxclk),           \</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         __SMU_DUMMY_MAP(ForceGfxVid),             \</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       __SMU_DUMMY_MAP(UnforceGfxVid),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       __SMU_DUMMY_MAP(UnforceGfxVid),           \</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       __SMU_DUMMY_MAP(HeavySBR),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> #undef __SMU_DUMMY_MAP</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> #define __SMU_DUMMY_MAP(type)  SMU_MSG_##type</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/inc/smu_v11_0.h b/drivers/gpu/drm/amd/pm/inc/smu_v11_0.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 2d422e6a9feb..acb3be292096 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/inc/smu_v11_0.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/inc/smu_v11_0.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -312,7 +312,7 @@ int smu_v11_0_deep_sleep_control(struct smu_context *smu,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> void smu_v11_0_interrupt_work(struct smu_context *smu);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-int smu_v11_0_set_light_sbr(struct smu_context *smu, bool enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int smu_v11_0_handle_passthrough_sbr(struct smu_context *smu, bool </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int smu_v11_0_restore_user_od_settings(struct smu_context *smu);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index af98fa140d83..76f95e8ada4c 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -3058,13 +3058,13 @@ static int smu_gfx_state_change_set(void *handle,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         return ret;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-int smu_set_light_sbr(struct smu_context *smu, bool enable)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int smu_handle_passthrough_sbr(struct smu_context *smu, bool enable)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         int ret = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         mutex_lock(&smu->mutex);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       if (smu->ppt_funcs->set_light_sbr)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-               ret = smu->ppt_funcs->set_light_sbr(smu, enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       if (smu->ppt_funcs->smu_handle_passthrough_sbr)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+               ret = smu->ppt_funcs->smu_handle_passthrough_sbr(smu, enable);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         mutex_unlock(&smu->mutex);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         return ret;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 58bc387fb279..505d2fb94fd9 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -2472,7 +2472,7 @@ static const struct pptable_funcs arcturus_ppt_funcs = {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .deep_sleep_control = smu_v11_0_deep_sleep_control,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .get_fan_parameters = arcturus_get_fan_parameters,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .interrupt_work = smu_v11_0_interrupt_work,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-       .set_light_sbr = smu_v11_0_set_light_sbr,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       .smu_handle_passthrough_sbr = smu_v11_0_handle_passthrough_sbr,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .set_mp1_state = smu_cmn_set_mp1_state,  };</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 28b7c0562b99..4e9e2cf39859 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -1724,7 +1724,7 @@ int smu_v11_0_mode1_reset(struct smu_context *smu)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         return ret;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-int smu_v11_0_set_light_sbr(struct smu_context *smu, bool enable)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int smu_v11_0_handle_passthrough_sbr(struct smu_context *smu, bool </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+enable)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         int ret = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 7433a051e795..2813ab2cc336 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -141,6 +141,7 @@ static const struct cmn2asic_msg_mapping aldebaran_message_map[SMU_MSG_MAX_COUNT</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         MSG_MAP(SetUclkDpmMode,                      PPSMC_MSG_SetUclkDpmMode,                   0),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         MSG_MAP(GfxDriverResetRecovery,              PPSMC_MSG_GfxDriverResetRecovery,           0),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         MSG_MAP(BoardPowerCalibration,               PPSMC_MSG_BoardPowerCalibration,            0),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       MSG_MAP(HeavySBR,                            PPSMC_MSG_HeavySBR,                        0),</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> };</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> static const struct cmn2asic_mapping aldebaran_clk_map[SMU_CLK_COUNT] = { @@ -1912,6 +1913,15 @@ static int aldebaran_mode2_reset(struct smu_context *smu)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         return ret;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+static int aldebaran_smu_handle_passthrough_sbr(struct smu_context </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+*smu, bool enable) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       int ret = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       //For alderbarn chip, SMU would do a mode 1 reset as part of SBR hence we call it HeavySBR instead of light</span></font></div>
<div><font face="Calibri" size="2" color="red"><span style="font-size:11pt;">[Shaoyunl], Don't use "//" for comments , use "/*   */ " if you want.   Seems this comment is not needed here . </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       ret =  smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_HeavySBR, enable ? </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+1 : 0, NULL);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       return ret;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+}</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> static bool aldebaran_is_mode1_reset_supported(struct smu_context *smu)  {  #if 0 @@ -2021,6 +2031,7 @@ static const struct pptable_funcs aldebaran_ppt_funcs = {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .get_gpu_metrics = aldebaran_get_gpu_metrics,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .mode1_reset_is_support = aldebaran_is_mode1_reset_supported,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .mode2_reset_is_support = aldebaran_is_mode2_reset_supported,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+       .smu_handle_passthrough_sbr = aldebaran_smu_handle_passthrough_sbr,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .mode1_reset = aldebaran_mode1_reset,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .set_mp1_state = aldebaran_set_mp1_state,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">         .mode2_reset = aldebaran_mode2_reset,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">2.25.1</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
</span></font>
</body>
</html>