summaryrefslogtreecommitdiff
path: root/sound/soc
AgeCommit message (Collapse)AuthorFilesLines
2018-02-07Merge remote-tracking branch 'asoc/fix/twl-breakage' into asoc-nextMark Brown2-0/+4
2018-02-07Merge remote-tracking branches 'asoc/fix/compress', 'asoc/fix/core', ↵Mark Brown155-4962/+12275
'asoc/fix/dapm', 'asoc/fix/mtk' and 'asoc/fix/stm' into asoc-next
2018-02-07ASoC: stm32: add of dependency for stm32 driversOlivier Moysan1-3/+3
Add of dependency for STM32 ASoC drivers. DFSDM of dependency is already inherited from STM32_DFSDM_ADC dependency. Signed-off-by: olivier moysan <olivier.moysan@st.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-02-07ASoC: mt8173-rt5650: fix child-node lookupJohan Hovold1-8/+3
This driver used the wrong OF-helper when looking up the optional capture-codec child node during probe. Instead of searching just children of the sound node, a tree-wide depth-first search starting at the unrelated platform node was done. Not only could this end up matching an unrelated node or no node at all; the platform node could also be prematurely freed since of_find_node_by_name() drops a reference to its first argument. This particular pattern has been observed leading to crashes after probe deferrals in other drivers. Fix this by dropping the broken call to of_find_node_by_name() and keeping only the second, correct lookup using of_get_child_by_name() while taking care not to bail out if the optional node is missing. Note that this also addresses two capture-codec node-reference leaks (one for each of the original helper calls). Compile tested only. Fixes: d349caeb0510 ("ASoC: mediatek: Add second I2S on mt8173-rt5650 machine driver") Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-02-07ASoC: dapm: fix debugfs read using path->connectedKaiChieh Chuang1-1/+1
This fix a bug in dapm_widget_power_read_file(), where it may sent opposite order of source/sink widget into the p->connected(). for example, static int connected_check(source, sink); {"w_sink", NULL, "w_source", connected_check} the dapm_widget_power_read_file() will query p->connected() in following case p->conneted("w_source", "w_sink") p->conneted("w_sink", "w_source") we should avoid the last case, since it's the wrong order (source/sink) as declared in snd_soc_dapm_route. Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-26ASoC: compress: Correct handling of copy callbackCharles Keepax1-4/+4
The soc_compr_copy callback is currently broken. Since the changes to move the compr_ops over to the component the return value is not correctly propagated, always returning zero on success rather than the number of bytes copied. This causes user-space to stall continuously reading as it does not believe it has received any data. Furthermore, the changes to move the compr_ops over to the component iterate through the list of components and will call the copy callback for any that have compressed ops. There isn't currently any consensus on the mechanism to combine the results of multiple copy callbacks. To fix this issue for now halt searching the component list when we locate a copy callback and return the result of that single callback. Additional work should probably be done to look at the other ops, tidy things up, and work out if we want to support multiple components on a single compressed, but this is the only fix required to get things working again. Fixes: 9e7e3738ab0e ("ASoC: snd_soc_component_driver has snd_compr_ops") Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2018-01-25ASoC: Fix twl4030 and 6040 regression by adding back read and writeTony Lindgren2-0/+4
Commit 3bb0f7c31b1a ("ASoC: don't use snd_soc_write/read on twl4030") caused regressions for both twl4030 and twl6040 as it assumes the ASoC driver is using regmap. As a side effect, this also causes a considerable increase in idle power consumption omap3 boards using twl4030 as the PMIC. This is because the removal of read and write function pointers causes some of the ASoC IO functions to not do anything. For example, snd_soc_register_card() calls snd_soc_dapm_new_widgets() that calls snd_soc_codec_drv_read() that now does nothing. A long term solution suggested by Mark Brown <broonie@kernel.org> is to make the twl drivers use regmap by adding a call to snd_soc_codec_set_regmap(). This however needs more consideration as currently the driver internal reads do caching and we would have both regmap access and internal read/write access accessing the same hardware registers. So to fix the regression, let's just do a partial revert adding back the read and write function pointers. Note that other non-regmap ASoC drivers may need similar patches. Fixes: 3bb0f7c31b1a ("ASoC: don't use snd_soc_write/read on twl4030") Fixes: 93a00c467fe9 ("ASoC: don't use snd_soc_write/read on twl6040") Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-25Merge branches 'topic/twl4030' and 'topic/twl6040' of ↵Mark Brown5-20/+22
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-twl-breakage
2018-01-24ASoC: soc-pcm: don't call flush_delayed_work() many times in ↵Kuninori Morimoto1-3/+2
soc_pcm_private_free() commit f523acebbb74 ("ASoC: add Component level pcm_new/pcm_free v2") added component level pcm_new/pcm_free, but flush_delayed_work() on soc_pcm_private_free() is called in for_each_rtdcom() loop. It doesn't need to be called many times. This patch moves it out of loop. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-12Merge remote-tracking branches 'asoc/topic/wm8994', 'asoc/topic/wm8997' and ↵Mark Brown3-25/+8
'asoc/topic/wm8998' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/wm5102', 'asoc/topic/wm5110', ↵Mark Brown5-41/+13
'asoc/topic/wm8350', 'asoc/topic/wm8400' and 'asoc/topic/wm8903' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/uniphier', 'asoc/topic/utils', ↵Mark Brown10-9/+604
'asoc/topic/ux500', 'asoc/topic/wm0010' and 'asoc/topic/wm2000' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/tscs42xx', 'asoc/topic/twl4030', ↵Mark Brown7-38/+4196
'asoc/topic/twl6040' and 'asoc/topic/uda1380' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/tlv320aic31xx', ↵Mark Brown8-601/+600
'asoc/topic/tlv320aic32x4', 'asoc/topic/tlv320aic3x', 'asoc/topic/tlv320dac33' and 'asoc/topic/ts3a227e' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/sunxi', 'asoc/topic/symmetry', ↵Mark Brown10-20/+993
'asoc/topic/tas5720', 'asoc/topic/tas6424' and 'asoc/topic/tfa9879' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/spdif', ↵Mark Brown7-102/+420
'asoc/topic/st-dfsdm', 'asoc/topic/stm32' and 'asoc/topic/sun4i-i2s' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/rt5514', 'asoc/topic/rt5645', ↵Mark Brown8-89/+251
'asoc/topic/samsung' and 'asoc/topic/si476x' into asoc-next
2018-01-12Merge remote-tracking branch 'asoc/topic/rl6231' into asoc-nextMark Brown1-29/+64
2018-01-12Merge remote-tracking branches 'asoc/topic/mtk', 'asoc/topic/nau8540', ↵Mark Brown14-682/+453
'asoc/topic/nau8824', 'asoc/topic/nau8825' and 'asoc/topic/nuc900' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/max98926', 'asoc/topic/max98927', ↵Mark Brown5-17/+9
'asoc/topic/mc13783', 'asoc/topic/msm8916' and 'asoc/topic/mt8173' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/hdac_hdmi', ↵Mark Brown6-1/+1197
'asoc/topic/hisilicon', 'asoc/topic/iio' and 'asoc/topic/max98373' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/eukrea-tlv320', 'asoc/topic/fsl', ↵Mark Brown7-948/+916
'asoc/topic/fsl-ssi' and 'asoc/topic/fsl_asrc' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/da7218', 'asoc/topic/dai-drv', ↵Mark Brown5-195/+210
'asoc/topic/davinci', 'asoc/topic/disconnect' and 'asoc/topic/ep93xx' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/cs42l56', 'asoc/topic/cs42l73', ↵Mark Brown6-63/+30
'asoc/topic/cs47l24', 'asoc/topic/cx20442' and 'asoc/topic/da7213' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/cq93vc', 'asoc/topic/cs35l32', ↵Mark Brown4-37/+23
'asoc/topic/cs35l34' and 'asoc/topic/cs42l52' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/88pm860x', 'asoc/topic/amd', ↵Mark Brown5-22/+56
'asoc/topic/atmel', 'asoc/topic/codecs' and 'asoc/topic/compress' into asoc-next
2018-01-12Merge remote-tracking branch 'asoc/topic/rockchip' into asoc-nextMark Brown1-2/+3
2018-01-12Merge remote-tracking branch 'asoc/topic/rcar' into asoc-nextMark Brown6-168/+184
2018-01-12Merge remote-tracking branch 'asoc/topic/qcom' into asoc-nextMark Brown1-5/+5
2018-01-12Merge remote-tracking branch 'asoc/topic/pcm512x' into asoc-nextMark Brown1-0/+4
2018-01-12Merge remote-tracking branch 'asoc/topic/pcm186x' into asoc-nextMark Brown6-0/+1100
2018-01-12Merge remote-tracking branch 'asoc/topic/intel' into asoc-nextMark Brown30-1708/+785
2018-01-12Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown2-4/+6
2018-01-12Merge remote-tracking branch 'asoc/fix/mtk' into asoc-linusMark Brown1-17/+14
2018-01-12Merge remote-tracking branch 'asoc/fix/rockchip' into asoc-linusMark Brown1-0/+6
2018-01-12Merge remote-tracking branch 'asoc/fix/intel' into asoc-linusMark Brown2-6/+5
2018-01-12ASoC: rt5645: add fallback case for jack detection supportPierre-Louis Bossart1-1/+14
Commit 78f5605c0329 ("ASoC: rt5645: cleanup DMI matching code") did a lot of useful cleanups. This patch adds a default case to enable jack detection if there is no pdata, device property or quirk. The chosen jd-mode3 is the most common and should limit the addition of new DMI-based quirks. Existing DMI quirks which only set this mode are left as is and not removed. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-11ASoC: stm32: fix a typo in stm32_adfsdm_probe()Wei Yongjun1-1/+1
Fix a typo, we should return PTR_ERR(priv->iio_cb) instead of PTR_ERR(priv->iio_ch). Fixes: 55da094824c4 ("ASoC: stm32: add DFSDM DAI support") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-11ASoC: stm32: select IIO_BUFFERArnd Bergmann1-1/+2
The new stm32_adfsdm driver has incomplete dependencies as shown by Kconfig: warning: (SND_SOC_STM32_DFSDM && LMP91000) selects IIO_BUFFER_CB which has unmet direct dependencies (IIO && IIO_BUFFER) sound/soc/stm/stm32_adfsdm.o: In function `stm32_adfsdm_trigger': stm32_adfsdm.c:(.text+0x8c): undefined reference to `stm32_dfsdm_get_buff_cb' stm32_adfsdm.c:(.text+0x9c): undefined reference to `stm32_dfsdm_release_buff_cb' This makes the dependency on SND_SOC_STM32_DFSDM unconditional, so we can always resolve the stm32_dfsdm_get_buff_cb/stm32_dfsdm_release_buff_cb symbols and get the implied IIO_BUFFER dependency. compile-testing on other platforms is still possible as long as that IIO driver is there. Fixes: 55da094824c4 ("ASoC: stm32: add DFSDM DAI support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: ux500: add MODULE_LICENSE tagArnd Bergmann2-0/+9
This adds MODULE_LICENSE/AUTHOR/DESCRIPTION tags to the ux500 platform drivers, to avoid these build warnings: WARNING: modpost: missing MODULE_LICENSE() in sound/soc/ux500/snd-soc-ux500-plat-dma.o WARNING: modpost: missing MODULE_LICENSE() in sound/soc/ux500/snd-soc-ux500-mach-mop500.o The company no longer exists, so the email addresses of the authors don't work any more, but I've added them anyway for consistency. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: mt8173: remove unnecessary micbias widget in routeBard Liao3-6/+0
The micbias1/2 are connected to route as SUPPLY usage. It was not take effect since they were MICBIAS type. To keep the same register settings, we have to remove it once the micbias1/2 widget is converted to SUPPLY type. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: sn95031: remove this codeVinod Koul4-1074/+0
This codec was used in MFLD systems in the PMIC chip, we no longer have users for this, so remove it Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: Intel: remove mfld_machineVinod Koul2-444/+0
mfld_machine was not getting compiled due to missed Makefile changes. Since no one complained it is safe to assume that it is not being used, so remove it Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: stm32: add DFSDM DAI supportArnaud Pouliquen3-0/+361
Add driver to handle DAI interface for PDM microphones connected to Digital Filter for Sigma Delta Modulators IP. Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: max98373: Modified control names for TLV controlsRyan Lee1-17/+17
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: max98373: Added TDM off if parameters are all zeroesRyan Lee1-1/+4
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-10ASoC: max98373: Added missing blank linesRyan Lee1-0/+2
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-09ASoC: TSCS42xx: make functions pll_event and dac_event staticColin Ian King1-4/+4
The functions pll_event and dac_event are local to the source and do not need to be in global scope, so make them static. Cleans up sparse warnings: symbol 'pll_event' was not declared. Should it be static? symbol 'dac_event' was not declared. Should it be static? Signed-off-by: Colin Ian King <colin.king@canonical.com> Reviewed-by: Steven Eckhoff <steven.eckhoff.opensource@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-09ASoC: TSCS42xx: Fix control namesSteven Eckhoff1-21/+21
The tscs42xx CODEC driver can confuse userspace with non-standard control names. Remove "Switch" from enum control type names. Add "Switch" to on/off control type names. Signed-off-by: Steven Eckhoff <steven.eckhoff.opensource@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-09ASoC: codecs: dmic: Make number of channels configurableMatthias Kaehlcke1-1/+23
The DMIC DAI driver specifies a number of 1 to 8 channels for each DAI. The actual number of mics can currently not be configured in the device tree or audio glue, but is derived from the min/max channels of the CPU and codec DAI. A typical CPU DAI has two or more channels, in consequence a single mic is treated as a stereo/multi channel device, even though only one channel carries audio data. This change adds the option to specify the number of used DMIC channels in the device tree. When specified this value overwrites the default channels_max value of 8 in the snd_soc_dai_driver struct of the codec. Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com> Signed-off-by: Mark Brown <broonie@kernel.org>