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

Reply via email to