495311927f
This is a new driver for Aztech Sound Galaxy ISA soundcards based on the AZT1605 and AZT2316 chipsets. It's constructed as two seperate drivers for either chipset generated from the same source file, with (very) minimal ifdeffery. The drivers check the SB DSP version to decide if they are being loaded for the right chip. AZT1605 returns 2.1 by default and AZT2316 3.1. This isn't full-proof as the DSP version can actually be set through software but it's close enough -- as far as I've been able to see, the DSP version can not be stored in the EEPROM and the cards will therefore startup with the defaults. This distinction could (with the same success rate) also be used to decide which chip we're looking at at runtime meaning a single, merged driver is also an option but I feel it's actually nicer this way. A merged driver would have to postpone translating the passed in resource values to the card configuration until it knew which one it was looking at and would need to postpone erring out on mpu_irq=10 for azt1605 and mpu_irq=3 for azt2316. The drivers have been tested on various cards. For snd-azt1605: FCC-ID I38-MMSN811: Aztech Sound Galaxy Nova 16 Extra FCC-ID I38-MMSN822: Aztech Sound Galaxy Pro 16 II and for snd-azt2316: FCC-ID I38-MMSN824: Aztech Sound Galaxy Pro 16 AB FCC-ID I38-MMSN826: Trust Sound Expert DeLuxe Wave 32 (05201) FCC-ID I38-MMSN830: Trust Sound Expert DeLuxe 16+ (05202) FCC-ID I38-MMSN837: Packard Bell ISA Soundcard 030069 FCC-ID I38-MMSN846: Trust Sound Expert DeLuxe 16-3D (06300) FCC-ID I38-MMSN847: Trust Sound Expert DeLuxe Wave 32-3D (06301) FCC-ID I38-MMSN852: Aztech Sound Galaxy Waverider Pro 32-3D 826 and 846 were also marketed directly by Aztech and then known as: FCC-ID I38-MMSN826: Aztech Sound Galaxy Waverider 32+ FCC-ID I38-MMSN846: Aztech Sound Galaxy Nova 16 Extra II-3D Together, these cover the AZT1605 and AT2316A, AZT2316R and AZT2316-S chipsets. All cards work fully -- full-duplex PCM, MIDI and FM. Full duplex is a little flaky on some. I38-MSN811 tends to not work in full-duplex but sometimes does with the highest success rate being achieved when you first start the capture and then a playback instead of the other way around (it's a CS4231-KL codec). The cards with an AD1845XP codec (my I38-MMSN826 and one of my I38-MMSN830s) are also somewhat duplex-challenged. Sometimes full-duplex works, sometimes not and this varies from try to try. This seems likely to be a timing problem somewhere inside wss-lib. I38-MMSN826 has an additional "ICS2115 WaveFront" wavetable synth onboard that isn't supported yet. The wavetable synths on I38-MMSN847 and I38-MMSN852 are wired directly to the standard MPU-401 UART and the AUX1 input on the codec and work without problem. CD-ROM audio on the cards is routed to the codec "Line" input, Line-In to its Aux input, and FM/Wavetable to its AUX1 input. I did not rename the controls due to the capture source enumeration: I see that capture-source overrides are hardcoded in wss-lib and this is just too ugly to live. Versus the old snd-sgalaxy driver these drivers add support for the models without a configuration EEPROM (which are common), full-duplex, MPU-401 UART and OPL3. In the future they might grow support for that ICS2115 WaveFront synth on 826 and an hwdep interface to write to the EEPROM on the models that have one. Signed-off-by: Rene Herman <rene.herman@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
soc | ||
ALSA-Configuration.txt | ||
alsa-parameters.txt | ||
Audigy-mixer.txt | ||
Audiophile-Usb.txt | ||
Bt87x.txt | ||
CMIPCI.txt | ||
ControlNames.txt | ||
emu10k1-jack.txt | ||
HD-Audio-Models.txt | ||
HD-Audio.txt | ||
hda_codec.txt | ||
hdspm.txt | ||
Joystick.txt | ||
MIXART.txt | ||
OSS-Emulation.txt | ||
powersave.txt | ||
Procfile.txt | ||
README.maya44 | ||
SB-Live-mixer.txt | ||
seq_oss.html | ||
serial-u16550.txt | ||
VIA82xx-mixer.txt |
NOTE: The following is the original document of Rainer's patch that the current maya44 code based on. Some contents might be obsoleted, but I keep here as reference -- tiwai ---------------------------------------------------------------- STATE OF DEVELOPMENT: This driver is being developed on the initiative of Piotr Makowski (oponek@gmail.com) and financed by Lars Bergmann. Development is carried out by Rainer Zimmermann (mail@lightshed.de). ESI provided a sample Maya44 card for the development work. However, unfortunately it has turned out difficult to get detailed programming information, so I (Rainer Zimmermann) had to find out some card-specific information by experiment and conjecture. Some information (in particular, several GPIO bits) is still missing. This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008). The following functions work, as tested by Rainer Zimmermann and Piotr Makowski: - playback and capture at all sampling rates - input/output level - crossmixing - line/mic switch - phantom power switch - analogue monitor a.k.a bypass The following functions *should* work, but are not fully tested: - Channel 3+4 analogue - S/PDIF input switching - S/PDIF output - all inputs/outputs on the M/IO/DIO extension card - internal/external clock selection *In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.* Things that do not seem to work: - The level meters ("multi track") in 'alsamixer' do not seem to react to signals in (if this is a bug, it would probably be in the existing ICE1724 code). - Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down. DRIVER DETAILS: the following files were added: pci/ice1724/maya44.c - Maya44 specific code pci/ice1724/maya44.h pci/ice1724/ice1724.patch pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES) i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs include/wm8776.h Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure. This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately. the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree: wtm.h vt1720_mobo.h revo.h prodigy192.h pontis.h phase.h maya44.h juli.h aureon.h amp.h envy24ht.h se.h prodigy_hifi.h *I hope this is the correct way to do things.* SAMPLING RATES: The Maya44 card (or more exactly, the Wolfson WM8776 codecs) allow a maximum sampling rate of 192 kHz for playback and 92 kHz for capture. As the ICE1724 chip only allows one global sampling rate, this is handled as follows: * setting the sampling rate on any open PCM device on the maya44 card will always set the *global* sampling rate for all playback and capture channels. * In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices. *AVOID CAPTURING AT RATES ABOVE 96kHz*, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality. I propose some additional code for limiting the sampling rate when setting on a capture pcm device. However because of the global sampling rate, this logic would be somewhat problematic. The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712). SOUND DEVICES: PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0): hw:0,0 input - stereo, analog input 1+2 hw:0,0 output - stereo, analog output 1+2 hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input hw:0,1 output - stereo, analog output 3+4 (and SPDIF out) NAMING OF MIXER CONTROLS: (for more information about the signal flow, please refer to the block diagram on p.24 of the ESI Maya44 manual, or in the ESI windows software). PCM: (digital) output level for channel 1+2 PCM 1: same for channel 3+4 Mic Phantom+48V: switch for +48V phantom power for electrostatic microphones on input 1/2. Make sure this is not turned on while any other source is connected to input 1/2. It might damage the source and/or the maya44 card. Mic/Line input: if switch is is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo). Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver. Bypass 1: same for channel 3+4. Crossmix: cross-mixer from channels 1+2 to channels 3+4 Crossmix 1: cross-mixer from channels 3+4 to channels 1+2 IEC958 Output: switch for S/PDIF output. This is not supported by the ESI windows driver. S/PDIF should output the same signal as channel 3+4. [untested!] Digitial output selectors: These switches allow a direct digital routing from the ADCs to the DACs. Each switch determines where the digital input data to one of the DACs comes from. They are not supported by the ESI windows driver. For normal operation, they should all be set to "PCM out". H/W: Output source channel 1 H/W 1: Output source channel 2 H/W 2: Output source channel 3 H/W 3: Output source channel 4 H/W 4 ... H/W 9: unknown function, left in to enable testing. Possibly some of these control S/PDIF output(s). If these turn out to be unused, they will go away in later driver versions. Selectable values for each of the digital output selectors are: "PCM out" -> DAC output of the corresponding channel (default setting) "Input 1"... "Input 4" -> direct routing from ADC output of the selected input channel -------- Feb 14, 2008 Rainer Zimmermann mail@lightshed.de