[PATCH 2/2] drm/amd/pm: check specific index for aldebaran
To avoid warning problems, drop index and use PPSMC_MSG_GfxDriverReset instead of index for aldebaran. Signed-off-by: Jesse Zhang Suggested-by: Lijo Lazar --- drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c index a22eb6bbb05e..2fc4ba036afe 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct smu_context *smu) static int aldebaran_mode2_reset(struct smu_context *smu) { - int ret = 0, index; + int ret = 0; struct amdgpu_device *adev = smu->adev; int timeout = 10; - index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG, - SMU_MSG_GfxDeviceDriverReset); - if (index < 0 ) - return -EINVAL; mutex_lock(>message_lock); if (smu->smc_fw_version >= 0x00441400) { - ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, SMU_RESET_MODE_2); + ret = smu_cmn_send_msg_without_waiting(smu, PPSMC_MSG_GfxDriverReset, + SMU_RESET_MODE_2); + if (ret) { + dev_err(smu->adev->dev, "Failed to mode2 reset!\n"); + goto out; + } /* This is similar to FLR, wait till max FLR timeout */ msleep(100); dev_dbg(smu->adev->dev, "restore config space...\n"); -- 2.25.1
Re: [PATCH 2/2] drm/amd/pm: check specific index for aldebaran
On 5/14/2024 12:37 PM, Wang, Yang(Kevin) wrote: > [AMD Official Use Only - AMD Internal Distribution Only] > > -Original Message- > From: amd-gfx On Behalf Of Lazar, Lijo > Sent: Tuesday, May 14, 2024 2:07 PM > To: Zhang, Jesse(Jie) ; amd-gfx@lists.freedesktop.org > Cc: Deucher, Alexander ; Koenig, Christian > ; Huang, Tim > Subject: Re: [PATCH 2/2] drm/amd/pm: check specific index for aldebaran > > > > On 5/14/2024 11:34 AM, Jesse Zhang wrote: >> To avoid warning problems, drop index and use PPSMC_MSG_GfxDriverReset >> instead of index for aldebaran. >> >> Signed-off-by: Jesse Zhang >> Suggested-by: Lijo Lazar >> --- >> drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++-- >> 1 file changed, 7 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c >> b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c >> index a22eb6bbb05e..d671314c46c8 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c >> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c >> @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct >> smu_context *smu) >> >> static int aldebaran_mode2_reset(struct smu_context *smu) { >> - int ret = 0, index; >> + int ret = 0; >> struct amdgpu_device *adev = smu->adev; >> int timeout = 10; >> >> - index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG, >> - SMU_MSG_GfxDeviceDriverReset); >> - if (index < 0 ) >> - return -EINVAL; >> mutex_lock(>message_lock); >> if (smu->smc_fw_version >= 0x00441400) { >> - ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, >> SMU_RESET_MODE_2); >> + ret = smu_cmn_send_smc_msg_with_param(smu, >> +SMU_MSG_GfxDeviceDriverReset, > > PPSMC_MSG_GfxDriverReset is different from SMU_MSG_GfxDeviceDriverReset. > Use PPSMC_MSG_GfxDriverReset here (for both patches). > > Thanks, > Lijo > > [Kevin]: > > There is no interface here to directly use PPSMC_MSG_XXX to send messages to > smu/pmfw in the swSMU driver, > and it is not recommended to do so to maintain code consistency. > Thanks, didn't notice earlier that smu_cmn_send_msg_without_waiting got changed as well with this patch. This API is a direct interface. Please note not to change anything else other than what is specifically requested in review comment. The original comment was only to replace index with PPSMC_MSG_GfxDriverReset. Please stick to that, otherwise it will break the entire sequence. Thanks, Lijo > Best Regards, > Kevin > >> + >> SMU_RESET_MODE_2, NULL); >> + if (ret) { >> + dev_err(smu->adev->dev, "Failed to mode2 reset!\n"); >> + goto out; >> + } >> /* This is similar to FLR, wait till max FLR timeout */ >> msleep(100); >> dev_dbg(smu->adev->dev, "restore config space...\n");
RE: [PATCH 2/2] drm/amd/pm: check specific index for aldebaran
[AMD Official Use Only - AMD Internal Distribution Only] -Original Message- From: amd-gfx On Behalf Of Lazar, Lijo Sent: Tuesday, May 14, 2024 2:07 PM To: Zhang, Jesse(Jie) ; amd-gfx@lists.freedesktop.org Cc: Deucher, Alexander ; Koenig, Christian ; Huang, Tim Subject: Re: [PATCH 2/2] drm/amd/pm: check specific index for aldebaran On 5/14/2024 11:34 AM, Jesse Zhang wrote: > To avoid warning problems, drop index and use PPSMC_MSG_GfxDriverReset > instead of index for aldebaran. > > Signed-off-by: Jesse Zhang > Suggested-by: Lijo Lazar > --- > drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++-- > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > index a22eb6bbb05e..d671314c46c8 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct > smu_context *smu) > > static int aldebaran_mode2_reset(struct smu_context *smu) { > - int ret = 0, index; > + int ret = 0; > struct amdgpu_device *adev = smu->adev; > int timeout = 10; > > - index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG, > - SMU_MSG_GfxDeviceDriverReset); > - if (index < 0 ) > - return -EINVAL; > mutex_lock(>message_lock); > if (smu->smc_fw_version >= 0x00441400) { > - ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, > SMU_RESET_MODE_2); > + ret = smu_cmn_send_smc_msg_with_param(smu, > +SMU_MSG_GfxDeviceDriverReset, PPSMC_MSG_GfxDriverReset is different from SMU_MSG_GfxDeviceDriverReset. Use PPSMC_MSG_GfxDriverReset here (for both patches). Thanks, Lijo [Kevin]: There is no interface here to directly use PPSMC_MSG_XXX to send messages to smu/pmfw in the swSMU driver, and it is not recommended to do so to maintain code consistency. Best Regards, Kevin > + > SMU_RESET_MODE_2, NULL); > + if (ret) { > + dev_err(smu->adev->dev, "Failed to mode2 reset!\n"); > + goto out; > + } > /* This is similar to FLR, wait till max FLR timeout */ > msleep(100); > dev_dbg(smu->adev->dev, "restore config space...\n");
Re: [PATCH 2/2] drm/amd/pm: check specific index for aldebaran
On 5/14/2024 11:34 AM, Jesse Zhang wrote: > To avoid warning problems, drop index and > use PPSMC_MSG_GfxDriverReset instead of index for aldebaran. > > Signed-off-by: Jesse Zhang > Suggested-by: Lijo Lazar > --- > drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++-- > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > index a22eb6bbb05e..d671314c46c8 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c > @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct smu_context > *smu) > > static int aldebaran_mode2_reset(struct smu_context *smu) > { > - int ret = 0, index; > + int ret = 0; > struct amdgpu_device *adev = smu->adev; > int timeout = 10; > > - index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG, > - SMU_MSG_GfxDeviceDriverReset); > - if (index < 0 ) > - return -EINVAL; > mutex_lock(>message_lock); > if (smu->smc_fw_version >= 0x00441400) { > - ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, > SMU_RESET_MODE_2); > + ret = smu_cmn_send_smc_msg_with_param(smu, > SMU_MSG_GfxDeviceDriverReset, PPSMC_MSG_GfxDriverReset is different from SMU_MSG_GfxDeviceDriverReset. Use PPSMC_MSG_GfxDriverReset here (for both patches). Thanks, Lijo > + > SMU_RESET_MODE_2, NULL); > + if (ret) { > + dev_err(smu->adev->dev, "Failed to mode2 reset!\n"); > + goto out; > + } > /* This is similar to FLR, wait till max FLR timeout */ > msleep(100); > dev_dbg(smu->adev->dev, "restore config space...\n");
[PATCH 2/2] drm/amd/pm: check specific index for aldebaran
To avoid warning problems, drop index and use PPSMC_MSG_GfxDriverReset instead of index for aldebaran. Signed-off-by: Jesse Zhang Suggested-by: Lijo Lazar --- drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c index a22eb6bbb05e..d671314c46c8 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct smu_context *smu) static int aldebaran_mode2_reset(struct smu_context *smu) { - int ret = 0, index; + int ret = 0; struct amdgpu_device *adev = smu->adev; int timeout = 10; - index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG, - SMU_MSG_GfxDeviceDriverReset); - if (index < 0 ) - return -EINVAL; mutex_lock(>message_lock); if (smu->smc_fw_version >= 0x00441400) { - ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, SMU_RESET_MODE_2); + ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_GfxDeviceDriverReset, + SMU_RESET_MODE_2, NULL); + if (ret) { + dev_err(smu->adev->dev, "Failed to mode2 reset!\n"); + goto out; + } /* This is similar to FLR, wait till max FLR timeout */ msleep(100); dev_dbg(smu->adev->dev, "restore config space...\n"); -- 2.25.1