ALSA: hda: Force MSI for Hygon H34M51A board
PATCH 1/1 ALSA: hda: Force MSI for Hygon H34M51A board
From: renpanpan <[email protected]>
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.
--- sound/hda/controllers/intel.c | 1 + 1 file changed, 1 insertion(+)
sound/hda/controllers/intel.c +1 -0
@@ -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 */ {} };
Signature · 1 line
2.43.0
Quoted 16 lines · On Thu, 22 Oct 2026 10:54:38 +0200, [email protected] wrote:
From: renpanpan <[email protected]>
The Hygon HDA controller (PCI 1d94:14a9) has
AZX_DCAPS_NO_MSIset in the PCI ID table to use legacy INTx, as MSI may lose interrupts under heavy load on some Hygon platforms (commit41212ff3e4ed("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/interruptsshows 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.
Quoted 6 lines
Force MSI on for subsystem 1d94:c950 by adding it to
msi_deny_listwith value 1. The list is consulted incheck_msi()before theAZX_DCAPS_NO_MSIcheck, so H34M51A gets MSI enabled while other Hygon platforms retain INTx.Signed-off-by renpanpan <[email protected]>
Applied now. Thanks.
Takashi