Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-9]: src/sys/dev/audio Pull up following revision(s) (requested by...
details: https://anonhg.NetBSD.org/src/rev/65e02ba2d4c0
branches: netbsd-9
changeset: 1001761:65e02ba2d4c0
user: martin <martin%NetBSD.org@localhost>
date: Mon May 18 18:05:34 2020 +0000
description:
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.
diffstat:
sys/dev/audio/audio.c | 42 ++++++++++++++++++++++++++++++------------
1 files changed, 30 insertions(+), 12 deletions(-)
diffs (109 lines):
diff -r 0af8d52dedd1 -r 65e02ba2d4c0 sys/dev/audio/audio.c
--- a/sys/dev/audio/audio.c Mon May 18 18:02:23 2020 +0000
+++ b/sys/dev/audio/audio.c Mon May 18 18:05:34 2020 +0000
@@ -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 @@
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 @@
size_t bufsize;
int hwblks;
int blkms;
+ int blkdms;
int error;
KASSERT(hwfmt != NULL);
@@ -4827,8 +4829,13 @@
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 @@
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 @@
if (sc->sc_dying)
return;
+ if (sc->sc_pbusy == false) {
#if defined(DIAGNOSTIC)
- if (sc->sc_pbusy == false) {
- device_printf(sc->sc_dev, "stray interrupt\n");
+ 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 @@
if (sc->sc_dying)
return;
+ if (sc->sc_rbusy == false) {
#if defined(DIAGNOSTIC)
- if (sc->sc_rbusy == false) {
- device_printf(sc->sc_dev, "stray interrupt\n");
+ 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;
Home |
Main Index |
Thread Index |
Old Index