Module Name: src
Committed By: macallan
Date: Wed Mar 9 05:40:11 UTC 2011
Modified Files:
src/sys/dev/sbus: dbri.c
Log Message:
change dbri's DMA segment size to a power of two value - the ship allows
segments up to 0x1fff bytes but even rounded to 32bit this seems to
confuse the rest of the audio code these days
TODO: we don't need to interrupt at every single segment
either way, with this mpg123 doesn't produce semi-random funny noises
anymore
To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/dev/sbus/dbri.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/sbus/dbri.c
diff -u src/sys/dev/sbus/dbri.c:1.32 src/sys/dev/sbus/dbri.c:1.33
--- src/sys/dev/sbus/dbri.c:1.32 Tue Jan 11 00:49:50 2011
+++ src/sys/dev/sbus/dbri.c Wed Mar 9 05:40:11 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: dbri.c,v 1.32 2011/01/11 00:49:50 macallan Exp $ */
+/* $NetBSD: dbri.c,v 1.33 2011/03/09 05:40:11 macallan Exp $ */
/*
* Copyright (C) 1997 Rudolf Koenig ([email protected])
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.32 2011/01/11 00:49:50 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.33 2011/03/09 05:40:11 macallan Exp $");
#include "audio.h"
#if NAUDIO > 0
@@ -1729,8 +1729,12 @@
const audio_params_t *param)
{
- /* DBRI DMA segment size, rounded down to 32bit alignment */
- return 0x1ffc;
+ /*
+ * DBRI DMA segment size can be up to 0x1fff, sixes that are not powers
+ * of two seem to confuse the upper audio layer so we're going with
+ * 0x1000 here
+ */
+ return 0x1000;
}
static int
@@ -1946,7 +1950,7 @@
dbri_round_buffersize(void *hdl, int dir, size_t bufsize)
{
#ifdef DBRI_BIG_BUFFER
- return 16*0x1ffc; /* use ~128KB buffer */
+ return 0x20000; /* use 128KB buffer */
#else
return bufsize;
#endif