aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sound
diff options
context:
space:
mode:
authorChristos Margiolis <christos@FreeBSD.org>2026-01-02 15:49:33 +0000
committerChristos Margiolis <christos@FreeBSD.org>2026-01-02 15:49:33 +0000
commit2455db44ef088797d113397f863d46c50e77134f (patch)
treec0837541d38b40e0940feaa72633571e91b686a0 /sys/dev/sound
parent3542d60fb8042474f66fbf2d779ed8c5a80d0f78 (diff)
Diffstat (limited to 'sys/dev/sound')
-rw-r--r--sys/dev/sound/pci/hda/hdac.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index d1de81e7ba29..d397e98b4be3 100644
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -545,9 +545,12 @@ hdac_get_capabilities(struct hdac_softc *sc)
HDAC_CORBSIZE_CORBSZCAP_2)
sc->corb_size = 2;
else {
- device_printf(sc->dev, "%s: Invalid corb size (%x)\n",
+ device_printf(sc->dev, "%s: Hardware reports invalid corb size "
+ "(%x), defaulting to 256\n",
__func__, corbsize);
- return (ENXIO);
+ sc->corb_size = 256;
+ corbsize = HDAC_CORBSIZE_CORBSIZE(HDAC_CORBSIZE_CORBSIZE_256);
+ HDAC_WRITE_1(&sc->mem, HDAC_CORBSIZE, corbsize);
}
rirbsize = HDAC_READ_1(&sc->mem, HDAC_RIRBSIZE);
@@ -561,9 +564,12 @@ hdac_get_capabilities(struct hdac_softc *sc)
HDAC_RIRBSIZE_RIRBSZCAP_2)
sc->rirb_size = 2;
else {
- device_printf(sc->dev, "%s: Invalid rirb size (%x)\n",
+ device_printf(sc->dev, "%s: Hardware reports invalid rirb size "
+ "(%x), defaulting to 256\n",
__func__, rirbsize);
- return (ENXIO);
+ sc->rirb_size = 256;
+ rirbsize = HDAC_RIRBSIZE_RIRBSIZE(HDAC_RIRBSIZE_RIRBSIZE_256);
+ HDAC_WRITE_1(&sc->mem, HDAC_RIRBSIZE, rirbsize);
}
HDA_BOOTVERBOSE(