Update of /cvsroot/alsa/alsa-kernel/isa
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18820/alsa-kernel/isa

Modified Files:
        cmi8330.c es18xx.c sscape.c 
Log Message:
Big DMA cleanup originated by Russell King <[EMAIL PROTECTED]>
* Russel
  - introduced 'struct device' support for 2.6 dma_alloc_coherent()
* Jaroslav
  - removed all bus-specific allocation functions
  - extended snd_dma_alloc_pages/snd_dma_free_pages to handle all bus types
  - recoded all (or almost all) device drivers
  - sgbuf functions are bus independent now


Index: cmi8330.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/isa/cmi8330.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- cmi8330.c   21 Jan 2004 18:32:46 -0000      1.25
+++ cmi8330.c   2 Mar 2004 15:32:36 -0000       1.26
@@ -438,7 +438,9 @@
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, 
&chip->streams[SNDRV_PCM_STREAM_PLAYBACK].ops);
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, 
&chip->streams[SNDRV_PCM_STREAM_CAPTURE].ops);
 
-       snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, 128*1024);
+       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_ISA,
+                                             snd_pcm_isa_flags(0),
+                                             64*1024, 128*1024);
        chip->pcm = pcm;
 
        return 0;

Index: es18xx.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/isa/es18xx.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- es18xx.c    26 Jan 2004 14:27:13 -0000      1.40
+++ es18xx.c    2 Mar 2004 15:32:36 -0000       1.41
@@ -1598,7 +1598,10 @@
        sprintf(pcm->name, "ESS AudioDrive ES%x", chip->version);
         chip->pcm = pcm;
 
-       snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || 
chip->dma2 > 3 ? 128*1024 : 64*1024);
+       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_ISA,
+                                             snd_pcm_isa_flags(0),
+                                             64*1024,
+                                             chip->dma1 > 3 || chip->dma2 > 3 ? 
128*1024 : 64*1024);
 
         if (rpcm)
                *rpcm = pcm;

Index: sscape.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/isa/sscape.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- sscape.c    21 Jan 2004 18:32:46 -0000      1.9
+++ sscape.c    2 Mar 2004 15:32:36 -0000       1.10
@@ -168,23 +168,20 @@
 }
 
 
-struct dmabuf {
-       size_t size;
-       unsigned char *data;
-       dma_addr_t addr;
-};
-
 /*
  * Allocates some kernel memory that we can use for DMA.
  * I think this means that the memory has to map to
  * contiguous pages of physical memory.
  */
-static struct dmabuf *get_dmabuf(struct dmabuf *buf, unsigned long s)
+static struct snd_dma_buffer *get_dmabuf(struct snd_dma_buffer *buf, unsigned long 
size)
 {
        if (buf) {
-               buf->data = snd_malloc_isa_pages_fallback(s, &buf->addr, &buf->size);
-               if (!buf->data) {
-                       snd_printk(KERN_ERR "sscape: Failed to allocate %lu bytes for 
DMA\n", s);
+               struct snd_dma_device dev;
+               memset(&dev, 0, sizeof(dev));
+               dev.type = SNDRV_DMA_TYPE_ISA;
+               dev.dev.flags = GFP_DMA|GFP_ATOMIC;
+               if (snd_dma_alloc_pages_fallback(&dev, size, buf) < 0) {
+                       snd_printk(KERN_ERR "sscape: Failed to allocate %lu bytes for 
DMA\n", size);
                        return NULL;
                }
        }
@@ -195,10 +192,15 @@
 /*
  * Release the DMA-able kernel memory ...
  */
-static void free_dmabuf(struct dmabuf *buf)
+static void free_dmabuf(struct snd_dma_buffer *buf)
 {
-       if (buf && buf->data)
-               snd_free_isa_pages(buf->size, buf->data, buf->addr);
+       if (buf && buf->area) {
+               struct snd_dma_device dev;
+               memset(&dev, 0, sizeof(dev));
+               dev.type = SNDRV_DMA_TYPE_ISA;
+               dev.dev.flags = GFP_DMA|GFP_ATOMIC;
+               snd_dma_free_pages(&dev, buf);
+       }
 }
 
 
@@ -456,7 +458,7 @@
                            size_t size)
 {
        unsigned long flags;
-       struct dmabuf dma;
+       struct snd_dma_buffer dma;
        int ret;
 
        if (!get_dmabuf(&dma, PAGE_ALIGN(size)))
@@ -500,8 +502,8 @@
                 * comes from USERSPACE. We have already verified
                 * the userspace pointer ...
                 */
-               len = min(size, dma.size);
-               __copy_from_user(dma.data, data, len);
+               len = min(size, dma.bytes);
+               __copy_from_user(dma.area, data, len);
                data += len;
                size -= len;
 



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to