mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
drm/amd/display: Disable ips before dc interrupt setting
[Why] While in IPS2 an access to dcn registers is not allowed. If interrupt results in dc call, we should disable IPS. [How] Safeguard register access in IPS2 by disabling idle optimization before calling dc interrupt setting api. Signed-off-by: Roman Li <Roman.Li@amd.com> Tested-by: Mark Broadworth <mark.broadworth@amd.com> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
f37f797920
commit
8894b9283a
1 changed files with 4 additions and 1 deletions
|
@ -711,7 +711,7 @@ static inline int dm_irq_state(struct amdgpu_device *adev,
|
|||
{
|
||||
bool st;
|
||||
enum dc_irq_source irq_source;
|
||||
|
||||
struct dc *dc = adev->dm.dc;
|
||||
struct amdgpu_crtc *acrtc = adev->mode_info.crtcs[crtc_id];
|
||||
|
||||
if (!acrtc) {
|
||||
|
@ -729,6 +729,9 @@ static inline int dm_irq_state(struct amdgpu_device *adev,
|
|||
|
||||
st = (state == AMDGPU_IRQ_STATE_ENABLE);
|
||||
|
||||
if (dc && dc->caps.ips_support && dc->idle_optimizations_allowed)
|
||||
dc_allow_idle_optimizations(dc, false);
|
||||
|
||||
dc_interrupt_set(adev->dm.dc, irq_source, st);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue