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 ----------------------------------------------------------------
emu10k1.diff.gz
Description: application/gunzip