Module Name: src Committed By: martin Date: Mon May 18 18:05:34 UTC 2020
Modified Files: src/sys/dev/audio [netbsd-9]: audio.c Log Message: Pull up following revision(s) (requested by isaki in ticket #910): sys/dev/audio/audio.c: revision 1.49 sys/dev/audio/audio.c: revision 1.61 sys/dev/audio/audio.c: revision 1.66 sys/dev/audio/audio.c: revision 1.67 Move #if DIAGNOSTIC..#endif to correct place. It should ignore stray interrupts regardless of DIAGNOSTIC. Improve an error message about round_blocksize. Improve diagnostic messages. Improve the blocksize notation. The blocksize is expressed in bytes, and the millisecond notation is supplementary information to make it easier to understand. To generate a diff of this commit: cvs rdiff -u -r1.28.2.13 -r1.28.2.14 src/sys/dev/audio/audio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/audio/audio.c diff -u src/sys/dev/audio/audio.c:1.28.2.13 src/sys/dev/audio/audio.c:1.28.2.14 --- src/sys/dev/audio/audio.c:1.28.2.13 Mon May 18 18:02:23 2020 +++ src/sys/dev/audio/audio.c Mon May 18 18:05:34 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: audio.c,v 1.28.2.13 2020/05/18 18:02:23 martin Exp $ */ +/* $NetBSD: audio.c,v 1.28.2.14 2020/05/18 18:05:34 martin Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -138,7 +138,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.28.2.13 2020/05/18 18:02:23 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.28.2.14 2020/05/18 18:05:34 martin Exp $"); #ifdef _KERNEL_OPT #include "audio.h" @@ -4783,6 +4783,7 @@ audio_mixer_init(struct audio_softc *sc, const audio_format2_t *hwfmt, const audio_filter_reg_t *reg) { char codecbuf[64]; + char blkdmsbuf[8]; audio_trackmixer_t *mixer; void (*softint_handler)(void *); int len; @@ -4791,6 +4792,7 @@ audio_mixer_init(struct audio_softc *sc, size_t bufsize; int hwblks; int blkms; + int blkdms; int error; KASSERT(hwfmt != NULL); @@ -4827,8 +4829,13 @@ audio_mixer_init(struct audio_softc *sc, if ((rounded * NBBY) % (mixer->hwbuf.fmt.stride * mixer->hwbuf.fmt.channels) != 0) { device_printf(sc->sc_dev, - "blksize not configured %d -> %d\n", - blksize, rounded); + "round_blocksize must return blocksize " + "divisible by framesize: " + "blksize=%d rounded=%d " + "stride=%ubit channels=%u\n", + blksize, rounded, + mixer->hwbuf.fmt.stride, + mixer->hwbuf.fmt.channels); return EINVAL; } /* Recalculation */ @@ -4965,13 +4972,20 @@ audio_mixer_init(struct audio_softc *sc, mixer->hwbuf.fmt.precision); } blkms = mixer->blktime_n * 1000 / mixer->blktime_d; - aprint_normal_dev(sc->sc_dev, "%s:%d%s %dch %dHz, blk %dms for %s\n", + blkdms = (mixer->blktime_n * 10000 / mixer->blktime_d) % 10; + blkdmsbuf[0] = '\0'; + if (blkdms != 0) { + snprintf(blkdmsbuf, sizeof(blkdmsbuf), ".%1d", blkdms); + } + aprint_normal_dev(sc->sc_dev, + "%s:%d%s %dch %dHz, blk %d bytes (%d%sms) for %s\n", audio_encoding_name(mixer->track_fmt.encoding), mixer->track_fmt.precision, codecbuf, mixer->track_fmt.channels, mixer->track_fmt.sample_rate, - blkms, + blksize, + blkms, blkdmsbuf, (mode == AUMODE_PLAY) ? "playback" : "recording"); return 0; @@ -5455,12 +5469,14 @@ audio_pintr(void *arg) if (sc->sc_dying) return; -#if defined(DIAGNOSTIC) if (sc->sc_pbusy == false) { - device_printf(sc->sc_dev, "stray interrupt\n"); +#if defined(DIAGNOSTIC) + device_printf(sc->sc_dev, + "DIAGNOSTIC: %s raised stray interrupt\n", + device_xname(sc->hw_dev)); +#endif return; } -#endif mixer = sc->sc_pmixer; mixer->hw_complete_counter += mixer->frames_per_block; @@ -5728,12 +5744,14 @@ audio_rintr(void *arg) if (sc->sc_dying) return; -#if defined(DIAGNOSTIC) if (sc->sc_rbusy == false) { - device_printf(sc->sc_dev, "stray interrupt\n"); +#if defined(DIAGNOSTIC) + device_printf(sc->sc_dev, + "DIAGNOSTIC: %s raised stray interrupt\n", + device_xname(sc->hw_dev)); +#endif return; } -#endif mixer = sc->sc_rmixer; mixer->hw_complete_counter += mixer->frames_per_block;