Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28ed5504 authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher
Browse files

drm/amdgpu: when dpm disabled, also need to stop/start vce.

parent e3e672e6
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -321,6 +321,10 @@ static void amdgpu_vce_idle_work_handler(struct work_struct *work)
			amdgpu_dpm_enable_vce(adev, false);
			amdgpu_dpm_enable_vce(adev, false);
		} else {
		} else {
			amdgpu_asic_set_vce_clocks(adev, 0, 0);
			amdgpu_asic_set_vce_clocks(adev, 0, 0);
			amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE,
							    AMD_PG_STATE_GATE);
			amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE,
							    AMD_CG_STATE_GATE);
		}
		}
	} else {
	} else {
		schedule_delayed_work(&adev->vce.idle_work, VCE_IDLE_TIMEOUT);
		schedule_delayed_work(&adev->vce.idle_work, VCE_IDLE_TIMEOUT);
@@ -346,6 +350,11 @@ void amdgpu_vce_ring_begin_use(struct amdgpu_ring *ring)
			amdgpu_dpm_enable_vce(adev, true);
			amdgpu_dpm_enable_vce(adev, true);
		} else {
		} else {
			amdgpu_asic_set_vce_clocks(adev, 53300, 40000);
			amdgpu_asic_set_vce_clocks(adev, 53300, 40000);
			amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE,
							    AMD_CG_STATE_UNGATE);
			amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE,
							    AMD_PG_STATE_UNGATE);

		}
		}
	}
	}
	mutex_unlock(&adev->vce.idle_mutex);
	mutex_unlock(&adev->vce.idle_mutex);