mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-24 11:34:50 +08:00
b2094ef840
Here is the first big update chunk of sound stuff for 3.4-rc1. In the common sound infrastructure, there are a few changes for dynamic PCM support (used in ASoC) and a few clean-ups. Majority of changes are found, as usual, in HD-audio and ASoC. Some highlights of HD-audio changes: - All the long-standing static quirk codes for Realtek codec were finally removed by fixing and extending the Realtek auto-parser. - The mute-LED control is standardized over all HD-audio codec drivers using the extended vmaster hook. - The vmaster slave mixer elements are initialized to 0dB as default so that the user won't be annoyed by the silent output after updates, e.g. due to the additions of new elements. - Other many fix-ups for the misc HD-audio devices. In the ASoC side, this is a very active release, including a quite a few framework enhancements. Some highlights: - Support for widgets not associated with a CODEC, an important part of the dynamic PCM framework. - A library factoring out the common code shared by dmaengine based DMA drivers contributed by Lars-Peter Clausen. This will save a lot of code and make it much easier to deploy enhancements to dmaengine. - Support for binary controls, used for providing runtime configuration of algorithm coefficients. - A new DAPM widget type for regulator supplies allowing drivers for devices that can power down unused supplies while active to do without any per-driver code. - DAPM widgets for DAIs, initially giving a speed boost for playback startup and shutdown and also the basis for CODEC<->CODEC DAI link support. - Support for specifying the number of significant bits on audio interfaces, useful for allowing applications to know how much effort to put into generating data for a larger sample format. - Conversion of the FSI driver used on some SH processors to DMAEngine. - Conversion of EP93xx drivers to DMAEngine. - New CODEC drivers for Maxim MAX9768 and Wolfson Microelectronics WM2200. - Move audmux driver from arc/arm to sound/soc - McBSP move from arch/ to sound/ and updates Also, a few small updates and fixes for other drivers like au88x0, ymfpci, USB 6fire, USB usx2yaudio are included. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) iQIcBAABAgAGBQJPawmuAAoJEGwxgFQ9KSmkdR0QALDDI/eUo4il40C33Gt/OSDz Wkz+FOwp2ddbIqHc0n41sV7+FV1MuyzQ37uSw8zhK724Vd4tCqX6O5K1uvS1iSbh jxHsy5XtfvCs2cjb61H6N+rfWcqC69gGhpc1mLoelj/PYl7S2iV5xOgTr4trVk2Y UN7Y13b4hzZvubRUozoTldaIgdhrj8D8KO7qQNYehyG19b4bJ00Rk4K5JdjsFwbE dTGl/ZUv50Fnx6PAWwqzh1a3cPabHA1TZDiKQM2nuE91e/Ecs4c7t1CRvW8m8mlr u4D4N8PJcCN4SPDd2YuVBgan4SQ0kxKTaup11bHSvAWai2zPX5xMB1yoJNxgjSMt 5NHrGdR4+lQEVlBVXe2sWb4/3vE2kr2dtcGGR/FBFJTuLWDFFtRcnxeQJI8qRNUw UdwDuGXdActoc1cZz2dsKvXMOs0TKT6OCdQH+dHBglW/W8wMkVocZclUgbQM66/X gwvk0jfZ9p3UcKnYt3RkxiXQvAJsr8v0HhYcKvQCFhJArZufdeRHB7LCVRTm692Y /BKZgK4QHxtGw3Yc7emYidKeRSP1ml5QlvC4zMIoGqiahqa8LI8Qcb5knvIEmU8q kY5k0fVP+paf0dceAVXyFZsRB9AyX2eUdufDPifXtydQZgj4o9A7Sy/teWl77EgF Mafq4QUzo1U4i8JpAM4d =5FJq -----END PGP SIGNATURE----- Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull updates of sound stuff from Takashi Iwai: "Here is the first big update chunk of sound stuff for 3.4-rc1. In the common sound infrastructure, there are a few changes for dynamic PCM support (used in ASoC) and a few clean-ups. Majority of changes are found, as usual, in HD-audio and ASoC. Some highlights of HD-audio changes: - All the long-standing static quirk codes for Realtek codec were finally removed by fixing and extending the Realtek auto-parser. - The mute-LED control is standardized over all HD-audio codec drivers using the extended vmaster hook. - The vmaster slave mixer elements are initialized to 0dB as default so that the user won't be annoyed by the silent output after updates, e.g. due to the additions of new elements. - Other many fix-ups for the misc HD-audio devices. In the ASoC side, this is a very active release, including a quite a few framework enhancements. Some highlights: - Support for widgets not associated with a CODEC, an important part of the dynamic PCM framework. - A library factoring out the common code shared by dmaengine based DMA drivers contributed by Lars-Peter Clausen. This will save a lot of code and make it much easier to deploy enhancements to dmaengine. - Support for binary controls, used for providing runtime configuration of algorithm coefficients. - A new DAPM widget type for regulator supplies allowing drivers for devices that can power down unused supplies while active to do without any per-driver code. - DAPM widgets for DAIs, initially giving a speed boost for playback startup and shutdown and also the basis for CODEC<->CODEC DAI link support. - Support for specifying the number of significant bits on audio interfaces, useful for allowing applications to know how much effort to put into generating data for a larger sample format. - Conversion of the FSI driver used on some SH processors to DMAEngine. - Conversion of EP93xx drivers to DMAEngine. - New CODEC drivers for Maxim MAX9768 and Wolfson Microelectronics WM2200. - Move audmux driver from arc/arm to sound/soc - McBSP move from arch/ to sound/ and updates Also, a few small updates and fixes for other drivers like au88x0, ymfpci, USB 6fire, USB usx2yaudio are included." * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (446 commits) ASoC: wm8994: Provide VMID mode control and fix default sequence ASoC: wm8994: Add missing break in resume ASoC: wm_hubs: Don't actively manage LINEOUT_VMID_BUF ASoC: pxa-ssp: atomically set stream active masks ASoC: fsl: p1022ds: tell the WM8776 codec driver that it's the master ASoC: Samsung: Added to support mono recording ALSA: hda - Fix build with CONFIG_PM=n ALSA: au88x0 - Avoid possible Oops at unbinding ALSA: usb-audio - Fix build error by consitification of rate list ASoC: core: Fix obscure leak of runtime array ALSA: pcm - Avoid GFP_ATOMIC in snd_pcm_link() ALSA: pcm: Constify the list in snd_pcm_hw_constraint_list ASoC: wm8996: Add 44.1kHz support ALSA: hda - Fix build of patch_sigmatel.c without CONFIG_SND_HDA_POWER_SAVE ASoC: mx27vis-aic32x4: Convert it to platform driver ALSA: hda - fix printing of high HDMI sample rates ALSA: ymfpci - Fix legacy registers on S3/S4 resume ALSA: control - Fixe a trailing white space error ALSA: hda - Add expose_enum_ctl flag to snd_hda_add_vmaster_hook() ALSA: hda - Add "Mute-LED Mode" enum control ... |
||
---|---|---|
.. | ||
soc | ||
ALSA-Configuration.txt | ||
alsa-parameters.txt | ||
Audigy-mixer.txt | ||
Audiophile-Usb.txt | ||
Bt87x.txt | ||
CMIPCI.txt | ||
compress_offload.txt | ||
ControlNames.txt | ||
emu10k1-jack.txt | ||
HD-Audio-Controls.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