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

drm/amd/powerplay: ack the SMUToHost interrupt on receive V2

There will be no further interrupt without proper ack
for current one.

V2: fix typo to really set ACK bit only

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Evan Quan and committed by
Alex Deucher
d559aba8 2652bda7

+6
+6
drivers/gpu/drm/amd/powerplay/smu_v11_0.c
··· 1531 1531 * events for SMCToHost interrupt. 1532 1532 */ 1533 1533 uint32_t ctxid = entry->src_data[0]; 1534 + uint32_t data; 1534 1535 1535 1536 if (client_id == SOC15_IH_CLIENTID_THM) { 1536 1537 switch (src_id) { ··· 1561 1560 orderly_poweroff(true); 1562 1561 } else if (client_id == SOC15_IH_CLIENTID_MP1) { 1563 1562 if (src_id == 0xfe) { 1563 + /* ACK SMUToHost interrupt */ 1564 + data = RREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL); 1565 + data = REG_SET_FIELD(data, MP1_SMN_IH_SW_INT_CTRL, INT_ACK, 1); 1566 + WREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL, data); 1567 + 1564 1568 switch (ctxid) { 1565 1569 case 0x3: 1566 1570 dev_dbg(adev->dev, "Switched to AC mode!\n");