summaryrefslogtreecommitdiff
path: root/sound/soc/codecs
AgeCommit message (Collapse)Author
2018-03-12Merge remote-tracking branches 'asoc/fix/amd', 'asoc/fix/hdmi-codec', ↵Mark Brown
'asoc/fix/rt5651', 'asoc/fix/samsung', 'asoc/fix/sgtl5000', 'asoc/fix/sunxi' and 'asoc/fix/wm-adsp' into asoc-linus
2018-02-28ASoC: wm_adsp: For TLV controls only register TLV get/setRichard Fitzgerald
Normal 512-byte get/set of a TLV isn't supported but we were registering the normal get/set anyway and relying on omitting the SNDRV_CTL_ELEM_ACCESS_[READ|WRITE] flags to prevent them being called. Trouble is if this gets broken in the core ALSA code - as it has been since at least 4.14 - the standard get/set can be called unexpectedly and corrupt memory. There's no point providing functions that won't be called and it's a trivial change. The benefit is that if the ALSA core gets broken again we get a big fat immediate NULL dereference instead of a memory corruption timebomb. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2018-02-20ASoC: hdmi-codec: Fix module unloading caused kernel crashPeter Ujfalusi
The hcp->chmap_info must not be freed up in the hdmi_codec_remove() function as it leads to kernel crash due ALSA core's pcm_chmap_ctl_private_free() is trying to free it up again when the card destroyed via snd_card_free. Commit cd6111b26280a ("ASoC: hdmi-codec: add channel mapping control") should not have added the kfree(hcp->chmap_info); to the hdmi_codec_remove function. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Jyri Sarha <jsarha@ti.com> Tested-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-02-19ASoC: rt5651: Fix regcache sync errors on resumeHans de Goede
The ALC5651 does not like multi-write accesses, avoid them. This fixes: rt5651 i2c-10EC5651:00: Unable to sync registers 0x27-0x28. -121 Errors on resume (and all registers after the registers in the error not being synced). Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2018-02-16ASoC: sgtl5000: Fix suspend/resumeFabio Estevam
Commit 8419caa72702 ("ASoC: sgtl5000: Do not disable regulators in SND_SOC_BIAS_OFF") causes the sgtl5000 to fail after a suspend/resume sequence: Playing WAVE '/media/a2002011001-e02.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo aplay: pcm_write:2051: write error: Input/output error The problem is caused by the fact that the aforementioned commit dropped the cache handling, so re-introduce the register map resync to fix the problem. Suggested-by: Mark Brown <broonie@kernel.org> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: <stable@vger.kernel.org>
2018-02-14sgtl5000: change digital_mute policyMichal Oleszczyk
Current implementation mute codec in global way (DAC block). That means when user routes sound not from I2S but from AUX source (LINE_IN) it also will be muted by alsa core. This should not happen. Signed-off-by: Michal Oleszczyk <oleszczyk.m@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-02-07Merge tag 'asoc-v4.16-5' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound Pull more ASoC updates from Mark Brown: "With the merge window having been delayed for another week here's another batch of updates that came in during that week. There's a few important fixes in here, mainly a fix for I/O on a number of devices caused by some of the component rework and a fix for a potential issue if more than one component in a link provides compressed operations. The I/O fixes are particularly important as the problem causes a power regression on a number of OMAP platforms" * tag 'asoc-v4.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound: (22 commits) ASoC: stm32: add of dependency for stm32 drivers ASoC: mt8173-rt5650: fix child-node lookup ASoC: dapm: fix debugfs read using path->connected ASoC: compress: Fixup error messages ASoC: compress: Remove some extraneous blank lines ASoC: compress: Correct handling of copy callback ASoC: Intel: kbl: Enable mclk and ssp sclk early ASoC: Intel: Skylake: Add extended I2S config blob support in Clock driver ASoC: Intel: Skylake: Add ssp clock driver ASoC: Fix twl4030 and 6040 regression by adding back read and write ASoC: sun8i-codec: Add ADC support for a33 ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink ASoC: soc-pcm: rename .pmdown_time to .use_pmdown_time for Component ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback ASoC: soc-pcm: don't call flush_delayed_work() many times in soc_pcm_private_free() ASoC: soc-core: snd_soc_rtdcom_lookup() cares component driver name ASoC: sam9x5_wm8731: Drop 'ASoC' prefix from error messages ASoC: sam9g20_wm8731: use dev_*() logging functions ASoC: max98373 Changed SPDX header in C++ comments style ASoC: dmic: Fix check of return value from read of 'num-channels' ...
2018-02-07Merge remote-tracking branches 'asoc/topic/sam9x5_wm8731', ↵Mark Brown
'asoc/topic/sgtl5000' and 'asoc/topic/sun8i-codec' into asoc-next
2018-02-07Merge remote-tracking branches 'asoc/topic/max98373', 'asoc/topic/mtk', ↵Mark Brown
'asoc/topic/pcm', 'asoc/topic/rockchip' and 'asoc/topic/sam9g20_wm8731' into asoc-next
2018-02-07Merge remote-tracking branches 'asoc/topic/ak4613', 'asoc/topic/core', ↵Mark Brown
'asoc/topic/dmic' and 'asoc/topic/intel' into asoc-next
2018-02-07Merge remote-tracking branch 'asoc/fix/twl-breakage' into asoc-nextMark Brown
2018-01-25ASoC: Fix twl4030 and 6040 regression by adding back read and writeTony Lindgren
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 Brown
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-twl-breakage
2018-01-24ASoC: ak4613: call dummy write for PW_MGMT1/3 when PlaybackKuninori Morimoto
Power Down Release Command (PMVR, PMDAC, RSTN, PMDA1-PMDA6) which are located on PW_MGMT1 / PW_MGMT3 register must be write again after at least 5 LRCK cycle or later on each command. Otherwise, Playback volume will be 0dB. Basically, it should be 1. PowerDownRelease by Power Management1 <= call 1.x after 5LRCK 1.x Dummy write to Power Management1 2. PowerDownRelease by Power Management3 <= call 2.x after 5LRCK 2.x Dummy write to Power Management3 To avoid too many dummy write, this patch is merging these. 1. PowerDownRelease by Power Management1 2. PowerDownRelease by Power Management3 <= call after 5LRCK 2.x Dummy write to Power Management1/3 <= merge dummy write This patch adds dummy write when Playback Start timing. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-22ASoC: max98373 Changed SPDX header in C++ comments styleRyan Lee
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-22ASoC: dmic: Fix check of return value from read of 'num-channels'Matthias Kaehlcke
Commit 7fb59e940f62 ("ASoC: codecs: dmic: Make number of channels configurable") introduces an optional property to the device tree to specify the number of DMIC channels. dmic_codec_probe() uses of_property_read_u32() to read the DT value, and expects a return value of -ENOENT when the property does not exist. This expectation is incorrect, the actual value returned in this case is -EINVAL (see of_find_property_value_of_size(), which is called under the hood). Check for -EINVAL instead. Fixes: 7fb59e940f62 ("ASoC: codecs: dmic: Make number of channels configurable") Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-18ASoC: sgtl5000: Clarify a bit about the ER1 meaningFabio Estevam
The "check ER1" message is not very clear about its meaning. Improve it a bit by referring to it as "ER1 erratum" so that it becomes clearer that ER1 references to a SGTL5000 erratum. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-18Merge remote-tracking branches 'asoc/topic/wm8400', 'asoc/topic/wm8903', ↵Mark Brown
'asoc/topic/wm8994', 'asoc/topic/wm8997' and 'asoc/topic/wm8998' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/wm0010', 'asoc/topic/wm2000', ↵Mark Brown
'asoc/topic/wm5102', 'asoc/topic/wm5110' and 'asoc/topic/wm8350' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/twl6040', 'asoc/topic/uda1380', ↵Mark Brown
'asoc/topic/uniphier', 'asoc/topic/utils' and 'asoc/topic/ux500' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/tlv320dac33', ↵Mark Brown
'asoc/topic/ts3a227e', 'asoc/topic/tscs42xx' and 'asoc/topic/twl4030' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/tas6424', 'asoc/topic/tfa9879', ↵Mark Brown
'asoc/topic/tlv320aic31xx', 'asoc/topic/tlv320aic32x4' and 'asoc/topic/tlv320aic3x' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/stm32', 'asoc/topic/sun4i-i2s', ↵Mark Brown
'asoc/topic/sunxi', 'asoc/topic/symmetry' and 'asoc/topic/tas5720' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/sgtl5000', 'asoc/topic/si476x', ↵Mark Brown
'asoc/topic/simple', 'asoc/topic/spdif' and 'asoc/topic/st-dfsdm' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/rl6231', 'asoc/topic/rt5514', ↵Mark Brown
'asoc/topic/rt5645' and 'asoc/topic/samsung' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/mxs', 'asoc/topic/mxs-sgtl5000', ↵Mark Brown
'asoc/topic/nau8540', 'asoc/topic/nau8824' and 'asoc/topic/nau8825' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/max98927', 'asoc/topic/mc13783', ↵Mark Brown
'asoc/topic/msm8916', 'asoc/topic/mt8173' and 'asoc/topic/mtk' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/hisilicon', 'asoc/topic/iio', ↵Mark Brown
'asoc/topic/max98373' and 'asoc/topic/max98926' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-ssi', ↵Mark Brown
'asoc/topic/fsl_asrc' and 'asoc/topic/hdac_hdmi' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/cs47l24', 'asoc/topic/cx20442', ↵Mark Brown
'asoc/topic/da7213', 'asoc/topic/da7218' and 'asoc/topic/dai-drv' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/cs35l32', 'asoc/topic/cs35l34', ↵Mark Brown
'asoc/topic/cs42l52', 'asoc/topic/cs42l56' and 'asoc/topic/cs42l73' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/codecs', 'asoc/topic/compress' ↵Mark Brown
and 'asoc/topic/cq93vc' into asoc-next
2018-01-18Merge remote-tracking branches 'asoc/topic/88pm860x', 'asoc/topic/amd', ↵Mark Brown
'asoc/topic/atmel', 'asoc/topic/au1x' and 'asoc/topic/bcm2835' into asoc-next
2018-01-18Merge remote-tracking branch 'asoc/topic/pcm512x' into asoc-nextMark Brown
2018-01-18Merge remote-tracking branch 'asoc/topic/pcm186x' into asoc-nextMark Brown
2018-01-18ASoC: sgtl5000: Do not print error on probe deferralFabio Estevam
When the MCLK is not yet available when the codec is probed, probe deferral will happen and in this case we should not print an error message. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-16ASoC: cx20442: fix regression by adding back .read/.writeKuninori Morimoto
commit 39b5a0f80c07f ("ASoC: cx20442: don't use reg_cache") removed .read/.write from driver, but it might breaks non-regmap driver, because ALSA SoC framework might call it. To fix this regression, this patch back .read/.write. and also this patch uses cx20442 internal reg_cache which is needed for .read/.write. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-16ASoC: uda1380: fix regression by adding back .read/.writeKuninori Morimoto
commit c001bf633a9 ("ASoC: use internal reg_cache on uda1380") removed .read/.write from driver, but it might breaks non-regmap driver, because ALSA SoC framework might call it. To fix this regression, this patch back .read/.write Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-16ASoC: tlv320dac33: fix regression by adding back .read/.writeKuninori Morimoto
commit c4305af43a8 ("ASoC: use internal reg_cache on tlv320dac33") removed .read/.write from driver, but it might breaks non-regmap driver, because ALSA SoC framework might call it. To fix this regression, this patch back .read/.write Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-12Merge branch 'topic/hdac-hdmi' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel
2018-01-12ASoC: cs42l73: Remove trailing semicolonLuis de Bethencourt
The trailing semicolon is an empty statement that does no operation. Removing it since it doesn't do anything. Signed-off-by: Luis de Bethencourt <luisbg@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2018-01-12Merge branch 'acpi-gpio' of ↵Mark Brown
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm into asoc-intel
2018-01-12Merge remote-tracking branches 'asoc/topic/wm8994', 'asoc/topic/wm8997' and ↵Mark Brown
'asoc/topic/wm8998' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/wm5102', 'asoc/topic/wm5110', ↵Mark Brown
'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 Brown
'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 Brown
'asoc/topic/twl6040' and 'asoc/topic/uda1380' into asoc-next
2018-01-12Merge remote-tracking branches 'asoc/topic/tlv320aic31xx', ↵Mark Brown
'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 Brown
'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 Brown
'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 Brown
'asoc/topic/samsung' and 'asoc/topic/si476x' into asoc-next