[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Openvortex-dev] Src Cleanup

From: Manuel Jander
Subject: [Openvortex-dev] Src Cleanup
Date: Sun, 18 May 2003 00:10:09 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030430 Debian/1.3-5

Hi everyone,

In my opinion the only really important thing to be cleaned up before releasing a first version of the ALSA driver is the damn ugly Chip'n Dale bug. I think that having more insight of the real meaning of the arguments of the function vortex_src_setupchannel() would help a lot finding this out. Indeed the argument marked as "?" are totaly unknowm, and by know i just figured out some values that "just work" for the AU8820 but not for the AU8830.

vortex_src_setupchannel(vortex, src, cvrt, 0, 0, ?, dir, 0, 0, ?);

The last argument, is either 0 or 1 (it sets the "throttle source" bit).
The 6th argument could be upto 4 bit wide, and it semes to be related with the SRC number being used (not necesarily true). The AU8830 and AU8820 have 16 SRC's so that fits.

The current driver uses for each ADB DMA channel the SRC's i*2 and i*2+1, where i is the number of the ADB DMA channel. This isn't the best alternative, but it ensures that there are always 2 SRC
avaiable for each ADB DMA channel.
The AU8830 has 32 ADB DMA channel and only 16 SRC: No idea how this should fit together.

There are 32 or 64 WT DMA channels, but they are handled different. They have bo routes for the SRC stuff. They have Statically routes SRC inside of the "WT" block, an the output of the individually processed channels are routed somewhere (ADB addresses are unknown) to the codec. THere is a generic wt_setregister() functions, which i suspect is the one used by the WaveTable engine to control the WT channels block, to change SRC settings, and possibly some special effects. The code for doing this is not contained in the Linux binary driver, so if we want to implement the WaveTable we need to sniff the Windows driver. Disassembling it is rather useless, inserting a sniffer would be easier. Can anybody recommend a tool to disassemble, modify and recompile L type VXD's ? Maybe
a cracking tool :) ?

So, i'm extremely busy right know, so i wanted to ask if someone else could take a look at this ? I could continue working on this issue in about 2 weeks, but come one guys, specially those who havent coded anything, this your chance to do something really cool important. This code will
be part of the linux kernel 2.6 some day :) !!

Best Regards

Manuel Jander.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]