git: ed61d50bd404 - stable/15 - snd_hda: Default to 256 when corb/rirb is invalid
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 09 Jan 2026 23:27:36 UTC
The branch stable/15 has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=ed61d50bd404070229a459a98ff1b1e36f6828bb
commit ed61d50bd404070229a459a98ff1b1e36f6828bb
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2026-01-02 15:49:33 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2026-01-09 23:27:22 +0000
snd_hda: Default to 256 when corb/rirb is invalid
PR: 289284
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D54339
(cherry picked from commit 2455db44ef088797d113397f863d46c50e77134f)
---
sys/dev/sound/pci/hda/hdac.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index ecf2e74000b7..10bda939d606 100644
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -544,9 +544,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);
@@ -560,9 +563,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(