summaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: SPEAr spdif_out: Add spdif out supportVipin Kumar2012-07-042-0/+468
| | | | | | | | | This patch implements the spdif out driver for ST peripheral. This peripheral implements IEC60958 standard Signed-off-by: Vipin Kumar <vipin.kumar@st.com> Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: STA529: Add support for STA529 Audio CodecRajeev Kumar2012-07-043-0/+447
| | | | | | | | | | The STA529 is a digital stereo class-D audio amplifier. It includes an audio DSP, an ST proprietary high-efficiency class-D driver and CMOS power output stage. It is intended for high-efficiency digital-to-power-audio conversion for portable applications. Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: tlv320aic3x: extending registers cacheJiri Prchal2012-07-041-1/+3
| | | | | | | Adds missing register default values to cache. Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: tlv320aic3x: add missing registers and bitsJiri Prchal2012-07-041-1/+18
| | | | | | | | Adds register and bit shift definitions in header file. Changes are for TLV320AIC310x based on data sheet. Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8994: Don't suspend accessory detectionMark Brown2012-07-031-37/+0
| | | | | | | | Leave it up to the machine driver to disable accessory detection if desired, the common pattern is to have accessory detection be a wake source. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: core: Try to use regmap if the driver doesn't set up any I/OMark Brown2012-07-031-0/+4
| | | | | | | | | | Since most new drivers are expected to use regmap and since frequently the only thing we need to do in the CODEC probe function is configure the I/O try to initialise the register I/O using regmap if the driver hasn't done so after probe(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* ASoC: wm8962: Log AIF configuration requested by hw_params()Mark Brown2012-07-031-0/+3
| | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: tegra: use dmaengine based dma driverLaxman Dewangan2012-07-033-1/+119
| | | | | | | | | | | | | | | | | | | Use the dmaengine based Tegra APB DMA driver for data transfer between SPI fifo and memory in place of legacy Tegra APB DMA. Because generic soc-dmaengine-pcm uses the DMAs API based on dmaengine, using the exported APIs provided by this generic driver. The new driver is selected if legacy driver is not selected and new dma driver is enabled through config file. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: dapm: Remove incomplete stereo codeBenoît Thébaudeau2012-07-031-10/+12
| | | | | | | | Stereo is not yet supported by dapm widgets, so remove stereo code from snd_soc_dapm_get_volsw(), and warn if stereo controls are detected. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: smdk_wm8994: Convert to use snd_soc_register_card()Sachin Kamat2012-07-031-13/+23
| | | | | | | | | Current method for machine driver to register with the ASoC core is to use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Sangbeom Kim <sbkim73@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: dapm: Fix snd_soc_dapm_put_volsw() connectBenoît Thébaudeau2012-06-291-7/+1
| | | | | | | | | | | | snd_soc_dapm_put_volsw() sets connect incorrectly in the case max > 1 with invert. In that case, the raw disconnect value should be max, which corresponds to the userspace value 0. This use case currently does not appear upstream, but it could break SOC_DAPM_SINGLE() or SOC_DAPM_SINGLE_TLV() elsewhere or in the future. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: spdif: Build separate RX and TX objectsMark Brown2012-06-291-2/+3
| | | | | | | | Otherwise we fail to link when building as modules due to multiple init/exit functions. Reported-by: Fengguang Wu <wfg@linux.intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: spdif_receiver: Add support for spdif in Audio CodecVipin Kumar2012-06-282-1/+68
| | | | | | | | This patch adds the support for spdif in audio codec. Signed-off-by: vipin Kumar <vipin.kumar@st.com> Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: dwc: Add missing __iomem annotationsMark Brown2012-06-281-2/+2
| | | | | | Otherwise sparse gets very upset with us. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm5102: Remove unused platform data headerMark Brown2012-06-271-1/+0
| | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: dwc: Bodge around continuing absence of clock API stubsMark Brown2012-06-251-0/+1
| | | | | | | | | The patches for stubbing out the generic clock API still haven't been applied so we need to either add ifdefs here or add a dependency until someone decides to actually apply them. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8996: Move register default configuration to I2C probeMark Brown2012-06-251-151/+180
| | | | | | | This gets the registers set up as early as possible, mainly useful for the GPIOs to ensure that they're in the correct mode. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8996: Inline wm8996_reset() and optimise cache-only usageMark Brown2012-06-251-18/+13
| | | | | | | | | | There is only one caller and this allows us to cleanly leave the CODEC with the internal LDO powered down which is the default state we're looking for and means that we can robustly disable the register cache only when we either disable the LDO or power down the external regulators. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8996: Move regulator notifier callbacks into I2C levelMark Brown2012-06-251-21/+20
| | | | | | Now that we're using regmap the cache is available here. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8904: Move register default setup into I2C probe()Mark Brown2012-06-251-56/+55
| | | | | | | Get it done as early as possible, it's neater and minimises the time the pins aren't configured as requested. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8904: Move regulator acquisition and device identification to I2CMark Brown2012-06-251-61/+51
| | | | | | It's more idiomatic to have the resource allocation at this level. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: wm8904: Rely entirely on the core for bias level managementMark Brown2012-06-251-27/+3
| | | | | | | | | | Even though the WM8904 is able to use idle_bias_off during both probe and resume we were needlessly leaving the device in standby mode. Instead power the device down as soon as we've confirmed that we can talk to it and don't manage the bias level at all over suspend and resume, the core will take us down to our minimum power level. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* Merge tag 'v3.5-rc4' into for-3.6Mark Brown2012-06-2520-159/+227
|\ | | | | | | Linux 3.5-rc4 contains some bug fixes which overlap with new features.
| * ALSA: 6fire: use NULL instead of 0 for pointer assignmentDaniel Mack2012-06-181-1/+1
| | | | | | | | | | | | Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: Torsten Schenk <torsten.schenk@zoho.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Handle open while transitioning to D3.Dylan Reid2012-06-183-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This addresses an issue encountered when a pcm is opened while transitioning to low power state (codec->power_on == 1 && codec->power_transition == -1). Add snd_pcm_power_up_d3wait to hda_codec. This function is used to power up from azx_open as opposed to snd_hda_power_up used from codec_exec_verb. When powering up from azx_open, wait for pending power downs to complete, avoiding the power up continuing in parallel with the power down on the work queue. The specific issue seen was with the CS4210 codec, it powers off the ADC and DAC nid in its suspend handler. If it is re-opened before the ~100ms power down process completes, the ADC and DAC nid are initialized while powered down and audio is lost until another suspend/resume cycle. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd-usb: make snd_usb_substream_capture_trigger staticDaniel Mack2012-06-181-1/+2
| | | | | | | | | | Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd-usb: fix sync pipe checkDaniel Mack2012-06-181-7/+11
| | | | | | | | | | | | | | | | | | | | | | Fix a bogus sanity check for sync pipe in pcm.c. This flaw was introduced during the streaming logic refactorization. While at it, improve the error messages that are generated in such cases. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-and-tested-by: <ben@b1c1l1.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge tag 'asoc-3.5' of ↵Takashi Iwai2012-06-184-46/+39
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for 3.5 All driver specific and fairly small. The pxa-ssp changes are larger than I'd like but they're build failures and are pretty clear to inspection.
| | * ASoC: tegra+wm8903: turn of mic detect when card is removedStephen Warren2012-06-121-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If mic detect is left enabled and the WM8903 detects a status change, the WM8903 driver will make a callback against the free()d jack, which will cause a crash. This problem can be triggered by fully initializing an audio card, then removing and re-inserting the machine driver module. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Mark the CODEC as cache only when powering off on bootMark Brown2012-06-111-2/+1
| | | | | | | | | | | | | | | | | | Otherwise we might try to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Move reset before the initial regulator disableMark Brown2012-06-111-2/+2
| | | | | | | | | | | | | | | | | | | | | If we don't have control over the LDO but do have control over the other regulators then we may end up trying to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Remove spurious regulator_bulk_free()Mark Brown2012-06-111-1/+0
| | | | | | | | | | | | | | | | | | | | | We're using demv_regulator_bulk_get() so don't need to manually free and this is in the CODEC driver not the I2C driver anyway. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8904: Fix cache only managementMark Brown2012-06-111-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | We should be using the regmap API consistently for all the cache only configuration and we should be going cache only before we power down the supplies. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8904: Fix GPIO and MICBIAS initialisation for regmap conversionMark Brown2012-06-111-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer have a flat ASoC cache so can't peer directly into the array any more but should instead use the register I/O functions to update the cache. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org (v3.4)
| | * ASoC: fix pxa-ssp compiling issue under mach-mmpQiao Zhou2012-06-111-27/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pxa-ssp.c uses API like cpu_is_pxa3xx(), cpu_is_pxa2xx(), which is defined under arch-pxa architecture, and drivers under mach-mmp can't find it. so just use ssp->type to replace that API. Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ALSA: hda - Don't forget to call init verbs added by fixup listTakashi Iwai2012-06-132-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | During the split to the auto-parser helper functions, the actual call of init verbs was lost. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43366 Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: HDA: Pin fixup for Zotac Z68 motherboardDavid Henningsson2012-06-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pin 0x1b was connected to the front panel connector, which according to the HDA standard should contain a mic and a headphone. In this case, the headphone was listed as "line out" by BIOS. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/993162 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: compress_core: cleanup pointers on stopVinod Koul2012-06-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | as the start can be called after stop again, we need to reset state Signed-off-by: Namarta Kohli <namartax.kohli@intel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: compress_core: don't wake up on pauseVinod Koul2012-06-121-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | during pause the core should maintain the status-quo on the device and pointers and not wake up. If app needs it should call DROP explcitly. Signed-off-by: Namarta Kohli <namartax.kohli@intel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix detection of Creative SoundCore3D controllersTakashi Iwai2012-06-111-5/+5
| | | | | | | | | | | | | | | | | | | | | The PCI ID entries of Creative SoundCore3D HD-audio controllers should be before the wildcard for vendor = Creative. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - HDMI Audio init all connectors when VGA-switcheroo is offSteven Newbury2012-06-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When VGA_SWITCHEROO support is enabled hda_intel initialises the HDMI audio device on the current VGA device. When it's not enabled it only initialises the HDMI device on the default VGA adaptor, this means secondary cards get no audio support which is very unhelpful for multi-seat! With this patch, when SUPPORT_VGA_SWITCHEROO is disabled hda_intel initialises all HDMI audio devices, not just the default VGA. [minor optimizations by tiwai] Signed-off-by: Steven Newbury <steve@snewbury.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix uninitialized HDMI controllers with VGA-switcherooTakashi Iwai2012-06-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When VGA-switcheroo is built in but unused on systems with multiple graphics cards, the initializations of non-default graphics cards are skipped and never enabled (because the switcheroo is activated only when the controller supports). The current behavior is for avoiding the system lockup by accessing the disabled GPU, but due to the recent change in VGA-switcheroo, it determines the state simply by checking with the default VGA device. This is the culprit. Now with the new vga_switcheroo_get_client_state(), we can know the initial state of the bound GPU, thus can determine the initial audio client state more correctly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: usb-audio: Fix substream assignmentsTakashi Iwai2012-06-082-4/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 3.5 kernel, the endpoint is assigned dynamically for the substreams, but the PCM assignment still checks the presence of the endpoint pointer. This ended up in duplicated PCM substream creations at probing time, resulting in kernel warnings like: WARNING: at fs/proc/generic.c:586 proc_register+0x169/0x1a6() Pid: 1152, comm: modprobe Not tainted 3.5.0-rc1-00110-g71fae7e #2 Call Trace: [<ffffffff8102a400>] warn_slowpath_common+0x83/0x9c [<ffffffff8102a4bc>] warn_slowpath_fmt+0x46/0x48 [<ffffffff813829ad>] ? add_preempt_count+0x39/0x3b [<ffffffff811292f0>] proc_register+0x169/0x1a6 [<ffffffff8112962e>] create_proc_entry+0x74/0x8c [<ffffffffa018eb63>] snd_info_register+0x3e/0xc3 [snd] [<ffffffffa01fde2e>] snd_pcm_new_stream+0xb1/0x404 [snd_pcm] [<ffffffffa024861f>] snd_usb_add_audio_stream+0xd2/0x230 [snd_usb_audio] [<ffffffffa0241d33>] ? snd_usb_parse_audio_format+0x252/0x34f [snd_usb_audio] [<ffffffff810d6b17>] ? kmem_cache_alloc_trace+0xab/0xbb [<ffffffffa0248c29>] snd_usb_parse_audio_interface+0x4ac/0x567 [snd_usb_audio] [<ffffffffa023f0ff>] snd_usb_create_stream+0xe9/0x125 [snd_usb_audio] [<ffffffffa023f9b1>] usb_audio_probe+0x62a/0x72c [snd_usb_audio] ..... This patch fixes the regression by checking the fixed endpoint number for each substream instead of the endpoint pointer. Reported-and-tested-by: Jamie Heilman <jamie@audible.transient.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ASoC: tegra: add MODULE_DEVICE_TABLE to tegra30_ahubStephen Warren2012-06-081-0/+1
| | | | | | | | | | | | | | | | This allows the module to automatically load when instantiated from device tree. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: wm2000: Always use a 4s timeout for the firmwareMark Brown2012-06-081-38/+21
| | | | | | | | | | | | | | | | Rather than having varying timeouts depending on the transition always use a 4s timeout. This provides better diagnostics for clocking errors and ensures compatibility with current calibration firmwares. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: dapm: Fix input list to use source widgetsLiam Girdwood2012-06-081-1/+1
| | | | | | | | | | | | | | We should only add source widgets to the input list. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: dpcm: Fix dpcm_get_be() to check that DAI is BELiam Girdwood2012-06-081-0/+6
| | | | | | | | | | | | | | Make sure that the dpcm_get_be() only returns BE DAI links. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: wm8994: Apply volume updates with clocks enabledMark Brown2012-06-051-35/+58
| | | | | | | | | | | | | | | | | | | | | | | | Volume updates may not be acted upon if there is no clock applied when the volume update is written. Ensure this doesn't happen by writing out registers with volume updates after we enable each of the clocks. There are more registers updated than before as previously we were relying on wm_hubs to set those for controls it manages. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
| * ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variantsMark Brown2012-06-051-4/+8
| | | | | | | | | | | | | | | | Ensure that all the actions get taken at appropriate times by calling the _PRE and _POST events for the aifNclk_ev functions explicitly. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
| * ASoC: imx-audmux: add pinctrl supportRichard Zhao2012-06-041-0/+8
| | | | | | | | | | | | Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>