drm/amdgpu/gfx8: fix CGCG_CGLS handling
When setting up the RLC, only disable the CGCG and CGLS bits rather than clearing the entire register to avoid losing the golden settings. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
9305ee6fe5
Коммит
6ae81452f9
|
@ -4087,14 +4087,21 @@ static int gfx_v8_0_rlc_load_microcode(struct amdgpu_device *adev)
|
||||||
static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
|
static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
u32 tmp;
|
||||||
|
|
||||||
gfx_v8_0_rlc_stop(adev);
|
gfx_v8_0_rlc_stop(adev);
|
||||||
|
|
||||||
/* disable CG */
|
/* disable CG */
|
||||||
WREG32(mmRLC_CGCG_CGLS_CTRL, 0);
|
tmp = RREG32(mmRLC_CGCG_CGLS_CTRL);
|
||||||
|
tmp &= ~(RLC_CGCG_CGLS_CTRL__CGCG_EN_MASK |
|
||||||
|
RLC_CGCG_CGLS_CTRL__CGLS_EN_MASK);
|
||||||
|
WREG32(mmRLC_CGCG_CGLS_CTRL, tmp);
|
||||||
if (adev->asic_type == CHIP_POLARIS11 ||
|
if (adev->asic_type == CHIP_POLARIS11 ||
|
||||||
adev->asic_type == CHIP_POLARIS10)
|
adev->asic_type == CHIP_POLARIS10) {
|
||||||
WREG32(mmRLC_CGCG_CGLS_CTRL_3D, 0);
|
tmp = RREG32(mmRLC_CGCG_CGLS_CTRL_3D);
|
||||||
|
tmp &= ~0x3;
|
||||||
|
WREG32(mmRLC_CGCG_CGLS_CTRL_3D, tmp);
|
||||||
|
}
|
||||||
|
|
||||||
/* disable PG */
|
/* disable PG */
|
||||||
WREG32(mmRLC_PG_CNTL, 0);
|
WREG32(mmRLC_PG_CNTL, 0);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче