diff options
author | 2024-11-26 12:30:30 -0500 | |
---|---|---|
committer | 2025-02-27 15:52:31 -0500 | |
commit | a2cf2a883c24ed582d829fc8ea6b4f5f09dc7b49 (patch) | |
tree | 31eeaf69b5ba97ecad131bca6980275c09c57854 /drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | |
parent | drm/amdgpu/vcn: use per instance callbacks for idle work handler (diff) | |
download | linux-rng-a2cf2a883c24ed582d829fc8ea6b4f5f09dc7b49.tar.xz linux-rng-a2cf2a883c24ed582d829fc8ea6b4f5f09dc7b49.zip |
drm/amdgpu/vcn: add a generic helper for set_power_gating_state
It's common for all VCN variants.
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c index 81bfd8a9d826..e4ef0fb970b2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -1397,3 +1397,26 @@ void amdgpu_debugfs_vcn_sched_mask_init(struct amdgpu_device *adev) &amdgpu_debugfs_vcn_sched_mask_fops); #endif } + +/** + * vcn_set_powergating_state - set VCN block powergating state + * + * @ip_block: amdgpu_ip_block pointer + * @state: power gating state + * + * Set VCN block powergating state + */ +int vcn_set_powergating_state(struct amdgpu_ip_block *ip_block, + enum amd_powergating_state state) +{ + struct amdgpu_device *adev = ip_block->adev; + int ret = 0, i; + + for (i = 0; i < adev->vcn.num_vcn_inst; ++i) { + struct amdgpu_vcn_inst *vinst = &adev->vcn.inst[i]; + + ret |= vinst->set_pg_state(vinst, state); + } + + return ret; +} |