If you've an azalia(4) attaching as "AMD 17h/1xh HD Audio", please
test this diff and report regressions. Especially audio lock ups that
require reboot.

IIRC, MSI was disabled few years ago to "fix" such lockups, and now
this diff suggests we need MSI on certain boards.

Context and diff below:

----- Forwarded message from Andreas Bartelt <o...@bartula.de> -----

Date: Sat, 4 Mar 2023 16:12:22 +0100
From: Andreas Bartelt <o...@bartula.de>
To: Alexandre Ratchov <a...@caoua.org>, b...@openbsd.org
Subject: Re: audio(4) output doesn't work yet on ASUS ProArt X670E-CREATOR WIFI 
mainboard (ALC1220
        CODEC)
User-Agent: Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 
Thunderbird/102.8.0

On 2/27/23 6:41 PM, Andreas Bartelt wrote:
> On 2/27/23 2:40 PM, Alexandre Ratchov wrote:
> > On Sat, Feb 25, 2023 at 05:20:53PM +0100, Andreas Bartelt wrote:
> > > Hi,
> > > 
> > > I've tested a recent OpenBSD snapshot of CURRENT on an ASUS ProArt
> > > X670E-CREATOR WIFI mainboard. According to the information
> > > provided by ASUS,
> > > this mainboard features a "Realtek S1220A CODEC" which attaches as
> > > Realtek
> > > ALC1220 on OpenBSD -- however, audio output (tested with
> > > headphones on the
> > > line out connector) doesn't work there yet. Applications (e.g., mplayer,
> > > mpg123) hang and I can hear no sound.
> > > 
> > > [I don't know if this helps but I previously also had access to an
> > > ASUS ROG
> > > STRIX B550-E GAMING mainboard which, according to ASUS, also features an
> > > S1220A CODEC which also attaches as Realtek ALC1220 on OpenBSD -- audio
> > > output (tested on the line out connector) works there without problems.]
> > > 
> > > In order to verify that the new mainboard doesn't have a physical defect
> > > with regard to the line out audio connector, I've also tested a
> > > FreeBSD 13.2
> > > BETA3 snapshot on the ASUS ProArt X670E-CREATOR WIFI mainboard.
> > > Audio output
> > > worked there out-of-the-box, so this might be a fixable problem on
> > > OpenBSD.
> > > 
> > > I've found some info with regard to audio debugging at
> > > https://www.openbsd.org/faq/faq13.html#audioprob . While running
> > > # cat > /dev/audio0 < /dev/zero
> > > play.bytes doesn't increase at all:
> > > # audioctl play.{bytes,errors}
> > > play.bytes=0
> > > play.errors=0
> > > 
> > 
> > mixerctl shows that the host manages communicate with the codec, but
> > above lines suggest that DMA doesn't start. Could you check if there
> > are any audio-related options in the BIOS? Especially, if there's an
> > option to disable the microphone (or "recording" or alike), please
> > enable it.
> 
> There's no microphone or recording specific options available. I could
> only identify a single audio related configuration option. Under
> Advanced\Onboard Devices Configuration: enable/disable "HD Audio
> Controller" (description says Enable/Disable Azalia HD Audio). It does
> exactly that, i.e., disabling this option removes the azalia1 device from
> OpenBSD's dmesg.
> 
> With this option enabled again, mp3 playback works with FreeBSD but hangs
> with OpenBSD -- same BIOS config.
> 

I've made audio work on the ASUS ProArt X670E-CREATOR WIFI mainboard, simply
by enabling msi.

azalia1 at pci21 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: msi
azalia1: codecs: Realtek ALC1220
audio0 at azalia1

The following diff fixes the problem:
Index: src/sys/dev/pci/azalia.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia.c,v
retrieving revision 1.283
diff -u -p -r1.283 azalia.c
--- src/sys/dev/pci/azalia.c    21 Feb 2023 13:42:59 -0000      1.283
+++ src/sys/dev/pci/azalia.c    4 Mar 2023 15:02:31 -0000
@@ -554,7 +554,6 @@ azalia_pci_attach(struct device *parent,
        if (PCI_VENDOR(sc->pciid) == PCI_VENDOR_AMD) {
                switch (PCI_PRODUCT(sc->pciid)) {
                case PCI_PRODUCT_AMD_17_HDA:
-               case PCI_PRODUCT_AMD_17_1X_HDA:
                case PCI_PRODUCT_AMD_HUDSON2_HDA:
                        pa->pa_flags &= ~PCI_FLAGS_MSI_ENABLED;
                }

OK?


----- End forwarded message -----

Reply via email to