Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: fix bug that can't enter thermal interrupt for bonaire.

Set reversed bit to enable/disable thermal interrupt.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>

authored by

Rex Zhu and committed by
Alex Deucher
c305fd5f e1b35f61

+4 -4
+4 -4
drivers/gpu/drm/amd/amdgpu/ci_dpm.c
··· 6569 6569 switch (state) { 6570 6570 case AMDGPU_IRQ_STATE_DISABLE: 6571 6571 cg_thermal_int = RREG32_SMC(ixCG_THERMAL_INT); 6572 - cg_thermal_int &= ~CG_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK; 6572 + cg_thermal_int |= CG_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK; 6573 6573 WREG32_SMC(ixCG_THERMAL_INT, cg_thermal_int); 6574 6574 break; 6575 6575 case AMDGPU_IRQ_STATE_ENABLE: 6576 6576 cg_thermal_int = RREG32_SMC(ixCG_THERMAL_INT); 6577 - cg_thermal_int |= CG_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK; 6577 + cg_thermal_int &= ~CG_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK; 6578 6578 WREG32_SMC(ixCG_THERMAL_INT, cg_thermal_int); 6579 6579 break; 6580 6580 default: ··· 6586 6586 switch (state) { 6587 6587 case AMDGPU_IRQ_STATE_DISABLE: 6588 6588 cg_thermal_int = RREG32_SMC(ixCG_THERMAL_INT); 6589 - cg_thermal_int &= ~CG_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK; 6589 + cg_thermal_int |= CG_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK; 6590 6590 WREG32_SMC(ixCG_THERMAL_INT, cg_thermal_int); 6591 6591 break; 6592 6592 case AMDGPU_IRQ_STATE_ENABLE: 6593 6593 cg_thermal_int = RREG32_SMC(ixCG_THERMAL_INT); 6594 - cg_thermal_int |= CG_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK; 6594 + cg_thermal_int &= ~CG_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK; 6595 6595 WREG32_SMC(ixCG_THERMAL_INT, cg_thermal_int); 6596 6596 break; 6597 6597 default: