Update of /cvsroot/alsa/alsa-kernel/pci
In directory sc8-pr-cvs1:/tmp/cvs-serv13684/pci
Modified Files:
es1938.c
Log Message:
[PATCH: es1938-pcm-prealloc.dif]
- use pre-allocated buffers for PCM buffers.
removed unnecessary fields for dma size.
Index: es1938.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/es1938.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- es1938.c 19 Dec 2002 16:26:30 -0000 1.20
+++ es1938.c 7 Jan 2003 10:55:57 -0000 1.21
@@ -202,8 +202,6 @@
typedef struct _snd_es1938 es1938_t;
struct _snd_es1938 {
- unsigned long dma1size;
- unsigned long dma2size;
int irq;
unsigned long io_port;
@@ -840,6 +838,25 @@
return 0;
}
+/*
+ * buffer management
+ */
+static int snd_es1938_pcm_hw_params(snd_pcm_substream_t *substream,
+ snd_pcm_hw_params_t * hw_params)
+
+{
+ int err;
+
+ if ((err = snd_pcm_lib_malloc_pages(substream,
+params_buffer_bytes(hw_params))) < 0)
+ return err;
+ return 0;
+}
+
+static int snd_es1938_pcm_hw_free(snd_pcm_substream_t *substream)
+{
+ return snd_pcm_lib_free_pages(substream);
+}
+
/* ----------------------------------------------------------------------
* Audio1 Capture (ADC)
* ----------------------------------------------------------------------*/
@@ -890,8 +907,6 @@
if (chip->playback2_substream)
return -EAGAIN;
- if ((runtime->dma_area = snd_malloc_pci_pages_fallback(chip->pci,
chip->dma2size, &runtime->dma_addr, &runtime->dma_bytes)) == NULL)
- return -ENOMEM;
chip->capture_substream = substream;
runtime->hw = snd_es1938_capture;
snd_pcm_hw_constraint_ratnums(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
@@ -907,15 +922,11 @@
switch (substream->number) {
case 0:
- if ((runtime->dma_area = snd_malloc_pci_pages_fallback(chip->pci,
chip->dma1size, &runtime->dma_addr, &runtime->dma_bytes)) == NULL)
- return -ENOMEM;
chip->playback1_substream = substream;
break;
case 1:
if (chip->capture_substream)
return -EAGAIN;
- if ((runtime->dma_area = snd_malloc_pci_pages_fallback(chip->pci,
chip->dma1size, &runtime->dma_addr, &runtime->dma_bytes)) == NULL)
- return -ENOMEM;
chip->playback2_substream = substream;
break;
default:
@@ -963,6 +974,8 @@
.open = snd_es1938_playback_open,
.close = snd_es1938_playback_close,
.ioctl = snd_pcm_lib_ioctl,
+ .hw_params = snd_es1938_pcm_hw_params,
+ .hw_free = snd_es1938_pcm_hw_free,
.prepare = snd_es1938_playback_prepare,
.trigger = snd_es1938_playback_trigger,
.pointer = snd_es1938_playback_pointer,
@@ -972,6 +985,8 @@
.open = snd_es1938_capture_open,
.close = snd_es1938_capture_close,
.ioctl = snd_pcm_lib_ioctl,
+ .hw_params = snd_es1938_pcm_hw_params,
+ .hw_free = snd_es1938_pcm_hw_free,
.prepare = snd_es1938_capture_prepare,
.trigger = snd_es1938_capture_trigger,
.pointer = snd_es1938_capture_pointer,
@@ -1364,8 +1379,6 @@
static int __devinit snd_es1938_create(snd_card_t * card,
struct pci_dev * pci,
- unsigned long dma1size,
- unsigned long dma2size,
es1938_t ** rchip)
{
es1938_t *chip;
@@ -1393,8 +1406,6 @@
spin_lock_init(&chip->mixer_lock);
chip->card = card;
chip->pci = pci;
- chip->dma1size = dma1size;
- chip->dma2size = dma2size;
chip->io_port = pci_resource_start(pci, 0);
if ((chip->res_io_port = request_region(chip->io_port, 8, "ESS Solo-1")) ==
NULL) {
snd_es1938_free(chip);
@@ -1608,10 +1619,7 @@
return -ENODEV;
}
}
- if ((err = snd_es1938_create(card, pci,
- 64 * 1024,
- 64 * 1024,
- &chip)) < 0) {
+ if ((err = snd_es1938_create(card, pci, &chip)) < 0) {
snd_card_free(card);
return err;
}
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog