Commit 86e14a73 authored by Ma Jun's avatar Ma Jun Committed by Alex Deucher
Browse files

drm/amdgpu: Use rpm_mode flag instead of checking it again for rpm



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: default avatarMa Jun <Jun.Ma2@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent f317c5e5
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -2693,7 +2693,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;

	/*
@@ -2703,7 +2703,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);
@@ -2712,15 +2712,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.
		 */
@@ -2729,9 +2729,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);
	}

@@ -2754,7 +2754,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
@@ -2766,22 +2766,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;