Update of /cvsroot/alsa/alsa-kernel/pci/rme9652
In directory sc8-pr-cvs1:/tmp/cvs-serv22597
Modified Files:
Makefile hdsp.c rme9652.c
Removed Files:
hammerfall_mem.c
Log Message:
- rewritten the buffer allocation to use the standard ALSA buffer
allocator. snd-hammerfall-mem is replaced with snd-page-alloc
and dropped.
Index: Makefile
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/rme9652/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile 9 Feb 2003 18:41:57 -0000 1.7
+++ Makefile 3 Jul 2003 11:31:21 -0000 1.8
@@ -3,10 +3,9 @@
# Copyright (c) 2001 by Jaroslav Kysela <[EMAIL PROTECTED]>
#
-snd-hammerfall-mem-objs := hammerfall_mem.o
snd-rme9652-objs := rme9652.o
snd-hdsp-objs := hdsp.o
# Toplevel Module Dependency
-obj-$(CONFIG_SND_RME9652) += snd-rme9652.o snd-hammerfall-mem.o
-obj-$(CONFIG_SND_HDSP) += snd-hdsp.o snd-hammerfall-mem.o
+obj-$(CONFIG_SND_RME9652) += snd-rme9652.o
+obj-$(CONFIG_SND_HDSP) += snd-hdsp.o
Index: hdsp.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/rme9652/hdsp.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- hdsp.c 1 Jul 2003 15:48:40 -0000 1.38
+++ hdsp.c 3 Jul 2003 11:31:21 -0000 1.39
@@ -438,8 +438,39 @@
#define HDSP_PREALLOCATE_MEMORY /* via module snd-hdsp_mem */
#ifdef HDSP_PREALLOCATE_MEMORY
-extern void *snd_hammerfall_get_buffer(struct pci_dev *, dma_addr_t *dmaaddr);
-extern void snd_hammerfall_free_buffer(struct pci_dev *, void *ptr);
+static void *snd_hammerfall_get_buffer(struct pci_dev *pci, size_t size, dma_addr_t
*addrp, int capture)
+{
+ struct snd_dma_device pdev;
+ struct snd_dma_buffer dmbuf;
+
+ snd_dma_device_pci(&pdev, pci, capture);
+ dmbuf.bytes = 0;
+ if (! snd_dma_get_reserved(&pdev, &dmbuf)) {
+ if (snd_dma_alloc_pages(&pdev, size, &dmbuf) < 0)
+ return NULL;
+ snd_dma_set_reserved(&pdev, &dmbuf);
+ }
+ *addrp = dmbuf.addr;
+ return dmbuf.area;
+}
+
+static void snd_hammerfall_free_buffer(struct pci_dev *pci, size_t size, void *ptr,
dma_addr_t addr, int capture)
+{
+ struct snd_dma_device dev;
+ snd_dma_device_pci(&dev, pci, capture);
+ snd_dma_free_reserved(&dev);
+}
+
+#else
+static void *snd_hammerfall_get_buffer(struct pci_dev *pci, size_t size, dma_addr_t
*addrp, int capture)
+{
+ return snd_malloc_pci_pages(pci, size, addrp);
+}
+
+static void snd_hammerfall_free_buffer(struct pci_dev *pci, size_t size, void *ptr,
dma_addr_t addr, int capture)
+{
+ snd_free_pci_pages(pci, size, ptr, addr);
+}
#endif
static struct pci_device_id snd_hdsp_ids[] __devinitdata = {
@@ -2968,25 +2999,15 @@
static void snd_hdsp_free_buffers(hdsp_t *hdsp)
{
if (hdsp->capture_buffer_unaligned) {
-#ifndef HDSP_PREALLOCATE_MEMORY
- snd_free_pci_pages(hdsp->pci,
- HDSP_DMA_AREA_BYTES,
- hdsp->capture_buffer_unaligned,
- hdsp->capture_buffer_addr);
-#else
- snd_hammerfall_free_buffer(hdsp->pci, hdsp->capture_buffer_unaligned);
-#endif
+ snd_hammerfall_free_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES,
+ hdsp->capture_buffer_unaligned,
+ hdsp->capture_buffer_addr, 1);
}
if (hdsp->playback_buffer_unaligned) {
-#ifndef HDSP_PREALLOCATE_MEMORY
- snd_free_pci_pages(hdsp->pci,
- HDSP_DMA_AREA_BYTES,
- hdsp->playback_buffer_unaligned,
- hdsp->playback_buffer_addr);
-#else
- snd_hammerfall_free_buffer(hdsp->pci, hdsp->playback_buffer_unaligned);
-#endif
+ snd_hammerfall_free_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES,
+ hdsp->playback_buffer_unaligned,
+ hdsp->playback_buffer_addr, 0);
}
}
@@ -2996,28 +3017,15 @@
dma_addr_t pb_addr, cb_addr;
unsigned long pb_bus, cb_bus;
-#ifndef HDSP_PREALLOCATE_MEMORY
- cb = snd_malloc_pci_pages(hdsp->pci, HDSP_DMA_AREA_BYTES, &cb_addr);
- pb = snd_malloc_pci_pages(hdsp->pci, HDSP_DMA_AREA_BYTES, &pb_addr);
-#else
- cb = snd_hammerfall_get_buffer(hdsp->pci, &cb_addr);
- pb = snd_hammerfall_get_buffer(hdsp->pci, &pb_addr);
-#endif
+ cb = snd_hammerfall_get_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES, &cb_addr, 1);
+ pb = snd_hammerfall_get_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES, &pb_addr, 0);
if (cb == 0 || pb == 0) {
if (cb) {
-#ifdef HDSP_PREALLOCATE_MEMORY
- snd_hammerfall_free_buffer(hdsp->pci, cb);
-#else
- snd_free_pci_pages(hdsp->pci, HDSP_DMA_AREA_BYTES, cb,
cb_addr);
-#endif
+ snd_hammerfall_free_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES, cb,
cb_addr, 1);
}
if (pb) {
-#ifdef HDSP_PREALLOCATE_MEMORY
- snd_hammerfall_free_buffer(hdsp->pci, pb);
-#else
- snd_free_pci_pages(hdsp->pci, HDSP_DMA_AREA_BYTES, pb,
pb_addr);
-#endif
+ snd_hammerfall_free_buffer(hdsp->pci, HDSP_DMA_AREA_BYTES, pb,
pb_addr, 0);
}
printk(KERN_ERR "%s: no buffers available\n", hdsp->card_name);
Index: rme9652.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/rme9652/rme9652.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- rme9652.c 30 Apr 2003 11:53:25 -0000 1.34
+++ rme9652.c 3 Jul 2003 11:31:21 -0000 1.35
@@ -309,10 +309,42 @@
#define RME9652_PREALLOCATE_MEMORY /* via module snd-hammerfall-mem */
#ifdef RME9652_PREALLOCATE_MEMORY
-extern void *snd_hammerfall_get_buffer(struct pci_dev *, dma_addr_t *dmaaddr);
-extern void snd_hammerfall_free_buffer(struct pci_dev *, void *ptr);
+static void *snd_hammerfall_get_buffer(struct pci_dev *pci, size_t size, dma_addr_t
*addrp, int capture)
+{
+ struct snd_dma_device pdev;
+ struct snd_dma_buffer dmbuf;
+
+ snd_dma_device_pci(&pdev, pci, capture);
+ dmbuf.bytes = 0;
+ if (! snd_dma_get_reserved(&pdev, &dmbuf)) {
+ if (snd_dma_alloc_pages(&pdev, size, &dmbuf) < 0)
+ return NULL;
+ snd_dma_set_reserved(&pdev, &dmbuf);
+ }
+ *addrp = dmbuf.addr;
+ return dmbuf.area;
+}
+
+static void snd_hammerfall_free_buffer(struct pci_dev *pci, size_t size, void *ptr,
dma_addr_t addr, int capture)
+{
+ struct snd_dma_device dev;
+ snd_dma_device_pci(&dev, pci, capture);
+ snd_dma_free_reserved(&dev);
+}
+
+#else
+static void *snd_hammerfall_get_buffer(struct pci_dev *pci, size_t size, dma_addr_t
*addrp, int capture)
+{
+ return snd_malloc_pci_pages(pci, size, addrp);
+}
+
+static void snd_hammerfall_free_buffer(struct pci_dev *pci, size_t size, void *ptr,
dma_addr_t addr, int capture)
+{
+ snd_free_pci_pages(pci, size, ptr, addr);
+}
#endif
+
static struct pci_device_id snd_rme9652_ids[] __devinitdata = {
{
.vendor = 0x10ee,
@@ -1810,25 +1842,15 @@
static void snd_rme9652_free_buffers(rme9652_t *rme9652)
{
if (rme9652->capture_buffer_unaligned) {
-#ifndef RME9652_PREALLOCATE_MEMORY
- snd_free_pci_pages(rme9652->pci,
- RME9652_DMA_AREA_BYTES,
- rme9652->capture_buffer_unaligned,
- rme9652->capture_buffer_addr);
-#else
- snd_hammerfall_free_buffer(rme9652->pci,
rme9652->capture_buffer_unaligned);
-#endif
+ snd_hammerfall_free_buffer(rme9652->pci, RME9652_DMA_AREA_BYTES,
+ rme9652->capture_buffer_unaligned,
+ rme9652->capture_buffer_addr, 1);
}
if (rme9652->playback_buffer_unaligned) {
-#ifndef RME9652_PREALLOCATE_MEMORY
- snd_free_pci_pages(rme9652->pci,
- RME9652_DMA_AREA_BYTES,
- rme9652->playback_buffer_unaligned,
- rme9652->playback_buffer_addr);
-#else
- snd_hammerfall_free_buffer(rme9652->pci,
rme9652->playback_buffer_unaligned);
-#endif
+ snd_hammerfall_free_buffer(rme9652->pci, RME9652_DMA_AREA_BYTES,
+ rme9652->playback_buffer_unaligned,
+ rme9652->playback_buffer_addr, 0);
}
}
@@ -1855,28 +1877,15 @@
dma_addr_t pb_addr, cb_addr;
unsigned long pb_bus, cb_bus;
-#ifndef RME9652_PREALLOCATE_MEMORY
- cb = snd_malloc_pci_pages(rme9652->pci, RME9652_DMA_AREA_BYTES, &cb_addr);
- pb = snd_malloc_pci_pages(rme9652->pci, RME9652_DMA_AREA_BYTES, &pb_addr);
-#else
- cb = snd_hammerfall_get_buffer(rme9652->pci, &cb_addr);
- pb = snd_hammerfall_get_buffer(rme9652->pci, &pb_addr);
-#endif
+ cb = snd_hammerfall_get_buffer(rme9652->pci, RME9652_DMA_AREA_BYTES, &cb_addr,
1);
+ pb = snd_hammerfall_get_buffer(rme9652->pci, RME9652_DMA_AREA_BYTES, &pb_addr,
0);
if (cb == 0 || pb == 0) {
if (cb) {
-#ifdef RME9652_PREALLOCATE_MEMORY
- snd_hammerfall_free_buffer(rme9652->pci, cb);
-#else
- snd_free_pci_pages(rme9652->pci, RME9652_DMA_AREA_BYTES, cb,
cb_addr);
-#endif
+ snd_hammerfall_free_buffer(rme9652->pci,
RME9652_DMA_AREA_BYTES, cb, cb_addr, 1);
}
if (pb) {
-#ifdef RME9652_PREALLOCATE_MEMORY
- snd_hammerfall_free_buffer(rme9652->pci, pb);
-#else
- snd_free_pci_pages(rme9652->pci, RME9652_DMA_AREA_BYTES, pb,
pb_addr);
-#endif
+ snd_hammerfall_free_buffer(rme9652->pci,
RME9652_DMA_AREA_BYTES, pb, pb_addr, 0);
}
printk(KERN_ERR "%s: no buffers available\n", rme9652->card_name);
--- hammerfall_mem.c DELETED ---
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog