* alsa dma transfer
@ 2005-06-29 6:35 Tehn-Yit Chin
2005-06-29 7:21 ` Lee Revell
2005-06-29 9:26 ` Takashi Iwai
0 siblings, 2 replies; 12+ messages in thread
From: Tehn-Yit Chin @ 2005-06-29 6:35 UTC (permalink / raw)
To: alsa-devel
Hi,
Please bear with me as I am a newbie at writing an ALSA device driver. I
am a bit confused as to how ALSA manages its buffers and memory.
Currently, I am confused as to audio data is being passed into the
device driver so that the driver can start the DMA transfer
I have read Takashi Iwai doc on "Writing an ALSA Driver" and reviewed
some of the drivers already in the source tree and was not able to get a
clear understanding of it.
>From what I can tell, runtime->dma_start is a virtual memory buffer that
has the audio data, and the amount of data to transfer is in
frames_to_bytes(runtime, runtime->period_size). Is this right?
And how do I tell pcm layer that the device does not support recording?
Many thanks,
Tehn Yit Chin
Software Engineer, Grey Innovation Pty. Ltd.
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id\x16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-06-29 6:35 alsa dma transfer Tehn-Yit Chin
@ 2005-06-29 7:21 ` Lee Revell
2005-06-29 9:26 ` Takashi Iwai
1 sibling, 0 replies; 12+ messages in thread
From: Lee Revell @ 2005-06-29 7:21 UTC (permalink / raw)
To: Tehn-Yit Chin; +Cc: alsa-devel
On Wed, 2005-06-29 at 16:35 +1000, Tehn-Yit Chin wrote:
> And how do I tell pcm layer that the device does not support recording?
I'll let someone else field the first question...
If you don't implement capture in your driver, the PCM layer will not
present any capture devices to userspace.
Lee
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-06-29 6:35 alsa dma transfer Tehn-Yit Chin
2005-06-29 7:21 ` Lee Revell
@ 2005-06-29 9:26 ` Takashi Iwai
2005-06-29 12:33 ` Raymond
1 sibling, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2005-06-29 9:26 UTC (permalink / raw)
To: Tehn-Yit Chin; +Cc: alsa-devel
At Wed, 29 Jun 2005 16:35:21 +1000,
Tehn-Yit Chin wrote:
>
> From what I can tell, runtime->dma_start is a virtual memory buffer that
> has the audio data, and the amount of data to transfer is in
> frames_to_bytes(runtime, runtime->period_size). Is this right?
runtime->dma_area is the virtual address and runtime->dma_addr is the
physical (more exactly bus) address. They are set up either via
snd_pcm_lib_malloc_pages() or manually by yourself in hwparams
callback. In the former case, you'll need the buffer pre-allocation
beforehand at the creation of PCM instance.
> And how do I tell pcm layer that the device does not support recording?
Pass 0 to capture_count of snd_pcm_new().
Takashi
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-06-29 9:26 ` Takashi Iwai
@ 2005-06-29 12:33 ` Raymond
2005-06-29 13:40 ` Takashi Iwai
0 siblings, 1 reply; 12+ messages in thread
From: Raymond @ 2005-06-29 12:33 UTC (permalink / raw)
To: alsa-devel
Takashi Iwai wrote:
> At Wed, 29 Jun 2005 16:35:21 +1000,
> Tehn-Yit Chin wrote:
>
>>From what I can tell, runtime->dma_start is a virtual memory buffer that
>>has the audio data, and the amount of data to transfer is in
>>frames_to_bytes(runtime, runtime->period_size). Is this right?
>
>
> runtime->dma_area is the virtual address and runtime->dma_addr is the
> physical (more exactly bus) address. They are set up either via
> snd_pcm_lib_malloc_pages() or manually by yourself in hwparams
> callback. In the former case, you'll need the buffer pre-allocation
> beforehand at the creation of PCM instance.
>
>
When implementing wavetable synth in au88x0, how to setup DMA in order
to play those pre-loaded sound font samples (loaded to snd_util_memhdr_t
using hwdep) through PCM (hw:0) ?
The device hw:0 allow sending 16 mono PCM samples ( change pitch by SRC
and panning by hardware mixer, no reverb and chrous effect) to AC97 codec
How to ensure each sound font samples loaded in memory aligned at 4K
boundary ?
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: alsa dma transfer
@ 2005-06-29 12:53 Tehn-Yit Chin
2005-06-29 13:34 ` Takashi Iwai
0 siblings, 1 reply; 12+ messages in thread
From: Tehn-Yit Chin @ 2005-06-29 12:53 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 1377 bytes --]
Cool. I believe that I am doing the right thing.
I am calling snd_pcm_lib_malloc_pages() for the hw_params callback and snd_pcm_lib_free_pages() for the hw_free callback. I also call snd_pcm_lib_preallocate_pages_for_all() during the initialisation of the driver which I think is the buffer pre-allocation that Takashi Iwai is talking about.
Does the pre-allocated memory need to be freed when we are exiting the driver?
Tehn Yit Chin
-----Original Message-----
From: Takashi Iwai [mailto:tiwai@suse.de]
Sent: Wed 6/29/2005 7:26 PM
To: Tehn-Yit Chin
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: [Alsa-devel] alsa dma transfer
At Wed, 29 Jun 2005 16:35:21 +1000,
Tehn-Yit Chin wrote:
>
> From what I can tell, runtime->dma_start is a virtual memory buffer that
> has the audio data, and the amount of data to transfer is in
> frames_to_bytes(runtime, runtime->period_size). Is this right?
runtime->dma_area is the virtual address and runtime->dma_addr is the
physical (more exactly bus) address. They are set up either via
snd_pcm_lib_malloc_pages() or manually by yourself in hwparams
callback. In the former case, you'll need the buffer pre-allocation
beforehand at the creation of PCM instance.
> And how do I tell pcm layer that the device does not support recording?
Pass 0 to capture_count of snd_pcm_new().
Takashi
[-- Attachment #2: Type: text/html, Size: 1963 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-06-29 12:53 Tehn-Yit Chin
@ 2005-06-29 13:34 ` Takashi Iwai
0 siblings, 0 replies; 12+ messages in thread
From: Takashi Iwai @ 2005-06-29 13:34 UTC (permalink / raw)
To: Tehn-Yit Chin; +Cc: alsa-devel
At Wed, 29 Jun 2005 22:53:56 +1000,
Tehn-Yit Chin wrote:
>
> Cool. I believe that I am doing the right thing.
>
> I am calling snd_pcm_lib_malloc_pages() for the hw_params callback and
> snd_pcm_lib_free_pages() for the hw_free callback. I also call
> snd_pcm_lib_preallocate_pages_for_all() during the initialisation of the driver which
> I think is the buffer pre-allocation that Takashi Iwai is talking about.
>
> Does the pre-allocated memory need to be freed when we are exiting the driver?
Don't worry, it'll be freed automatically in the destructor of PCM
even without calling explicitly.
Takashi
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: alsa dma transfer
2005-06-29 12:33 ` Raymond
@ 2005-06-29 13:40 ` Takashi Iwai
2005-07-05 12:26 ` Raymond
0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2005-06-29 13:40 UTC (permalink / raw)
To: Raymond; +Cc: alsa-devel
At Wed, 29 Jun 2005 20:33:22 +0800,
Raymond wrote:
>
> Takashi Iwai wrote:
> > At Wed, 29 Jun 2005 16:35:21 +1000,
> > Tehn-Yit Chin wrote:
> >
> >>From what I can tell, runtime->dma_start is a virtual memory buffer that
> >>has the audio data, and the amount of data to transfer is in
> >>frames_to_bytes(runtime, runtime->period_size). Is this right?
> >
> >
> > runtime->dma_area is the virtual address and runtime->dma_addr is the
> > physical (more exactly bus) address. They are set up either via
> > snd_pcm_lib_malloc_pages() or manually by yourself in hwparams
> > callback. In the former case, you'll need the buffer pre-allocation
> > beforehand at the creation of PCM instance.
> >
> >
>
> When implementing wavetable synth in au88x0, how to setup DMA in order
> to play those pre-loaded sound font samples (loaded to snd_util_memhdr_t
> using hwdep) through PCM (hw:0) ?
Don't mix up wavetable synth and PCM. The PCM interface is provided
to play/record the data from/to user-space while wavetable synth is
for playback of predefined samples.
In the case of emu10k1, the same engine is used but the buffer
allocation is different between PCM and wavetable. For PCM, you'll
need to provide the buffer allocation with the size requested through
the PCM API.
> The device hw:0 allow sending 16 mono PCM samples ( change pitch by SRC
> and panning by hardware mixer, no reverb and chrous effect) to AC97 codec
>
> How to ensure each sound font samples loaded in memory aligned at 4K
> boundary ?
Depends. The emu10k1 doesn't align to 4k boundary but just
split to different pages since emu10k1 has its own TLB.
Takashi
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-06-29 13:40 ` Takashi Iwai
@ 2005-07-05 12:26 ` Raymond
2005-07-05 13:12 ` Takashi Iwai
0 siblings, 1 reply; 12+ messages in thread
From: Raymond @ 2005-07-05 12:26 UTC (permalink / raw)
To: alsa-devel
Takashi Iwai wrote:
> At Wed, 29 Jun 2005 20:33:22 +0800,
> Raymond wrote:
>
>
>>The device hw:0 allow sending 16 mono PCM samples ( change pitch by SRC
>>and panning by hardware mixer, no reverb and chrous effect) to AC97 codec
>>
>>How to ensure each sound font samples loaded in memory aligned at 4K
>>boundary ?
>
>
> Depends. The emu10k1 doesn't align to 4k boundary but just
> split to different pages since emu10k1 has its own TLB.
>
In au88x0.c
chip->max_mem_size=(16*1024*1024);
chip->memhdr = snd_util_memhdr_new(chip->max_mem_size);
if (chip->memhdr == NULL) {
printk(KERN_ERR "snd_util_memhdr_new error\n");
}
chip->mem_size=chip->max_mem_size;
printk(KERN_INFO "%d Bytes wavetable\n",chip->max_mem_size);
What is the reason/advantage of using util_mem.c ?
It is correct to use snd_util_mem_alloc() to allocate memory for sample
in snd_vortex_sample_new() ?
Why get seg fault in __snd_util_memblk_new() ?
Unable to handle kernel paging request at virtual address 022d02ab
printing eip:
e1d301e4
*pde = 00000000
Oops: 0000
snd-seq-midi snd-seq-midi-event snd-seq snd-intel8x0 snd-au8830
snd-util-mem snd-mpu401-uart snd-rawmidi snd-seq-device snd-hwdep
snd-ac97-codec snd-pcm snd-t
CPU: 0
EIP: 0060:[<e1d301e4>] Tainted: P
EFLAGS: 00010207
EIP is at __snd_util_memblk_new_R970b7c65 [snd-util-mem] 0x44
(2.4.22-1.2199.nptl)
eax: db4ee684 ebx: 022d02af ecx: da63f940 edx: 00000040
esi: db4ee680 edi: 00010b00 ebp: db4ee680 esp: cfc43e58
ds: 0068 es: 0068 ss: 0068
Process arlload (pid: 5852, stackpage=cfc43000)
Stack: 00000010 000001f0 00010b00 db4ee684 00b10029 e1d30197 db4ee680
00010b00
022d02af 01000000 db4ee698 db4ee680 cfc43ef8 db4eec80 e1d3025d
db4ee680
00010b00 00010b00 d44d0780 e1d86ac4 db4ee680 00010b00 e1d92100
00010b00
Call Trace: [<e1d30197>] __snd_util_mem_alloc_Raf5d58ef [snd-util-mem]
0x77 (0xcfc43e6c)
[<e1d3025d>] snd_util_mem_alloc_Rc40f9ed9 [snd-util-mem] 0x2d (0xcfc43e90)
[<e1d86ac4>] snd_vortex_sample_new [snd-au8830] 0xb4 (0xcfc43ea4)
[<e1d92100>] .rodata.str1.32 [snd-au8830] 0x1a0 (0xcfc43eb0)
[<e1d85fbd>] load_data [snd-au8830] 0x1fd (0xcfc43ec0)
[<e1d861bd>] snd_soundfont_load [snd-au8830] 0x18d (0xcfc43f08)
[<e1d86c89>] snd_vortex_hwdep_load_patch [snd-au8830] 0x99 (0xcfc43f44)
[<e1d86d60>] snd_vortex_hwdep_ioctl [snd-au8830] 0x0 (0xcfc43f6c)
[<e1d21755>] snd_hwdep_ioctl [snd-hwdep] 0x65 (0xcfc43f78)
[<c0153719>] sys_ioctl [kernel] 0xc9 (0xcfc43f94)
[<c0109747>] system_call [kernel] 0x33 (0xcfc43fc0)
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: alsa dma transfer
2005-07-05 12:26 ` Raymond
@ 2005-07-05 13:12 ` Takashi Iwai
2005-07-05 15:58 ` Raymond
2005-07-08 16:24 ` Raymond
0 siblings, 2 replies; 12+ messages in thread
From: Takashi Iwai @ 2005-07-05 13:12 UTC (permalink / raw)
To: Raymond; +Cc: alsa-devel
At Tue, 05 Jul 2005 20:26:49 +0800,
Raymond wrote:
>
> Takashi Iwai wrote:
> > At Wed, 29 Jun 2005 20:33:22 +0800,
> > Raymond wrote:
> >
> >
> >>The device hw:0 allow sending 16 mono PCM samples ( change pitch by SRC
> >>and panning by hardware mixer, no reverb and chrous effect) to AC97 codec
> >>
> >>How to ensure each sound font samples loaded in memory aligned at 4K
> >>boundary ?
> >
> >
> > Depends. The emu10k1 doesn't align to 4k boundary but just
> > split to different pages since emu10k1 has its own TLB.
> >
>
> In au88x0.c
>
> chip->max_mem_size=(16*1024*1024);
> chip->memhdr = snd_util_memhdr_new(chip->max_mem_size);
> if (chip->memhdr == NULL) {
> printk(KERN_ERR "snd_util_memhdr_new error\n");
> }
> chip->mem_size=chip->max_mem_size;
> printk(KERN_INFO "%d Bytes wavetable\n",chip->max_mem_size);
>
> What is the reason/advantage of using util_mem.c ?
>
> It is correct to use snd_util_mem_alloc() to allocate memory for sample
> in snd_vortex_sample_new() ?
snd_util_mem_*() are helper functions to manage the memory blocks
_virtually_. It doesn't allocate any memory block by itself but just
allocates a metadata for the memory block. That is, it doesn't matter
whether the real memory block is stored as SG-buffer or not. util_mem
handles only virtually linear buffer.
> Why get seg fault in __snd_util_memblk_new() ?
Wrong code ;) Invalid handler pointer is passed?
Takashi
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-07-05 13:12 ` Takashi Iwai
@ 2005-07-05 15:58 ` Raymond
2005-07-08 16:24 ` Raymond
1 sibling, 0 replies; 12+ messages in thread
From: Raymond @ 2005-07-05 15:58 UTC (permalink / raw)
To: alsa-devel
Takashi Iwai wrote:
> At Tue, 05 Jul 2005 20:26:49 +0800,
> Raymond wrote:
>
>>Takashi Iwai wrote:
>>
>>>At Wed, 29 Jun 2005 20:33:22 +0800,
>>>Raymond wrote:
>>>
>>>
>>>
>>>>The device hw:0 allow sending 16 mono PCM samples ( change pitch by SRC
>>>>and panning by hardware mixer, no reverb and chrous effect) to AC97 codec
>>>>
>>>>How to ensure each sound font samples loaded in memory aligned at 4K
>>>>boundary ?
>>>
>>>
>>>Depends. The emu10k1 doesn't align to 4k boundary but just
>>>split to different pages since emu10k1 has its own TLB.
>>>
>>
>>In au88x0.c
>>
>> chip->max_mem_size=(16*1024*1024);
>> chip->memhdr = snd_util_memhdr_new(chip->max_mem_size);
>> if (chip->memhdr == NULL) {
>> printk(KERN_ERR "snd_util_memhdr_new error\n");
>> }
>> chip->mem_size=chip->max_mem_size;
>> printk(KERN_INFO "%d Bytes wavetable\n",chip->max_mem_size);
>>
>>What is the reason/advantage of using util_mem.c ?
>>
>>It is correct to use snd_util_mem_alloc() to allocate memory for sample
>>in snd_vortex_sample_new() ?
>
>
> snd_util_mem_*() are helper functions to manage the memory blocks
> _virtually_. It doesn't allocate any memory block by itself but just
> allocates a metadata for the memory block. That is, it doesn't matter
> whether the real memory block is stored as SG-buffer or not. util_mem
> handles only virtually linear buffer.
>
>
>
>>Why get seg fault in __snd_util_memblk_new() ?
>
>
> Wrong code ;) Invalid handler pointer is passed?
>
>
It's quite difficult to trace those callback functions.
Since WT on the au8820/au8830 chip and not on the other chip on the
sound card.
Is it feasible to replace most of the callback functions by direct call
if the code is with in module au88x0
if ((err = snd_device_new(card, SNDRV_DEV_SEQUENCER, wt, &ops)) < 0) {
return err;
}
instead of a separate module au88x0-synth
snd_seq_device_new(card,1,"au88x0-synth",sizeof(snd_vortex_synth_arg_t),
&wt)
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: alsa dma transfer
2005-07-05 13:12 ` Takashi Iwai
2005-07-05 15:58 ` Raymond
@ 2005-07-08 16:24 ` Raymond
2005-07-27 9:08 ` Takashi Iwai
1 sibling, 1 reply; 12+ messages in thread
From: Raymond @ 2005-07-08 16:24 UTC (permalink / raw)
To: alsa-devel
Takashi Iwai wrote:
> At Tue, 05 Jul 2005 20:26:49 +0800,
> Raymond wrote:
>
>>Takashi Iwai wrote:
>>
>>>At Wed, 29 Jun 2005 20:33:22 +0800,
>>>Raymond wrote:
>>>
>>>
>>>Depends. The emu10k1 doesn't align to 4k boundary but just
>>>split to different pages since emu10k1 has its own TLB.
>>>
>>
#define get_aligned_page(offset) ((offset) >> PAGE_SHIFT)
#define aligned_page_offset(page) ((page) << PAGE_SHIFT)
The au88x0 driver use Scatter-Gather
How to define set_ptb_entry(vortex,page,addr) for au88x0 ?
>
>
> snd_util_mem_*() are helper functions to manage the memory blocks
> _virtually_. It doesn't allocate any memory block by itself but just
> allocates a metadata for the memory block. That is, it doesn't matter
> whether the real memory block is stored as SG-buffer or not. util_mem
> handles only virtually linear buffer.
>
>
Do the driver allocated all the memory block when the driver is loaded
or the soundfonts is loaded ? (kcalloc)
What is the purpose of allocating snd_dma_buffer in synth_alloc_pages() ?
Is the use of set_silent_ptb() hardware specific ?
-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: alsa dma transfer
2005-07-08 16:24 ` Raymond
@ 2005-07-27 9:08 ` Takashi Iwai
0 siblings, 0 replies; 12+ messages in thread
From: Takashi Iwai @ 2005-07-27 9:08 UTC (permalink / raw)
To: Raymond; +Cc: alsa-devel
At Sat, 09 Jul 2005 00:24:38 +0800,
Raymond wrote:
>
> Takashi Iwai wrote:
> > At Tue, 05 Jul 2005 20:26:49 +0800,
> > Raymond wrote:
> >
> >>Takashi Iwai wrote:
> >>
> >>>At Wed, 29 Jun 2005 20:33:22 +0800,
> >>>Raymond wrote:
> >>>
> >>>
> >>>Depends. The emu10k1 doesn't align to 4k boundary but just
> >>>split to different pages since emu10k1 has its own TLB.
> >>>
> >>
>
> #define get_aligned_page(offset) ((offset) >> PAGE_SHIFT)
> #define aligned_page_offset(page) ((page) << PAGE_SHIFT)
The memory block for each synth data is not aligned. The above macros
are used to calculate the positiion for non-linear SG buffer.
> The au88x0 driver use Scatter-Gather
emu10k1, too.
> How to define set_ptb_entry(vortex,page,addr) for au88x0 ?
The device should have a TLB or some buffer descriptor tables.
> >
> > snd_util_mem_*() are helper functions to manage the memory blocks
> > _virtually_. It doesn't allocate any memory block by itself but just
> > allocates a metadata for the memory block. That is, it doesn't matter
> > whether the real memory block is stored as SG-buffer or not. util_mem
> > handles only virtually linear buffer.
> >
> >
>
> Do the driver allocated all the memory block when the driver is loaded
> or the soundfonts is loaded ? (kcalloc)
The kernel pages are allocated on demand.
> What is the purpose of allocating snd_dma_buffer in synth_alloc_pages() ?
The real memory page for the wavetable buffer is allocated via
snd_dma_alloc_pages(). As mentioned, emu10k1 doesn't use kmalloc()
for its buffer.
> Is the use of set_silent_ptb() hardware specific ?
Yes. Very.
Takashi
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2005-07-27 9:08 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-29 6:35 alsa dma transfer Tehn-Yit Chin
2005-06-29 7:21 ` Lee Revell
2005-06-29 9:26 ` Takashi Iwai
2005-06-29 12:33 ` Raymond
2005-06-29 13:40 ` Takashi Iwai
2005-07-05 12:26 ` Raymond
2005-07-05 13:12 ` Takashi Iwai
2005-07-05 15:58 ` Raymond
2005-07-08 16:24 ` Raymond
2005-07-27 9:08 ` Takashi Iwai
-- strict thread matches above, loose matches on Subject: below --
2005-06-29 12:53 Tehn-Yit Chin
2005-06-29 13:34 ` Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.