diff options
| author | Christian König <[email protected]> | 2024-11-29 13:19:21 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2024-12-05 19:14:53 +0000 |
| commit | 12f325bcd2411e571dbb500bf6862c812c479735 (patch) | |
| tree | ce5dc7eb1d3b9d063adf677e9a5cf2c1a207c2cf /drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | |
| parent | drm/amdgpu: use sjt mec fw on gfx943 for sriov (diff) | |
| download | kernel-12f325bcd2411e571dbb500bf6862c812c479735.tar.gz kernel-12f325bcd2411e571dbb500bf6862c812c479735.zip | |
drm/amdgpu: fix UVD contiguous CS mapping problem
When starting the mpv player, Radeon R9 users are observing
the below error in dmesg.
[drm:amdgpu_uvd_cs_pass2 [amdgpu]]
*ERROR* msg/fb buffer ff00f7c000-ff00f7e000 out of 256MB segment!
The patch tries to set the TTM_PL_FLAG_CONTIGUOUS for both user
flag(AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS) set and not set cases.
v2: Make the TTM_PL_FLAG_CONTIGUOUS mandatory for user BO's.
v3: revert back to v1, but fix the check instead (chk).
Closes:https://gitlab.freedesktop.org/drm/amd/-/issues/3599
Closes:https://gitlab.freedesktop.org/drm/amd/-/issues/3501
Signed-off-by: Arunpravin Paneer Selvam <[email protected]>
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Arunpravin Paneer Selvam <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Cc: [email protected] # 6.10+
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index 31fd30dcd593..65bb26215e86 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c @@ -551,6 +551,8 @@ static void amdgpu_uvd_force_into_uvd_segment(struct amdgpu_bo *abo) for (i = 0; i < abo->placement.num_placement; ++i) { abo->placements[i].fpfn = 0 >> PAGE_SHIFT; abo->placements[i].lpfn = (256 * 1024 * 1024) >> PAGE_SHIFT; + if (abo->placements[i].mem_type == TTM_PL_VRAM) + abo->placements[i].flags |= TTM_PL_FLAG_CONTIGUOUS; } } |
