[PATCH] ALSA: hda: Force MSI for Hygon H34M51A board

From: rppxj178543

Date: Thu Oct 22 2026 - 04:55:39 EST


From: renpanpan <renpanpan@xxxxxxxxxx>

The Hygon HDA controller (PCI 1d94:14a9) has AZX_DCAPS_NO_MSI set in
the PCI ID table to use legacy INTx, as MSI may lose interrupts under
heavy load on some Hygon platforms (commit 41212ff3e4ed ("ALSA: hda:
Add support for Hygon family 18h model 5h HD-Audio")).

However, on the Kunlun H34M51A board (PCI subsystem 1d94:c950) the
INTx interrupt line is not wired. /proc/interrupts shows zero count
for the HDA IRQ from boot, so the RIRB interrupt handler is never
called. Without RIRB processing, azx_rirb_get_response() times out
after 1 s, switches to polling mode, and the resulting slow codec
communication delays card registration by ~20 s and breaks
unsolicited jack-detection event delivery.

Force MSI on for subsystem 1d94:c950 by adding it to msi_deny_list
with value 1. The list is consulted in check_msi() before the
AZX_DCAPS_NO_MSI check, so H34M51A gets MSI enabled while other
Hygon platforms retain INTx.

Signed-off-by: renpanpan <renpanpan@xxxxxxxxxx>
---
sound/hda/controllers/intel.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/hda/controllers/intel.c b/sound/hda/controllers/intel.c
index 24015c73a67f..fa36ed4c1153 100644
--- a/sound/hda/controllers/intel.c
+++ b/sound/hda/controllers/intel.c
@@ -1669,6 +1669,7 @@ static const struct snd_pci_quirk msi_deny_list[] = {
SND_PCI_QUIRK(0x1179, 0xfb44, "Toshiba Satellite C870", 0), /* AMD Hudson */
SND_PCI_QUIRK(0x1849, 0x0888, "ASRock", 0), /* Athlon64 X2 + nvidia */
SND_PCI_QUIRK(0xa0a0, 0x0575, "Aopen MZ915-M", 0), /* ICH6 */
+ SND_PCI_QUIRK(0x1d94, 0xc950, "Hygon H34M51A", 1), /* INTx broken */
{}
};

--
2.43.0