On 2/28/2024 7:58 PM, Lazar, Lijo wrote: > > > On 2/28/2024 5:14 PM, Ma Jun wrote: >> Check return value of amdgpu_device_baco_enter/exit and print >> warning message because these errors may cause runtime resume failure >> >> Signed-off-by: Ma Jun <Jun.Ma2@xxxxxxx> >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> index 8b83c26dc018..11e089cfb465 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> @@ -2705,7 +2705,9 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev) >> } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) { >> /* nothing to do */ >> } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) { >> - amdgpu_device_baco_enter(drm_dev); >> + ret = amdgpu_device_baco_enter(drm_dev); >> + if (ret) >> + dev_warn(&pdev->dev, "warning: device fails to enter baco. ret=%d\n", ret); >> } > > If the intention is to print for any baco entry/exit failure, it's > better to put the print inside enter/exit functions itself. Also, since > these are triggered through PMFW, any PMFW fail will be printed. So this > may not be that useful. > Thanks, I will move it into enter/exit functions. This check is mainly used for other error cases not for PMFW failure. Regards, Ma Jun > Thanks, > Lijo > >> >> dev_dbg(&pdev->dev, "asic/device is runtime suspended\n"); >> @@ -2745,7 +2747,9 @@ static int amdgpu_pmops_runtime_resume(struct device *dev) >> */ >> pci_set_master(pdev); >> } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) { >> - amdgpu_device_baco_exit(drm_dev); >> + ret = amdgpu_device_baco_exit(drm_dev); >> + if (ret) >> + dev_warn(&pdev->dev, "warning: device fails to exit from baco. ret=%d\n", ret); >> } >> ret = amdgpu_device_resume(drm_dev, false); >> if (ret) {