On 2/28/2024 5:14 PM, Ma Jun wrote: > Because the rpm_mode flag is already set when the driver > is initialized, we use it directly for runtime suspend/resume > instead of checking it again > > Signed-off-by: Ma Jun <Jun.Ma2@xxxxxxx> Reviewed-by: Lijo Lazar <lijo.lazar@xxxxxxx> Thanks, Lijo > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index af7fae7907d7..8b83c26dc018 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -2666,7 +2666,7 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev) > } > > adev->in_runpm = true; > - if (amdgpu_device_supports_px(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_PX) > drm_dev->switch_power_state = DRM_SWITCH_POWER_CHANGING; > > /* > @@ -2676,7 +2676,7 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev) > * platforms. > * TODO: this may be also needed for PX capable platform. > */ > - if (amdgpu_device_supports_boco(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) > adev->mp1_state = PP_MP1_STATE_UNLOAD; > > ret = amdgpu_device_prepare(drm_dev); > @@ -2685,15 +2685,15 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev) > ret = amdgpu_device_suspend(drm_dev, false); > if (ret) { > adev->in_runpm = false; > - if (amdgpu_device_supports_boco(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) > adev->mp1_state = PP_MP1_STATE_NONE; > return ret; > } > > - if (amdgpu_device_supports_boco(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) > adev->mp1_state = PP_MP1_STATE_NONE; > > - if (amdgpu_device_supports_px(drm_dev)) { > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_PX) { > /* Only need to handle PCI state in the driver for ATPX > * PCI core handles it for _PR3. > */ > @@ -2702,9 +2702,9 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev) > pci_ignore_hotplug(pdev); > pci_set_power_state(pdev, PCI_D3cold); > drm_dev->switch_power_state = DRM_SWITCH_POWER_DYNAMIC_OFF; > - } else if (amdgpu_device_supports_boco(drm_dev)) { > + } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) { > /* nothing to do */ > - } else if (amdgpu_device_supports_baco(drm_dev)) { > + } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) { > amdgpu_device_baco_enter(drm_dev); > } > > @@ -2727,7 +2727,7 @@ static int amdgpu_pmops_runtime_resume(struct device *dev) > if (!pci_device_is_present(adev->pdev)) > adev->no_hw_access = true; > > - if (amdgpu_device_supports_px(drm_dev)) { > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_PX) { > drm_dev->switch_power_state = DRM_SWITCH_POWER_CHANGING; > > /* Only need to handle PCI state in the driver for ATPX > @@ -2739,22 +2739,22 @@ static int amdgpu_pmops_runtime_resume(struct device *dev) > if (ret) > return ret; > pci_set_master(pdev); > - } else if (amdgpu_device_supports_boco(drm_dev)) { > + } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BOCO) { > /* Only need to handle PCI state in the driver for ATPX > * PCI core handles it for _PR3. > */ > pci_set_master(pdev); > - } else if (amdgpu_device_supports_baco(drm_dev)) { > + } else if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) { > amdgpu_device_baco_exit(drm_dev); > } > ret = amdgpu_device_resume(drm_dev, false); > if (ret) { > - if (amdgpu_device_supports_px(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_PX) > pci_disable_device(pdev); > return ret; > } > > - if (amdgpu_device_supports_px(drm_dev)) > + if (adev->pm.rpm_mode == AMDGPU_RUNPM_PX) > drm_dev->switch_power_state = DRM_SWITCH_POWER_ON; > adev->in_runpm = false; > return 0;