Hi,

I'm new here and don't know if this is the right list, I hope
it fits!

I wrote this patch due to a wrong buy, the patch adds support for
Audigy 2 cards and should also for Audigy.
Due the fact information about the EMU10K2 is almost none, I 
looked around to see if someone wrote already support for it,
and given the nature of the EMU10K2 to be very similar to it's
old brother, it should have been done with a dozen of lines.
I found the code in the ALSA project EMU10K1 driver; well, I
don't know what most of the initialization code does but I
couldn't find any further information, so take it as is...

I tried this patch for a few weeks now, using it intensively for
recording and for playback. All analog inputs work, I tried them
all, and all outputs (analog) work as well.
I changed the patch scheme for Audigy cards (at least here works)
hence on EMU10K2, we have a center/lfe working as master left / 2 +
master right / 2, and two outputs (rear, front both digital/analog)
which are two outputs with the same signal (all these are controlled
through the AC97 mixer master volume for the EMU10K2).
On EMU10K1 I tried to give the same patch scheme, but as far I can
see, 1 output outlet (rear l/r) is not handled by the AC97 mixer,
so you can't control the volume of the port. This may be muted, but
I found useful to attach the speakers, I can always turn them off....

I provided as well some definitations of what those `???'
registers were, and took from ALSA emu10k1.h, the opcode
macros for writing microcode (which helped alot on understanding
how the toy works), this makes things a bit verbose.

I moved off the TOS link detection when Audigy card is found,
but I may be doing a wrong thing, change if needed.

Also there are a few new variables in struct emu_voice, used for
routing to the FX bus, may be useful if someone writes a patch
manager; struct sc_info has grown, two new bits describe if audigy
card is detected and if it is an audigy2, two new variables,
addrmask, because EMU10K2 has a bigger address space range, and
nchans, which is the number of channels available, EMU10K1 has 4,
K2 has 8, the definition EMU_CHANS is now EMU_MAX_CHANS and it's 8.
A new structure, audigy_adcspeed describes the speeds supported
by EMU10K2 (different just because it supports 12kHz).

The opcode encoding is different from EMU10K1, so functions for
handling initialization of the FX processor are splitted.
All symbols starting with audigy_ and A_ are code that regards
only and uniquely audigy cards.  Initialization of the FX processor
on Audigy is later done after setting the AUD bit, I still wonder
if this is really needed, but at the moment it works, so I won't
break it.

Hopes this help who, like me, did a wrong buy. :)

Ciao!
Orlando

-- 
----------------------------------------------------------------
Orlando Bassotto                  European Institute of Oncology
[EMAIL PROTECTED]     Dept. Experimental Oncology
Via Ripamonti, 435 - 20141 Milano (Italy)
Phone# +39-02-57489-865/857 - Fax# +39-02-57489-851
----------------------------------------------------------------

Attachment: emu10k1.diff.gz
Description: application/gunzip

Reply via email to