summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-09-16ASoC: bf5xx-ad73311: Fix prototype for bf5xx_probeAxel Lin
Fix below build warning: sound/soc/blackfin/bf5xx-ad73311.c: warning: initialization from incompatible pointer type Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-09-15ALSA: pcm - fix race condition in wait_for_avail()Arjan van de Ven
wait_for_avail() in pcm_lib.c has a race in it (observed in practice by an Intel validation group). The function is supposed to return once space in the buffer has become available, or if some timeout happens. The entity that creates space (irq handler of sound driver and some such) will do a wake up on a waitqueue that this function registers for. However there are two races in the existing code 1) If space became available between the caller noticing there was no space and this function actually sleeping, the wakeup is missed and the timeout condition will happen instead 2) If a wakeup happened but not sufficient space became available, the code will loop again and wait for more space. However, if the second wake comes in prior to hitting the schedule_timeout_interruptible(), it will be missed, and potentially you'll wait out until the timeout happens. The fix consists of using more careful setting of the current state (so that if a wakeup happens in the main loop window, the schedule_timeout() falls through) and by checking for available space prior to going into the schedule_timeout() loop, but after being on the waitqueue and having the state set to interruptible. [tiwai: the following changes have been added to Arjan's original patch: - merged akpm's fix for waitqueue adding order into a single patch - reduction of duplicated code of avail check ] Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-14Merge branch 'fix/asoc' into for-linusTakashi Iwai
2011-09-14ALSA: HDA: Cirrus - fix "Surround Speaker" volume control nameDavid Henningsson
This patch fixes "Surround Speaker Playback Volume" being cut off. (Commit b4dabfc452a10 was probably meant to fix this, but it fixed only the "Switch" name, not the "Volume" name.) Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-13ALSA: hda - Terminate the recursive connection search properlyTakashi Iwai
The recursive search of widget connections in snd_hda_get_conn_index() must be terminated at the pin and the audio-out widgets. Otherwise you'll get "too deep connection" warnings unnecessarily. Reported-by: Francis Moreau <francis.moro@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-12ASoC: Fix trivial build regression in Kirkwood I2SArnd Bergmann
A fix merged in 3.1-rc2 introduced a small regression, this should get it to build again. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-09-12ALSA: hda - Add Headphone Playback Volume control for ad1988/ad1989Raymond Yau
- use DAC0 instead of DAC1 for Port-A Headphone - assign 0x03 to spec->multiout.hp_nid except model="6stack-dig-fp" Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-05ASoC: Blackfin: bf5xx-ad193x: Fix codec device nameLars-Peter Clausen
Fix the codec_name field of the dai_link to match the actual device name of the codec. Otherwise the card won't be instantiated. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-09-05ASoC: Fix reporting of partial jack updatesMark Brown
We need to report the entire jack state to the core jack code, not just the bits that were being updated by the caller, otherwise the status reported by other detection methods will be omitted from the state seen by userspace. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
2011-08-31ASoC: imx: Fix build warning of unused 'card' variableFabio Estevam
Fixes the following warning: CC sound/soc/imx/imx-pcm-fiq.o sound/soc/imx/imx-pcm-fiq.c: In function 'imx_pcm_fiq_new': sound/soc/imx/imx-pcm-fiq.c:243: warning: unused variable 'card' CC sound/soc/imx/imx-pcm-dma-mx2.o Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-31ASoC: Fix register cache sync register_writable WARN_ONsLars-Peter Clausen
Currently the condition for these WARN_ONs is reversed and they are placed before the actual check whether we are going to write to that register. So if the codec implements the register_writable callback we'll get a warning for each writable register when syncing the register cache. While we are at it change the check to use snd_soc_codec_writable_register instead of open-coding it. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-31ASoC: snd_soc_codec_{readable,writable}_register change default to trueLars-Peter Clausen
Change the default return value of snd_soc_codec_{readable,writable}_register to true when no codec specific callback for this function is given. Otherwise all registers of that codec will neither be readable nor writable, which is most certainly not what we want. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-31ASoC: soc-dapm: Fix parameter comment for snd_soc_dapm_freePeter Ujfalusi
We have dapm_context instead of codec parameter. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-29MAINTAINERS: Add some missed Wolfson filesMark Brown
Mostly input related. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-26Merge branch 'fix/asoc' into for-linusTakashi Iwai
2011-08-25ALSA: hda: Conexant: Allow different output types to share DACDavid Henningsson
Headphones has stopped working for the original reported (a regression compared to 2.6.38). This is because Speaker and Headphones share the same DAC, in which case no Headphones volume control was created. This patch fixes so that both Speaker and Headphones volume controls are created in such scenario. BugLink: http://bugs.launchpad.net/bugs/817943 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ASoC: MPC5200: replace of_device with platform_deviceTimur Tabi
'struct of_device' no longer exists, and its functionality has been merged into platform_device. Update the MPC5200 audio DMA driver (mpc5200_dma) accordingly. This fixes a build break. Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-08-24ASoC: Correct element count for WM8996 sidetone HPFMark Brown
I can count. Honest. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-08-24ALSA: hda - Remove the rest of ALC662 quirksTakashi Iwai
The rest of ALC662 quirks are only for desktops, and they should work with the auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Remove ALC662 ASUS eeepc-ep20 model quirkTakashi Iwai
Since the recent fixes, this device works with the auto-parser well. Let's kill it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Prefer multi-io to speakers for realtek auto-parserTakashi Iwai
When the multi-io jacks are available, parse them first and assign DACs before parsing speakers and headphones. This allows a better chance of surround I/O in some desktops and laptops with limited DACs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Fix Center/LFE mixer element creations for RealtekTakashi Iwai
The commit 23c09b00900c3fa6672148738cad29d6fc6ded7c ALSA: hda - Support multiple speakers by Realtek auto-parser changes the return value from alc_get_line_out_pfx(), and it breaks the center/LFE mixer split check. The caller must test with a string "CLFE" now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Rewrite Lenovo X200 quirk with pincfg-fix using auto-parserTakashi Iwai
Introduce the pincfg table to patch_conexant.c for fixing up the extra pin-configuration for auto-parser. As an example, Lenovo X200 model is replaced with this new mechanism. (This also fixes the wrong mixer elements for docking-station I/O in the previous model quirk automagically.) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ASoC: Tegra: wm8903 machine driver: Drop Ventana supportStephen Warren
Board file support for Ventana is not yet mainlined, and probably won't ever be given the move to Device-Tree. Consequently, the Ventana entry is being removed from arch/arm/tools/mach-types in the next merge window, since it was registered over a year ago. This will also remove function machine_is_ventana(), which is used by the ASoC Tegra WM8903 machine driver. This will cause compilation failures. Drop Ventana support to resolve this. Hopefully, in the not-too-distant future, tegra_wm8903.c will be able to configure itself from Device-Tree, and hence we'll be able to re-instate Ventana support just by creating a .dts file for the board. Also note that Aebl support is in a similar boat. However, that board isn't scheduled for deprecation for at least another 5 months, and perhaps we will have completely removed non-Device-Tree support from tegra_wm8903.c by then and/or adjusted mach-types policy. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-24ASoC: Add samsung maintainerSangbeom Kim
Signed-off-by: Sangbeom Kim <sbkim73@samsung.com> Acked-by: Jassi Brar <jassisinghbrar@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-24ASoC: Add Springbank I/O card to Speyside KconfigJoseph Pentland
Signed-off-by: Joseph Pentland <jp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-24Merge branch 'fix/hda' into topic/hdaTakashi Iwai
2011-08-24ALSA: hda/conexant - Enable ADC-switching for auto-mic mode, tooTakashi Iwai
The ADC-switching can work also in the auto-mic mode, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Remove ALC662 ASUS M51VA, G71V, H13 and G50V model quirksTakashi Iwai
These models work now with the BIOS auto-parser, so let's drop them. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rewrite ALC269 laptop-amic,dmic,&co quirks with fixupsTakashi Iwai
Similarly like ALC662 asus-mode* models, rewrite the laptop-amic and dmic models with the static pin-config tables. Now we can get rid of all alc269_quirks.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rewrite ALC662 asus-mode* models with fixupsTakashi Iwai
Re-implement the asus-mode[1-8] quirks with the pin-config tables. They are provided in case where BIOS is broken on the device, so it's not enabled in PCI SSID lookup table. User needs to specify it via model option explicitly if the driver doesn't work with the BIOS setup as is. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Support multiple headphones in Realtek auto-parserTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Add multi-headphone NIDs in multiout structTakashi Iwai
For supporting both the multiple headphones and the multiple speakers, add the new field in struct hda_multi_out, and evaluate in the standard setup functions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Remove all ALC861 and ALC861-VD quirksTakashi Iwai
Let's remove the rest of ALC861 and ALC861-VD quirks. If any breakage is found, it can be fixed easily via the pin-config table update. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Restore VREF50 setup for ALC861-VD dallas/hp modelsTakashi Iwai
During the cleanup by commit 6727b12669f255dbf65b3d63c32cce1e3e967398, the specific setups for dallas and hp models, using VREF50 for mic pins, were lost. Fixed now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rename to snd_hda_parse_pin_defcfg()Takashi Iwai
... and add a new bit-flags argument to specify the behavior of the function. The older function is kept as is (as a wrapper). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Fix initialization of multi-speaker output paths for RealtekTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23Merge branch 'fix/hda' into topic/hdaTakashi Iwai
Conflicts: sound/pci/hda/patch_realtek.c
2011-08-23ALSA: hda - Fix double-headphone/speaker paths for Cxt auto-parserTakashi Iwai
When multiple headphones or speakers are assigned but no individual DACs are available, the driver should take the first HP/SPK DAC instead of another primary output. The patch adds a bit-flag to dac field of struct pin_dac_pair indicating that it's a slave DAC. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Update jack-sense info even when no automute is setTakashi Iwai
The internal states, jack_present and line_jack_present should be updated upon unsolicited events even if no automute is set. Otherwise the wrong state is referred when the automute behavior is changed by the mixer control. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Fix output-path initialization for Realtek auto-parserTakashi Iwai
When the headphone or speaker output has no own DAC, initialize the path using the primary DAC. Otherwise the path won't be set properly and can result in the silence. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-22sound/soc/fsl/mpc8610_hpcd.c: add missing of_node_putJulia Lawall
The first change is to add an of_node_put, since codec_np has previously been allocated. The rest of the patch reorganizes the error handling code so the only code executed is that which is needed. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier x; expression E1!=0,E2,E3,E4; statement S; iterator I; @@ ( if (...) { ... when != of_node_put(x) when != x = E3 when != E3 = x * return ...; } ... when != x = E2 when != I(...,x,...) S if (...) { ... when != x = E4 of_node_put(x); ... return ...; } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22sound/soc/fsl/p1022_ds.c: add missing of_node_putJulia Lawall
dma_channel_np has been accessed at this point, so decrease its reference count before leaving the function. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier x; expression E1!=0,E2,E3,E4; statement S; iterator I; @@ ( if (...) { ... when != of_node_put(x) when != x = E3 when != E3 = x * return ...; } ... when != x = E2 when != I(...,x,...) S if (...) { ... when != x = E4 of_node_put(x); ... return ...; } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22sound/soc/ep93xx/ep93xx-i2s.c: add missing kfreeJulia Lawall
Introduce a new label that includes kfree and jump to that one. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier x; expression E1!=0,E2,E3,E4; statement S; iterator I; @@ ( if (...) { ... when != kfree(x) when != x = E3 when != E3 = x * return ...; } ... when != x = E2 when != I(...,x,...) S if (...) { ... when != x = E4 kfree(x); ... return ...; } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Alexander Sverdlin <subaparts@yandex.ru> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22sound/soc/kirkwood/kirkwood-i2s.c: add missing kfreeJulia Lawall
Adjust the goto to jump to the error handling code that includes kfree. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier x; expression E1!=0,E2,E3,E4; statement S; iterator I; @@ ( if (...) { ... when != kfree(x) when != x = E3 when != E3 = x * return ...; } ... when != x = E2 when != I(...,x,...) S if (...) { ... when != x = E4 kfree(x); ... return ...; } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22ASoC: soc-core: use GFP_KERNEL flag for kmalloc in snd_soc_cnewAxel Lin
GFP_ATOMIC is not needed here, use GFP_KERNEL instead. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22sound/soc/fsl/fsl_dma.c: add missing of_node_putTimur Tabi
of_parse_phandle increments the reference count of np, so this should be decremented before trying the next possibility. Since we don't actually use np, we can decrement the reference count immediately. Reported-by: Julia Lawall <julia@diku.dk> Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-08-22ASoC: Clear completions from late WM8996 FLL lock IRQsMark Brown
In case we have a pending completion, for example due to a problem with the input clock which got corrected after we timed out. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-08-22ASoC: Clear any outstanding WM8962 FLL lock completions before waitingMark Brown
Ensure that we don't spuriously trigger early. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-08-22ASoC: Ensure we only run Speyside WM8962 bias level callbacks onceMark Brown
We get called once per DAPM context but only need to run once. When DAPM was serialized this was a series of noops but now it can run in parallel we need to take proper care. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>