summaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'sound-3.5' of ↵Linus Torvalds2012-05-23251-7963/+21166
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ...
| * Merge tag 'asoc-3.5' of ↵Takashi Iwai2012-05-228-66/+470
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Last minute updates These are all new code, they've been in -next already so should be OK for merge this time round. I'd been planning to send a pull request today after they'd had a bit of exposure there to make sure breakage didn't propagate into your tree.
| | * ASoC: sh: fsi: enable chip specific data transfer modeKuninori Morimoto2012-05-191-34/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SupherH FSI2 can use special data transfer, but it depends on CPU-FSI2 connection style. We can use 16bit data stream mode if it was valid connection, and it is required for 16bit data DMA transfer / SPDIF sound output. We can use 24bit data transfer if it was invalid connection. We can select connection type if CPU is SH7372, and it is always valid connection if latest SuperH. This patch adds new bus_option and fsi_bus_setup() for supporting these feature. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger()Kuninori Morimoto2012-05-191-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | fsi_hw_startup/shutdown() needs the setup of bus width, but it is impossible to get parameter of snd_pcm_runtime at this timing. So, these functions are changed so that be called from fsi_dai_trigger(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: sh: fsi: use same format for IN/OUTKuninori Morimoto2012-05-191-16/+6
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: sh: fsi: add fsi_version() and removed meaningless version checkKuninori Morimoto2012-05-191-18/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds fsi_version() function for accessing version. And there were some meaningless version check which never hit. This patch removed it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: sh: fsi: use register field macro name on IN/OUT_DMACKuninori Morimoto2012-05-191-2/+2
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: tegra: Add machine driver for WM8753 codecStephen Warren2012-05-193-0/+236
| | | | | | | | | | | | | | | | | | | | | One such machine is Whistler. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: OMAP: HDMI: Introduce codecRicardo Neri2012-05-184-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce codec for HDMI. At the moment, this is a dummy codec. In the future it will parse the EDID to modify the supported parameters, such as the number of channels and the sample rates. At the moment, it blindly supports all the sample rates and audio channels described in the HDMI 1.4a specification. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | Merge branch 'topic/misc' into for-linusTakashi Iwai2012-05-2175-1646/+2148
| |\ \
| | * | ALSA: snd-usb: fix stream info output in /procDaniel Mack2012-05-211-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set some substream struct members to make the proc interface code work again. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: pcm - Add proper state checks to snd_pcm_drain()Takashi Iwai2012-05-211-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handling for some PCM states is missing for snd_pcm_drain(). At least, XRUN streams should be simply dropped to SETUP, and a few initial invalid states should be rejected. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: sh: Fix up namespace collision in sh_dac_audio.Paul Mundt2012-05-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The module_platform_driver() conversion ended up tripping over the driver name, leading to confusion in the macro with regards to 'driver' being redefined. rename it to something slightly more suitable to avoid namespace collisions. sound/sh/sh_dac_audio.c:444:122: error: conflicting types for 'driver_init' include/linux/device.h:773:6: note: previous declaration of 'driver_init' was here make[3]: *** [sound/sh/sh_dac_audio.o] Error 1 Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio - Call get_min_max_*() after determining the name stringTakashi Iwai2012-05-151-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | get_min_max_with_quirks() must be called after the control id name string is determined, but the current code changes the id name string after calling the function. Reported-by: Christian Melki <christian.melki@ericsson.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - add probe_mask=0x101 automatically for WinFast VP200 HJaroslav Kysela2012-05-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch just sets the codec probe_mask=0x101 value for the WinFast VP200 H PCoIP card based on Teradici hardware matching the PCI subsystem vendor/device IDs 3a21:040d. The user reported no codec detection issues without this explicit codec configuration. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: snd-aloop - improve the sample copy accurracyJaroslav Kysela2012-05-151-27/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain both streams (playback, capture) synchronized. Previous code didn't take in account the small byte count drifts caused by the irq position rounding. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: firewire-lib: optimize packet flushingClemens Ladisch2012-05-142-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trying to flush completed packets is pointless when the pointer callback was called from the packet completion callback; avoid it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: firewire-lib: flush completed packets when reading PCM positionClemens Ladisch2012-05-142-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By flushing all completed but not yet reported packets before reading the PCM hardware position, the granularity of the pointer is improved from the interrupt interval to the packet size. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: firewire-lib: taskletize the snd_pcm_period_elapsed() callClemens Ladisch2012-05-142-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch might introduce this call chain: PCM .pointer callback + fw_iso_context_flush_completions + packet callback + snd_pcm_period_elapsed + PCM .pointer callback Recursive calls to the pointer callback are not possible due to the PCM group locking, so avoid this by moving the period notification into a separate tasklet. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Fix commentMark Hills2012-05-111-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explained by Takashi in <s5hfwbtmz0q.wl%tiwai@suse.de> > The reason is because get_min_max*() isn't called in the place you > created these controls, and get_min_max() would be called only for > integer volumes later even if uninitialized. A short cut for booleans. Signed-off-by: Mark Hills <mark@pogo.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: pcm - Optimize the call of snd_pcm_update_hw_ptr() in read/write loopTakashi Iwai2012-05-111-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the PCM read/write loop, the driver calls snd_pcm_update_hw_ptr() at each time at the beginning of the loop. Russell King reported that this hogs CPU significantly. The current code assumes that the pointer callback is very fast and cheap, also not too much fine grained. It's not true in all cases. When the pointer advances short samples while the read/write copy has been performed, the driver updates the hw_ptr and gets avail > 0 again. Then it tries to read/write these small chunks. This repeats until the avail really gets to zero. For avoiding this situation, a simple workaround is to call snd_pcm_update_hw_ptr() only once at starting the loop, assuming that the read/write copy is performed fast enough. If the available count becomes short, it goes to snd_pcm_wait_avail() anyway, and this processes right. Tested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: atmel/ac97c: correct the unexpected behavior when using uninitial ↵Bo Shen2012-05-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | value for reset pin When pdata->reset_pin is passed with a negative value (means gpio is invalid), then chip->reset_pin will not be assigned to a vaule, it will use default value 0. This will cause unexpected behavior. So, add this patch to correct. Signed-off-by: Bo Shen <voice.shen@atmel.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | sound: allow the unit search until 256 in sound_core.cTakashi Iwai2012-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The upper limit of the available minors isn't necessarily 128 + unit, but it's rather up to 256. Fixing this allows more than 8 devices. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: Fix the card number limit of OSS-emulationTakashi Iwai2012-05-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are left-over codes from the ancient days with the static device number limitation of 8. Actaully OSS can support up to 16 cards. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: jack: Update documention to reflect other userspace interfacesMark Brown2012-05-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since this is a generic API which should support any userspace interface for reporting jacks update the documentation a little to make that a bit clearer. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: oxygen: add Xonar DGX supportClemens Ladisch2012-05-053-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the PCI ID of the Asus Xonar DGX card; it's otherwise identical with the DG. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: asihpi - Revert module_pci_driver conversion for asihpi.cTakashi Iwai2012-04-261-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It contains non-standard call. Reported-by: Eliot Blennerhassett <eblennerhassett@audioscience.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: snd-usb: fix some typos in endpoint.c documentationDaniel Mack2012-04-241-25/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also be more specific about some details while at it. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: pci: clean up using module_pci_driver()Takashi Iwai2012-04-2451-705/+98
| | | | | | | | | | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: sound/usb/endpoint.c: suppress warningAndrew Morton2012-04-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sound/usb/endpoint.c: In function 'queue_pending_output_urbs': sound/usb/endpoint.c:298: warning: 'packet' may be used uninitialized in this function Cc: Daniel Mack <zonque@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Add missing error checks in snd_ebox44_create_mixer()Takashi Iwai2012-04-241-9/+29
| | | | | | | | | | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: M-Audio Fast Track Ultra: Add effect controlsFelix Homann2012-04-242-0/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds controls for the effects section on the FTU devices. Some of these controls need volume quirks. They are added to mixer.c. [fixed missing break by tiwai] Signed-off-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Rename Fast Track Ultra mixer quirk functionsFelix Homann2012-04-241-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for more FTU controls to come. Should help keeping names a bit shorter. Signed-off-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Add TLV to M-Audio Fast Track Ultra controlsFelix Homann2012-04-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds db gain information to M-Audio Fast Track Ultra (8R) devices. Signed-off-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Rename and export mixer_vol_tlvFelix Homann2012-04-242-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename mixer_vol_tlv to snd_usb_mixer_vol_tlv and export it to make it reuseable in mixer_quirks.c. Signed-off-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: usb-audio: Unify M-Audio Fast Track Ultra and Ebox-44 mixer quirks.Felix Homann2012-04-241-85/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge snd_maudio_ftu_create_ctl() and snd_ebox44_create_ctl() into snd_create_std_mono_ctl(). As opposed to the ftu and ebox-44 specific functions, a TLV callback can be specified for controls created by snd_create_std_mono_ctl(). [fixed minor checkpatch.pl warnings by tiwai] Signed-off-by: Felix Homann <linuxaudio@showlabor.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: snd-usb: remove refactorization left-oversDaniel Mack2012-04-212-18/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop some struct members and definitions that became obsolete during the refactorization of the driver. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | Merge branch 'topic/usb-endpoint' into topic/miscTakashi Iwai2012-04-188-825/+1401
| | |\ \
| | | * | ALSA: usb: Remove obsoleted fields from struct snd_usb_substreamTakashi Iwai2012-04-132-26/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many fields have been moved to struct snd_usb_endpoint. Also fix the proc output to correspond to the new structure. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: usb: Fix fill_max flag setTakashi Iwai2012-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ep->fill_max is a 1 bit flag, thus it has to be boolean. sound/usb/endpoint.c: In function 'snd_usb_endpoint_set_params': sound/usb/endpoint.c:785: warning: overflow in implicit constant conversion Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: usb: Remove unused variableTakashi Iwai2012-04-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sound/usb/endpoint.c: In function ‘deactivate_urbs’: sound/usb/endpoint.c:520:16: warning: unused variable ‘flags’ [-Wunused-variable] Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: add some documentationDaniel Mack2012-04-131-11/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Document the new streaming code and some of the functions so that contributers can catch up easier. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: add support for implicit feedbackDaniel Mack2012-04-131-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit feedback is a streaming mode that does not rely on dedicated sync endpoints but uses the information provided by record streams to clock output streams. Now that the streaming logic is decoupled from the PCM streams, this is easy to implement. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: remove old streaming logicDaniel Mack2012-04-132-859/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: switch over to new endpoint streaming logicDaniel Mack2012-04-136-119/+385
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit that added the new streaming model, all endpoint and streaming related code is now in endpoint.c, and pcm.c only acts as a wrapper for handling the packet's payload. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: implement new endpoint streaming modelDaniel Mack2012-04-134-11/+1002
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new generic streaming logic for audio over USB. It defines a model (snd_usb_endpoint) that handles everything that is related to an USB endpoint and its streaming. There are functions to activate and deactivate an endpoint (which call usb_set_interface()), and to start and stop its URBs. It also has function pointers to be called when data was received or is about to be sent, and pointer to a sync slave (another snd_usb_endpoint) that is informed when data has been received. A snd_usb_endpoint knows about its state and implements a refcounting, so only the first user will actually start the URBs and only the last one to stop it will tear them down again. With this sort of abstraction, the actual streaming is decoupled from the pcm handling, which makes the "implicit feedback" mechanisms easy to implement. In order to split changes properly, this patch only adds the new implementation but leaves the old one around, so the the driver doesn't change its behaviour. The switch to actually use the new code is submitted separately. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | * | ALSA: snd-usb: add snd_usb_audio-wide mutexDaniel Mack2012-04-132-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed for new card-wide list operations. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | | ALSA: snd-usb-audio: Replace mixer for Electrix Ebox-44Mark Hills2012-04-152-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mixer units from the firmware are corrupt, and even where they are valid they presents mono controls as L and R channels of stereo. Signed-off-by: Mark Hills <mark@pogo.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | | ALSA: snd-usb-audio: Skip un-parseable mixer units instead of erroringMark Hills2012-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some interfaces reference endpoints which do not exists. To accomodate these, do not fail completely, but skip over them. This allows the Electrix Ebox-44 with earlier firmware to be detected and used for audio. Signed-off-by: Mark Hills <mark@pogo.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | | ALSA: riptide: remove redundant NULL test before release_firmware()Jesper Juhl2012-04-101-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | release_firmware() deals gracefully with NULL pointers, no need to check first. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud