Skip to content
Snippets Groups Projects
Commit e4518762 authored by Christian König's avatar Christian König
Browse files

drm/radeon/uvd: use lower clocks on old UVD to boot v2

Some RV7xx generation hardware crashes after you
raise the UVD clocks for the first time. Try to
avoid this by using the lower clocks to boot these.

Workaround for: https://bugzilla.kernel.org/show_bug.cgi?id=71891



v2: lower clocks on IB test as well

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent b8eade24
No related branches found
No related tags found
No related merge requests found
...@@ -83,7 +83,10 @@ int uvd_v1_0_init(struct radeon_device *rdev) ...@@ -83,7 +83,10 @@ int uvd_v1_0_init(struct radeon_device *rdev)
int r; int r;
/* raise clocks while booting up the VCPU */ /* raise clocks while booting up the VCPU */
radeon_set_uvd_clocks(rdev, 53300, 40000); if (rdev->family < CHIP_RV740)
radeon_set_uvd_clocks(rdev, 10000, 10000);
else
radeon_set_uvd_clocks(rdev, 53300, 40000);
r = uvd_v1_0_start(rdev); r = uvd_v1_0_start(rdev);
if (r) if (r)
...@@ -407,7 +410,10 @@ int uvd_v1_0_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) ...@@ -407,7 +410,10 @@ int uvd_v1_0_ib_test(struct radeon_device *rdev, struct radeon_ring *ring)
struct radeon_fence *fence = NULL; struct radeon_fence *fence = NULL;
int r; int r;
r = radeon_set_uvd_clocks(rdev, 53300, 40000); if (rdev->family < CHIP_RV740)
r = radeon_set_uvd_clocks(rdev, 10000, 10000);
else
r = radeon_set_uvd_clocks(rdev, 53300, 40000);
if (r) { if (r) {
DRM_ERROR("radeon: failed to raise UVD clocks (%d).\n", r); DRM_ERROR("radeon: failed to raise UVD clocks (%d).\n", r);
return r; return r;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment