summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/sound/soundcard.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/isa/sound/soundcard.c')
-rw-r--r--sys/i386/isa/sound/soundcard.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/sys/i386/isa/sound/soundcard.c b/sys/i386/isa/sound/soundcard.c
index c2b39d9..60b4ff3 100644
--- a/sys/i386/isa/sound/soundcard.c
+++ b/sys/i386/isa/sound/soundcard.c
@@ -339,14 +339,10 @@ sound_mem_init (void)
if (sound_buffsizes[dev] > 65536) /* Larger is not possible (yet) */
sound_buffsizes[dev] = 65536;
-#if 0
if (sound_dsp_dmachan[dev] > 3 && sound_buffsizes[dev] > 65536)
dma_pagesize = 131072; /* 128k */
else
dma_pagesize = 65536;
-#else
- dma_pagesize = 4096; /* use bounce buffer */
-#endif
/* More sanity checks */
@@ -373,24 +369,16 @@ sound_mem_init (void)
*
* This really needs some kind of finetuning.
*/
- char *tmpbuf = malloc (2*sound_buffsizes[dev], M_DEVBUF, M_NOWAIT);
- unsigned long addr, rounded;
+ char *tmpbuf = contigmalloc (sound_buffsizes[dev], M_DEVBUF, M_NOWAIT, 0xFFFFFFul, 0ul, 0xFFFFul);
if (tmpbuf == NULL)
{
printk ("snd: Unable to allocate %d bytes of buffer\n",
- 2 * sound_buffsizes[dev]);
+ sound_buffsizes[dev]);
return;
}
- addr = kvtop (tmpbuf);
- /*
- * Align the start address
- */
- rounded = (addr & ~(dma_pagesize - 1)) + dma_pagesize;
-
- snd_raw_buf[dev][snd_raw_count[dev]] =
- &tmpbuf[rounded - addr]; /* Compute offset */
+ snd_raw_buf[dev][snd_raw_count[dev]] = tmpbuf;
/*
* Use virtual address as the physical address, since
* isa_dmastart performs the phys address computation.
OpenPOWER on IntegriCloud