Skip to content

Commit e1188aa

Browse files
committed
drm/amdgpu/smu11: add support for SMU AC/DC interrupts
Driver needs to send the ack message when it receives the AC/DC interrupt from the SMU. TODO: verify the client and src ids. Bug: https://gitlab.freedesktop.org/drm/amd/issues/1043 Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 9644bf5 commit e1188aa

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

drivers/gpu/drm/amd/powerplay/smu_v11_0.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,6 +1525,13 @@ int smu_v11_0_set_xgmi_pstate(struct smu_context *smu,
15251525
return ret;
15261526
}
15271527

1528+
static int smu_v11_0_ack_ac_dc_interrupt(struct smu_context *smu)
1529+
{
1530+
return smu_send_smc_msg(smu,
1531+
SMU_MSG_ReenableAcDcInterrupt,
1532+
NULL);
1533+
}
1534+
15281535
#define THM_11_0__SRCID__THM_DIG_THERM_L2H 0 /* ASIC_TEMP > CG_THERMAL_INT.DIG_THERM_INTH */
15291536
#define THM_11_0__SRCID__THM_DIG_THERM_H2L 1 /* ASIC_TEMP < CG_THERMAL_INT.DIG_THERM_INTL */
15301537

@@ -1558,6 +1565,9 @@ static int smu_v11_0_irq_process(struct amdgpu_device *adev,
15581565
break;
15591566

15601567
}
1568+
} else if (client_id == SOC15_IH_CLIENTID_MP1) {
1569+
if (src_id == 0xfe)
1570+
smu_v11_0_ack_ac_dc_interrupt(&adev->smu);
15611571
}
15621572

15631573
return 0;
@@ -1597,6 +1607,12 @@ int smu_v11_0_register_irq_handler(struct smu_context *smu)
15971607
if (ret)
15981608
return ret;
15991609

1610+
ret = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_MP1,
1611+
0xfe,
1612+
irq_src);
1613+
if (ret)
1614+
return ret;
1615+
16001616
return ret;
16011617
}
16021618

0 commit comments

Comments
 (0)