mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 02:34:23 +08:00
drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume
For powergating, we just need to re-init the registers, there is no need to restore the uvd BOs. This just adds needless work when powergating uvd for playback while the system is on. We only need to restore the uvd BOs on an actual resume from suspend or when the driver loads. This fixes multi-stream UVD playback on KB systems. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
27c505ca84
commit
2ce529dac7
@ -7051,12 +7051,15 @@ static int cik_startup(struct radeon_device *rdev)
|
||||
return r;
|
||||
}
|
||||
|
||||
r = uvd_v4_2_resume(rdev);
|
||||
r = radeon_uvd_resume(rdev);
|
||||
if (!r) {
|
||||
r = radeon_fence_driver_start_ring(rdev,
|
||||
R600_RING_TYPE_UVD_INDEX);
|
||||
if (r)
|
||||
dev_err(rdev->dev, "UVD fences init error (%d).\n", r);
|
||||
r = uvd_v4_2_resume(rdev);
|
||||
if (!r) {
|
||||
r = radeon_fence_driver_start_ring(rdev,
|
||||
R600_RING_TYPE_UVD_INDEX);
|
||||
if (r)
|
||||
dev_err(rdev->dev, "UVD fences init error (%d).\n", r);
|
||||
}
|
||||
}
|
||||
if (r)
|
||||
rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0;
|
||||
|
@ -39,11 +39,6 @@ int uvd_v4_2_resume(struct radeon_device *rdev)
|
||||
{
|
||||
uint64_t addr;
|
||||
uint32_t size;
|
||||
int r;
|
||||
|
||||
r = radeon_uvd_resume(rdev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
/* programm the VCPU memory controller bits 0-27 */
|
||||
addr = rdev->uvd.gpu_addr >> 3;
|
||||
|
Loading…
Reference in New Issue
Block a user