Skip site navigation (1)Skip section navigation (2)
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>