mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
2e341ca686
This is the first big chunk for 3.5 merges of sound stuff. There are a few big changes in different areas. First off, the streaming logic of USB-audio endpoints has been largely rewritten for the better support of "implicit feedback". If anything about USB got broken, this change has to be checked. For HD-audio, the resume procedure was changed; instead of delaying the resume of the hardware until the first use, now waking up immediately at resume. This is for buggy BIOS. For ASoC, dynamic PCM support and the improved support for digital links between off-SoC devices are major framework changes. Some highlights are below: * HD-audio - Avoid the accesses of invalid pin-control bits that may stall the codec - V-ref setup cleanups - Fix the races in power-saving code - Fix the races in codec cache hashes and connection lists - Split some common codes for BIOS auto-parser to hda_auto_parser.c - Changed the PM resume code to wake up immediately for buggy BIOS - Creative SoundCore3D support - Add Conexant CX20751/2/3/4 codec support * ASoC - Dynamic PCM support, allowing support for SoCs with internal routing through components with tight sequencing and formatting constraints within their internal paths or where there are multiple components connected with CPU managed DMA controllers inside the SoC. - Greatly improved support for direct digital links between off-SoC devices, providing a much simpler way of connecting things like digital basebands to CODECs. - Much more fine grained and robust locking, cleaning up some of the confusion that crept in with multi-component. - CPU support for nVidia Tegra 30 I2S and audio hub controllers and ST-Ericsson MSP I2S controolers - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124, Texas Instruments LM49453. - Some regmap changes needed by the Tegra I2S driver. - mc13783 audio support. * Misc - Rewrite with module_pci_driver() - Xonar DGX support for snd-oxygen - Improvement of packet handling in snd-firewire driver - New USB-endpoint streaming logic - Enhanced M-audio FTU quirks and relevant cleanups - Increment the support of OSS devices to 256 - snd-aloop accuracy improvement There are a few more pending changes for 3.5, but they will be sent slightly later as partly depending on the changes of DRM. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) iQIcBAABAgAGBQJPvD/9AAoJEGwxgFQ9KSmkPsIP/AuBGpAZy7b7FiEEIy1Hhdws US8WVuPzyDslMVdzZ8OFqyPXanIcL9gscoOGMZOEy7UFtMBiR4GuYiPRPubEMxuP /gopUqK4SqIsIwT238qqYszSJSxE7gNEZ/2jhSGtkX4EkaSZ4bAskn0iOKX5uw2f kTUQknA1rNLIGba2z6rJbgIW7hdxGfpFy05ruv3ct81nO+5JlgyLuP/v5R6jL+do cum0N4dJFRd9YSEi2BG612gdz8LJyzOgPqBKmxMEva6BfqLkR8EdP80FtE3eEOiP Et1q2LhZwOlBt0BEjsjjOVxMsgxVax6ps9cuNRTk5ECEOldU5dbDatC45L/e9mSD OQVUjYAX1mQAtYva4U4PPn6WU6ma2L5yjy4peCObtyCMkEchXk1bfs4CEfVqCXUP yFYN8C+y6osZOyWE3+Enn9ifZdWyLeSVq6CT33Yt+fyKlswp6gRkhKYiEPqTA5aU p71X59Pp7q1y3tQwiMJNpf2QdkxuxfKURHswdc4BS9ct0mdZhQX0GyDS7OffkTd4 Lq5UkVMHA1rLlF9oRPd2C9P4BuMEuvLjf662YCKiw+mWFYdBC036DHLLjm1Hcwuj UkpQ2PSrrdHG1u0c3ooZ9dQj1BNX4LoABLqvaMtce6sESD/hJ5gcprYJWvtituwM ZzZiJavIWsoJ+SWQWBHe =+JSm -----END PGP SIGNATURE----- Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "This is the first big chunk for 3.5 merges of sound stuff. There are a few big changes in different areas. First off, the streaming logic of USB-audio endpoints has been largely rewritten for the better support of "implicit feedback". If anything about USB got broken, this change has to be checked. For HD-audio, the resume procedure was changed; instead of delaying the resume of the hardware until the first use, now waking up immediately at resume. This is for buggy BIOS. For ASoC, dynamic PCM support and the improved support for digital links between off-SoC devices are major framework changes. Some highlights are below: * HD-audio - Avoid accesses of invalid pin-control bits that may stall the codec - V-ref setup cleanups - Fix the races in power-saving code - Fix the races in codec cache hashes and connection lists - Split some common codes for BIOS auto-parser to hda_auto_parser.c - Changed the PM resume code to wake up immediately for buggy BIOS - Creative SoundCore3D support - Add Conexant CX20751/2/3/4 codec support * ASoC - Dynamic PCM support, allowing support for SoCs with internal routing through components with tight sequencing and formatting constraints within their internal paths or where there are multiple components connected with CPU managed DMA controllers inside the SoC. - Greatly improved support for direct digital links between off-SoC devices, providing a much simpler way of connecting things like digital basebands to CODECs. - Much more fine grained and robust locking, cleaning up some of the confusion that crept in with multi-component. - CPU support for nVidia Tegra 30 I2S and audio hub controllers and ST-Ericsson MSP I2S controolers - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124, Texas Instruments LM49453. - Some regmap changes needed by the Tegra I2S driver. - mc13783 audio support. * Misc - Rewrite with module_pci_driver() - Xonar DGX support for snd-oxygen - Improvement of packet handling in snd-firewire driver - New USB-endpoint streaming logic - Enhanced M-audio FTU quirks and relevant cleanups - Increment the support of OSS devices to 256 - snd-aloop accuracy improvement There are a few more pending changes for 3.5, but they will be sent slightly later as partly depending on the changes of DRM." Fix up conflicts in regmap (due to duplicate patches, with some further updates then having already come in from the regmap tree). Also some fairly trivial context conflicts in the imx and mcx soc drivers. * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits) ALSA: snd-usb: fix stream info output in /proc ALSA: pcm - Add proper state checks to snd_pcm_drain() ALSA: sh: Fix up namespace collision in sh_dac_audio. ALSA: hda/realtek - Fix unused variable compile warning ASoC: sh: fsi: enable chip specific data transfer mode ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger() ASoC: sh: fsi: use same format for IN/OUT ASoC: sh: fsi: add fsi_version() and removed meaningless version check ASoC: sh: fsi: use register field macro name on IN/OUT_DMAC ASoC: tegra: Add machine driver for WM8753 codec ALSA: hda - Fix possible races of accesses to connection list array ASoC: OMAP: HDMI: Introduce codec ARM: mx31_3ds: Add sound support ASoC: imx-mc13783 cleanup mx31moboard: Add sound support ASoC: mc13783 codec cleanups ASoC: add imx-mc13783 sound support ASoC: Add mc13783 codec mfd: mc13xxx: add codec platform data ASoC: don't flip master of DT-instantiated DAI links ... |
||
---|---|---|
.. | ||
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