Commit fd6139cf authored by Michel Dänzer's avatar Michel Dänzer Committed by Luis Henriques

drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL

commit 233709d2 upstream.

This can be the case when the GPU is powered off, e.g. via vgaswitcheroo
or runpm. When the GPU is powered up again, radeon_gart_table_vram_pin
flushes the TLB after setting rdev->gart.ptr to non-NULL.

Fixes panic on powering off R7xx GPUs.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61529Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent b545ebba
...@@ -249,8 +249,10 @@ void radeon_gart_unbind(struct radeon_device *rdev, unsigned offset, ...@@ -249,8 +249,10 @@ void radeon_gart_unbind(struct radeon_device *rdev, unsigned offset,
} }
} }
} }
mb(); if (rdev->gart.ptr) {
radeon_gart_tlb_flush(rdev); mb();
radeon_gart_tlb_flush(rdev);
}
} }
/** /**
...@@ -292,8 +294,10 @@ int radeon_gart_bind(struct radeon_device *rdev, unsigned offset, ...@@ -292,8 +294,10 @@ int radeon_gart_bind(struct radeon_device *rdev, unsigned offset,
} }
} }
} }
mb(); if (rdev->gart.ptr) {
radeon_gart_tlb_flush(rdev); mb();
radeon_gart_tlb_flush(rdev);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment