summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/sound/usb/uaudio.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/sys/dev/sound/usb/uaudio.c b/sys/dev/sound/usb/uaudio.c
index 1af8cb2..de5b1ab 100644
--- a/sys/dev/sound/usb/uaudio.c
+++ b/sys/dev/sound/usb/uaudio.c
@@ -1665,21 +1665,10 @@ uaudio_chan_fill_info_sub(struct uaudio_softc *sc, struct usb_device *udev,
} else if (audio_rev >= UAUDIO_VERSION_20) {
uint32_t dwFormat;
- uint8_t bSubslotSize;
dwFormat = UGETDW(asid.v2->bmFormats);
bChannels = asid.v2->bNrChannels;
- bBitResolution = asf1d.v2->bBitResolution;
- bSubslotSize = asf1d.v2->bSubslotSize;
-
- /* Map 4-byte aligned 24-bit samples into 32-bit */
- if (bBitResolution == 24 && bSubslotSize == 4)
- bBitResolution = 32;
-
- if (bBitResolution != (bSubslotSize * 8)) {
- DPRINTF("Invalid bSubslotSize\n");
- goto next_ep;
- }
+ bBitResolution = asf1d.v2->bSubslotSize * 8;
if ((bChannels != channels) ||
(bBitResolution != bit_resolution)) {
@@ -1726,7 +1715,7 @@ uaudio_chan_fill_info_sub(struct uaudio_softc *sc, struct usb_device *udev,
wFormat = UGETW(asid.v1->wFormatTag);
bChannels = UAUDIO_MAX_CHAN(asf1d.v1->bNrChannels);
- bBitResolution = asf1d.v1->bBitResolution;
+ bBitResolution = asf1d.v1->bSubFrameSize * 8;
if (asf1d.v1->bSamFreqType == 0) {
DPRINTFN(16, "Sample rate: %d-%dHz\n",
OpenPOWER on IntegriCloud