git: dab9ef544868 - main - snd_hda: fix attaching to some AMD Radeon GPUs

From: Stefan Eßer <se_at_FreeBSD.org>
Date: Thu, 12 Jun 2025 08:19:06 UTC
The branch main has been updated by se:

URL: https://cgit.FreeBSD.org/src/commit/?id=dab9ef5448682c3c35e34d857b17ac1c23445321

commit dab9ef5448682c3c35e34d857b17ac1c23445321
Author:     Stefan Eßer <se@FreeBSD.org>
AuthorDate: 2025-06-12 07:47:57 +0000
Commit:     Stefan Eßer <se@FreeBSD.org>
CommitDate: 2025-06-12 08:15:59 +0000

    snd_hda: fix attaching to some AMD Radeon GPUs
    
    HDMI audio did not work on my older Radeon GPU, the error message
    during attach was:
    
    hdac0: hdac_get_capabilities: Invalid corb size (0)
    
    This is fixed by calling hdac_reset() before the HDA device
    capabilities are retrieved. This solution was proposed by Andriy Gapon
    in 2010, but apparently did not solve the problem reported at the time.
    
    Approved by:    christos
    Differential Revision:  https://reviews.freebsd.org/D50737
---
 sys/dev/sound/pci/hda/hdac.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index 8714f615f846..900578b73de4 100644
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -1278,6 +1278,7 @@ hdac_attach(device_t dev)
 		goto hdac_attach_fail;
 
 	/* Get Capabilities */
+	hdac_reset(sc, 1);
 	result = hdac_get_capabilities(sc);
 	if (result != 0)
 		goto hdac_attach_fail;