Date: Thu, 13 Feb 2003 06:05:48 +0100 From: Orlando Bassotto <orlando.bassotto@ieo-research.it> To: freebsd-hackers@freebsd.org Subject: [PATCH] creative audigy 2 (emu10k2) support Message-ID: <20030213050548.GA79233@ieo-research.it>
next in thread | raw e-mail | index | archive | help
--gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 orlando.bassotto@ieo-research.it Dept. Experimental Oncology Via Ripamonti, 435 - 20141 Milano (Italy) Phone# +39-02-57489-865/857 - Fax# +39-02-57489-851 ---------------------------------------------------------------- --gBBFr7Ir9EOA20Yy Content-Type: application/x-gunzip Content-Disposition: attachment; filename="emu10k1.diff.gz" Content-Transfer-Encoding: base64 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 --gBBFr7Ir9EOA20Yy-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030213050548.GA79233>