summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2013-06-14ASoC: dapm: Add snd_soc_dapm_switch to the power up/down sequence tableLars-Peter Clausen
The power up/down sequence order for DAPM switch widgets is not explicitly initialized, causing them to be run always as the first widget type for both power up and down. Move it to the same position in the sequence as other mixer widget types. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: dapm: Remove unused long_name field from snd_soc_dapm_path structLars-Peter Clausen
Since commit 85762e71 ("ASoC: dapm: Implement mixer control sharing") the long_name field of the snd_soc_dapm_path struct is unused. All of the name handling now happens entirely in dapm_create_or_share_mixmux_kcontrol(). So we can remove the long_name field from the snd_soc_dapm_path struct. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: dapm: Add a helper function to free a DAPM pathLars-Peter Clausen
We have the same code for freeing a DAPM path in three different locations. Introduce a new helper function to take care of this. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: dapm: Remove unnecessary loopLars-Peter Clausen
The condition 'i == item' is only true when, well, 'i' equals 'item'. So just use 'item' directly as the index into the array. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: dapm: Setup private_free callback for dapm kcontrolsLars-Peter Clausen
The private data containing the widget list that is a assigned to a DAPM kcontrol is never freed. Setup the private_free for DAPM kcontrols to take care of this. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: SPEAr: Hide component drivers in KconfigMark Brown
The individual component drivers are only useful with a machine driver and should be selected by the machine drivers so shouldn't have help text of their own in order to hide them in interactive configuration. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: SPEAr: Add dependency on dmaengine helpersMark Brown
I'd be very surprised if anyone has used the Kconfig... Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14ASoC: Fix double assignment of .owner in struct snd_soc_cardEmil Goode
In struct snd_soc_card zylonite .owner is assigned THIS_MODULE twice, remove one of them. Signed-off-by: Emil Goode <emilgoode@gmail.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14Merge branch 'fix/wm8962' of ↵Mark Brown
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-wm8962 Conflicts: sound/soc/codecs/wm8962.c
2013-06-14ASoC: wm8962: Remove remaining direct register cache accessesNicolin Chen
Also fix return values for headphone switch updates. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2013-06-13ASoC: rt5640: fix sparse warningsStephen Warren
This fixes: 975:9: sparse: Using plain integer as NULL pointer 1917:24: sparse: symbol 'rt5640_aif_dai_ops' was not declared. Should it be static? 1924:27: sparse: symbol 'rt5640_dai' was not declared. Should it be static? 2079:19: sparse: symbol 'rt5640_i2c_driver' was not declared. Should it be static? Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-13ASoC: SPEAr spdif_{in,out}: fix fallout of previous cleanupUwe Kleine-König
The patch that resulted in bfcc74e (ASoC: SPEAr spdif_{in,out}: use devm for clk and a few more cleanups) was broken and applied on a newer tree than it was created for. So bfcc74e introduced unbalanced clk handling, two warnings about unused variables and passed 3 arguments to a function only taking 2. This commit fixes that. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: tegra: add tegra+RT5640 machine driverStephen Warren
Initially, this binding and driver only describe/support playback to headphones and speakers. This driver will support Beaver and Dalmore. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: rt5640: add device tree supportStephen Warren
Modify the RT5640 driver to parse platform data from device tree. Write a DT binding document to describe those properties. Slight re-ordering of rt5640_i2c_probe() to better fit the DT parsing. Since ldo1_en is optional, guard usage of it with gpio_is_valid(), rather than open-coding an if (gpio) check. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: wm5102: Expose controls for DRECharles Keepax
Certain use cases may require specific DRE settings so expose control of these. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: add RT5640 CODEC driverBard Liao
This patch adds the ALC5640 codec driver. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Bard Liao <bardliao@realtek.com> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: ux500: Add DMA slave config prepare routineFabio Baltieri
Implement a DMA slave config prepare routine, as until now the MSP driver depended on the DMA controller completing the channel configuration on its own, but this is not the case anymore since the recent DMA driver updates. Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: ux500: Set DMA address during device initFabio Baltieri
Add a field with the tx/rx register address to the DMA parameters structure, and set it to the correct address during device initialization. This address used to be hardcoded in the DMA controller driver, it now needs to be explicitly figured out by the device driver. Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: ux500: Move DMA parameters into ux500_mspFabio Baltieri
Move struct ux500_msp_dma_params declaration from ux500_msp_i2s_drvdata to ux500_msp, this saves some confusing pointer passing and allows to access all DMA configuration fields from ux500_msp_i2s. Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: Add Kconfig and Makefile to support SPEAr audio driverRajeev Kumar
This patch adds Kconfig and Makefile to support SPEAr Audio driver. Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: adav80x: Select SND_SOC_ADAV80X if SND_SOC_I2C_AND_SPIAxel Lin
This driver is useless if both SPI and I2C are not configured. Thus don't build this driver if both SPI and I2C are not configured. This patch silences below build warning if both SPI and I2C are not configured. CC sound/soc/codecs/adav80x.o sound/soc/codecs/adav80x.c:842:12: warning: 'adav80x_bus_probe' defined but not used [-Wunused-function] sound/soc/codecs/adav80x.c:863:12: warning: 'adav80x_bus_remove' defined but not used [-Wunused-function] Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: codecs: adau1701: factor out firmware resetDaniel Mack
Some runtime-determined constraints might need to be satisfied prior to firmware loading, so the actual download and releasing the device from reset has to be postponed. Factor it out first, so we have everything at one place. This also changes the behaviour in a way that adau1701_i2c_probe() will assert the reset line, and wait for the codec probe to release it. Signed-off-by: Daniel Mack <zonque@gmail.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: ssm2518: Fix trivial typo in checking tx_mask and rx_mask valuesAxel Lin
Otherwise, ssm2518_set_tdm_slot() always returns error if slots != 0. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: dwc: Folder path correction in file header.Rajeev Kumar
Folder path correction in file header. Signed-off-by: Rajeev Kumar <rajeevk-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: dwc: debug message correction.Rajeev Kumar
Debug message correction. Signed-off-by: Rajeev Kumar <rajeevk-dlh.kumar@st.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: fsl: add imx-wm8962 machine driverNicolin Chen
This is the initial imx-wm8962 device-tree-only machine driver working with fsl_ssi driver. More features can be added on top of it later. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: imx-sgtl5000: Use devm_clk_get()Fabio Estevam
Commit 9e13f345 (ASoC: sgtl5000: Let the codec acquire its clock) removed the clk_put calls. Let's use devm_clk_get() instead, so that we do not need to call them anymore. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12ASoC: sgtl5000: Use i2c_get_clientdata()Fabio Estevam
We should use i2c_get_clientdata() to get the codec private structure. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10ASoC: wm8962: Restore device state after reset in runtime resumeMark Brown
After the device has been reset we need to repeat the same initialisation we do on probe to make sure that the device is in a known state. Tested-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linusMark Brown
2013-06-10Merge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-linusMark Brown
2013-06-10Merge remote-tracking branch 'asoc/fix/cs42l52' into asoc-linusMark Brown
2013-06-10Merge remote-tracking branch 'asoc/fix/core' into asoc-linusMark Brown
2013-06-10Merge remote-tracking branch 'asoc/fix/arizona' into asoc-linusMark Brown
2013-06-10ASoC: sgtl5000: Let the codec acquire its clockFabio Estevam
On a mx6qsabrelite board the following error happens on probe: sgtl5000: probe of 0-000a failed with error -5 imx-sgtl5000 sound.13: ASoC: CODEC (null) not registered imx-sgtl5000 sound.13: snd_soc_register_card failed (-517) platform sound.13: Driver imx-sgtl5000 requests probe defer Prior to reading the codec ID we need to turn the SYS_MCLK clock, so let's enable the codec clock inside sgtl5000_i2c_probe(). Also remove the codec clock enable/disable functions from the machine driver. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10Merge branch 'topic/fsl' of ↵Mark Brown
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-sgtl5000
2013-06-07ASoC: tlv320aic3x: Remove deadlock from snd_soc_dapm_put_volsw_aic3x()Andreas Irestål
When calling snd_soc_dapm_sync(), it eventually tries to lock the same mutex already locked in snd_soc_dapm_put_volsw_aic3x() and a deadlock occurs. By moving the mutex unlock to just before snd_soc_dapm_sync(), this deadlock is prevented. This problem was introduced in Linux 3.5 Signed-off-by: Andreas Irestål <Andreas.Irestal@axis.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07ASoC: dapm: Treat DAI widgets like AIF widgets for powerMark Brown
Even though they are virtual widgets DAI widgets still get counted for the DAPM context power management so we can't just use the active state to check if they should be powered as they may not be part of a complete path. Instead split them into input and output widgets and do the same power checks as we perform on AIFs. Reported-by: Stephen Warren <swarren@nvidia.com> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07ASoC: wm8962: Add device tree bindingNicolin Chen
Document the device tree binding for the WM8962 codec, and modify the driver to extract platform data from the device tree, if present. Based on work of WM8903 by Stephen Warren <swarren@nvidia.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06ASoC: WM8962: Create default platform data structureNicolin Chen
Embed a copy of struct wm8962_pdata in stuct wm8962_priv so that there's no need to check validity of pdata any more. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06ASoC: max98090: Guard runtime PM callbacksMark Brown
Otherwise the functions will be defined but unreferenced when runtime PM is disabled, generating warnings. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05ASoC: sgtl5000: Make device cache only when powered offMark Brown
When the regulators have been disabled mark the device as cache only so that we don't try to interact with the hardware. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05ASoC: omap-hdmi-codec: make the driver common for other SoCsBarry Song
to support HDMI on CSR SiRFprimaII and atlasVI, we need one more HDMI pseudo codec, rather than add a new driver, we can make omap HDMI codec common for other SoCs as well. then the omap-hdmi codec becomes a generic HDMI pseudo- codec as HDMI audio features depend on HDMI specification not on SoCs. Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05ASoC: arizona: Hookup SYSCLK to inputs and noise generatorsCharles Keepax
All sources and sinks should enable SYSCLK. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05ASoC: arizona: Correct AEC loopback enableCharles Keepax
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam c270Takashi Iwai
USB audio driver spews an error message when probing Logitech HD webcam c270: ALSA mixer.c:1300 usb_audio: Warning! Unlikely big volume range (=6144), cval->res is probably wrong. ALSA mixer.c:1304 usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 1536/7680/1 Obviously the device needs a fixed volume resolution (cval->res = 384) like other Logitech devices. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=821735 Reported-and-tested-by: Cristian Rodríguez <crrodriguez@opensuse.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-04ASoC: tegra: add runtime PM to resume functionsStephen Warren
Tegra HW needs clocks etc. active when touching registers. Make sure they are active during resume, by calling pm_runtime_get_sync() before touching HW. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-04ASoC: sgtl5000: Fix VAG_POWER enabling/disabling orderMarek Vasut
The VAG_POWER must be enabled after all other bits in CHIP_ANA_POWER and disabled before any other bit in CHIP_ANA_POWER. See the SGTL5000 datasheet (Table 31, BIT 7, page 42-43). Failing to follow this order will result in ugly loud "POP" noise at the end of playback. To achieve such order, use the _PRE and _POST DAPM widgets to trigger the power_vag_event, where the event type check has to be fixed accordingly as well. Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-04ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio ifaceTakashi Iwai
... instead of applying to all interfaces. Reference: http://forums.gentoo.org/viewtopic-p-6886404.html Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03ASoC: tegra: implement suspend/resume for Tegra30 I2SStephen Warren
Add tegra30_i2s_{suspend,resume}. These use regcache functions to restore all HW registers after power loss during a suspend/resume cycle. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>