[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Openvortex-dev] DMA questions
From: |
Manuel Jander |
Subject: |
Re: [Openvortex-dev] DMA questions |
Date: |
Sun, 13 Apr 2003 01:51:19 -0400 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030327 Debian/1.3-4 |
Hi Phil,
I would really recommend to take a look at the ALSA code. It is just as
Jeff said.
Regarding the DMA buffers.
The current ALSA driver uses a little bit more complex method, to
enhance the
4 DMA buffer table to an arbitrary length, by switching the DMA
addresses on each page
crossing interrupt. This allows more control over the period length (in
ALSA terminology)
and period count. This process is 100% transparent. The upper layer of
the driver (ALSA) doesn't
need any knowledge about this. It envolves a little overhead, but i
think that it isnt a big deal, compared
to the flexibility gain.
I wrote a Scatter Gather variant of the ALSA driver some weeks ago, but
the result was rather bad.
Its hard to get different fragment (period) sizes to get aligned
correctly (i never acomplished this),
and it introduces more code. It was simply a very disgusting experience.
I just throwed that into the trash can, and moved on with linear
buffers, and it just works much better
with much less code. Implementing different fragment (period) sizes is
trivial in this case.
You should also know that there are many DMA channels. The AU8820 has 48
and the AU8830
and AU8810 have 96 DMA channels.
I uploaded the latest ALSA patch to
http://docencia.mat.utfsm.cl/~mjander/aureal/patch-au88x0-0.92c.bz2
I managed to record 16 bit audio, after fiddling with some bits of
vortex_src_setupchannel(), but the
"chip 'n dale" problem (high pitch audio) still persists.
I tried to upload my entire ALSA tree to savannah, but i got only write
access denied errors (?)
Is it possible to access the CVS server with the "pserver" option or do
i need "gserver" ?
Best Regards
Manuel Jander