Pavel Dobias
53a58bf96b
ASoC: max9867: fix ADC level control
...
Fix swapped channels in ADC level control.
Signed-off-by: Pavel Dobias <dobias@2n.cz >
Link: https://lore.kernel.org/r/20200520071904.15801-1-dobias@2n.cz
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-20 14:47:39 +01:00
Pavel Dobias
8ba4dc3cff
ASoC: max9867: fix volume controls
...
The xmax values for Master Playback Volume and Mic Boost
Capture Volume are specified incorrectly (one greater)
which results in the wrong dB gain being shown to the user
in the case of Master Playback Volume.
Signed-off-by: Pavel Dobias <dobias@2n.cz >
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200515120757.24669-1-dobias@2n.cz
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 18:33:27 +01:00
Mark Brown
9bb93a40d9
Merge series "ASoC: cleanup DAI/Component activity" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
...
Hi Mark
These are v3 of DAI/Component activity cleanup.
This patch-set exchanges soc-dapm.c :: snd_soc_dai_link_event_xxx()
behavior which updates dai->active but not cares other actives.
But I think original code was wrong.
So, I believe these works correctly, but maybe need some tests or deep review.
v1 -> v2
- function naming "activity" -> "active"
v2 -> v3
- macro -> inline function
- added Reviewed-by from Ranjani, Acked-by from Peter
Link: https://lore.kernel.org/r/875zd39frp.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87blmq9alx.wl-kuninori.morimoto.gx@renesas.com
Kuninori Morimoto (21):
ASoC: soc-pcm: replace snd_soc_runtime_activate()/deactivate() to macro
ASoC: soc-dai: add snd_soc_dai_action()
ASoC: soc-dapm: use snd_soc_dai_activate()/deactivate()
ASoC: soc-dai: add snd_soc_dai_active()
ASoC: soc-component: add snd_soc_component_active()
ASoC: soc-dai: add snd_soc_dai_stream_active()
ASoC: use snd_soc_xxx_active()
ASoC: atomel: use snd_soc_xxx_active()
ASoC: bcm: use snd_soc_xxx_active()
ASoC: cirrus: use snd_soc_xxx_active()
ASoC: codecs: use snd_soc_xxx_active()
ASoC: fsl: use snd_soc_xxx_active()
ASoC: intel: use snd_soc_xxx_active()
ASoC: jz4740: use snd_soc_xxx_active()
ASoC: mediatek: use snd_soc_xxx_active()
ASoC: meson: use snd_soc_xxx_active()
ASoC: pxa: use snd_soc_xxx_active()
ASoC: ti: use snd_soc_xxx_active()
ASoC: uniphier: use snd_soc_xxx_active()
ASoC: dwc: use snd_soc_xxx_active()
ASoC: cleanup dai / component active code
include/sound/soc-component.h | 6 +-
include/sound/soc-dai.h | 21 +++++-
include/sound/soc.h | 15 ++++-
sound/soc/atmel/atmel_ssc_dai.c | 4 +-
sound/soc/bcm/bcm2835-i2s.c | 6 +-
sound/soc/bcm/cygnus-ssp.c | 4 +-
sound/soc/cirrus/ep93xx-i2s.c | 4 +-
sound/soc/codecs/adav80x.c | 4 +-
sound/soc/codecs/arizona.c | 2 +-
sound/soc/codecs/cs4271.c | 4 +-
sound/soc/codecs/madera.c | 2 +-
sound/soc/codecs/max98090.c | 6 +-
sound/soc/codecs/tlv320aic23.c | 2 +-
sound/soc/codecs/tlv320dac33.c | 2 +-
sound/soc/codecs/uda1380.c | 2 +-
sound/soc/codecs/wl1273.c | 2 +-
sound/soc/codecs/wm8711.c | 2 +-
sound/soc/codecs/wm8753.c | 4 +-
sound/soc/dwc/dwc-i2s.c | 2 +-
sound/soc/fsl/fsl_esai.c | 2 +-
sound/soc/fsl/fsl_spdif.c | 4 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 14 ++--
sound/soc/jz4740/jz4740-i2s.c | 8 +--
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 8 +--
sound/soc/meson/axg-tdm-interface.c | 2 +-
sound/soc/pxa/pxa-ssp.c | 8 +--
sound/soc/pxa/pxa2xx-i2s.c | 2 +-
sound/soc/soc-compress.c | 4 +-
sound/soc/soc-core.c | 11 +--
sound/soc/soc-dai.c | 23 +++++++
sound/soc/soc-dapm.c | 8 +--
sound/soc/soc-pcm.c | 70 +++++++-------------
sound/soc/ti/davinci-mcasp.c | 2 +-
sound/soc/ti/omap-dmic.c | 4 +-
sound/soc/ti/omap-mcbsp.c | 4 +-
sound/soc/ti/omap-mcpdm.c | 8 +--
sound/soc/uniphier/aio-cpu.c | 4 +-
37 files changed, 155 insertions(+), 125 deletions(-)
--
2.17.1
2020-05-18 16:43:49 +01:00
Mark Brown
a1c3ec70ee
Merge series "ASoC: codecs: rt*-sdw: memory leaks and simplifications" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
...
While debugging unrelated memory corruption errors, I detected issues
related to the interaction with the SoundWire and ASoC cores, here are
3 small patches to fix all this.
Pierre-Louis Bossart (3):
ASoC: codecs: rt*-sdw: don't assign slave_ops
ASoC: codecs: rt*-sdw: fix memory leak in set_sdw_stream()
ASoC: codecs: rt1308-sdw: remove duplicate allocation
sound/soc/codecs/rt1308-sdw.c | 11 +++--------
sound/soc/codecs/rt5682-sdw.c | 3 ---
sound/soc/codecs/rt5682.c | 3 +++
sound/soc/codecs/rt700-sdw.c | 3 ---
sound/soc/codecs/rt700.c | 3 +++
sound/soc/codecs/rt711-sdw.c | 3 ---
sound/soc/codecs/rt711.c | 3 +++
sound/soc/codecs/rt715-sdw.c | 3 ---
sound/soc/codecs/rt715.c | 3 +++
9 files changed, 15 insertions(+), 20 deletions(-)
base-commit: d731c1a0f9
--
2.20.1
2020-05-18 16:43:48 +01:00
Kuninori Morimoto
5e518eddd1
ASoC: codecs: use snd_soc_xxx_active()
...
We have snd_soc_dai/dai_stream/component_active() macro
This patch uses it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://lore.kernel.org/r/87wo5e58j4.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 16:15:07 +01:00
Sebastian Reichel
f7a8ae295c
ASoC: da7213: move set_pll to codec level
...
Move set_pll function to component level, so that it can be used at
both component and DAI level.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com >
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com >
Link: https://lore.kernel.org/r/20200511132544.82364-5-sebastian.reichel@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 14:34:55 +01:00
Sebastian Reichel
9c5c258438
ASoC: da7213: move set_sysclk to codec level
...
Move set_sysclk function to component level, so that it can be used at
both component and DAI level.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com >
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com >
Link: https://lore.kernel.org/r/20200511132544.82364-4-sebastian.reichel@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 14:34:54 +01:00
Sebastian Reichel
b2a378816d
ASoC: da7213: Add regulator support
...
This adds support for most regulators of da7212 for improved
power management. The only thing skipped was the speaker supply,
which has some undocumented dependencies. It's supposed to be
either always-enabled or always-disabled.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com >
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com >
Link: https://lore.kernel.org/r/20200511132544.82364-3-sebastian.reichel@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 14:34:53 +01:00
Sebastian Reichel
95579eaf98
ASoC: da7213: Add da7212 DT compatible
...
This adds a compatible for da7212. It's handled exactly the
same way as DA7213 and follows the ACPI bindings.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com >
Link: https://lore.kernel.org/r/20200511132544.82364-2-sebastian.reichel@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 14:34:52 +01:00
Pierre-Louis Bossart
ee5866222a
ASoC: codecs: rt1308-sdw: remove duplicate allocation
...
The .read_prop callback is supposed to be called by the SoundWire core
only. Calling it again from this driver results in an additional
memory allocation for no good reason.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Reviewed-by: Rander Wang <rander.wang@intel.com >
Cc: Oder Chiou <oder_chiou@realtek.com >
Cc: Shuming Fan <shumingf@realtek.com >
Cc: Jack Yu <jack.yu@realtek.com >
Link: https://lore.kernel.org/r/20200515211531.11416-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 12:38:30 +01:00
Pierre-Louis Bossart
07b542fe83
ASoC: codecs: rt*-sdw: fix memory leak in set_sdw_stream()
...
Now that the sdw_stream is allocated in machine driver,
set_sdw_stream() is also called with a NULL argument during the
dailink shutdown.
In this case, the drivers should not allocate any memory, and just
return.
Detected with KASAN/kmemleak.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Reviewed-by: Rander Wang <rander.wang@intel.com >
Cc: Oder Chiou <oder_chiou@realtek.com >
Cc: Shuming Fan <shumingf@realtek.com >
Cc: Jack Yu <jack.yu@realtek.com >
Link: https://lore.kernel.org/r/20200515211531.11416-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 12:38:29 +01:00
Pierre-Louis Bossart
b5dff6ec13
ASoC: codecs: rt*-sdw: don't assign slave_ops
...
The SoundWire bus core already assigns the slave ops, no need to set
them a second time manually in each driver.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Reviewed-by: Rander Wang <rander.wang@intel.com >
Cc: Oder Chiou <oder_chiou@realtek.com >
Cc: Shuming Fan <shumingf@realtek.com >
Cc: Jack Yu <jack.yu@realtek.com >
Link: https://lore.kernel.org/r/20200515211531.11416-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-18 12:38:28 +01:00
Ard Biesheuvel
93fa0af479
ASoC: cros_ec_codec: switch to library API for SHA-256
...
The CrOS EC codec driver uses SHA-256 explicitly, and not in a
performance critical manner, so there is really no point in using
the SHASH crypto API here. Let's switch to the library API instead.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org >
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com >
Cc: Cheng-Yi Chiang <cychiang@chromium.org >
Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Cc: Guenter Roeck <groeck@chromium.org >
Cc: Benson Leung <bleung@chromium.org >
Cc: Liam Girdwood <lgirdwood@gmail.com >
Cc: Mark Brown <broonie@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Eric Biggers <ebiggers@kernel.org >
Cc: Herbert Xu <herbert@gondor.apana.org.au >
Cc: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200515100309.20795-1-ardb@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-15 11:56:52 +01:00
Mark Brown
5ae5eb48ca
Merge branch 'for-5.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.8
2020-05-14 18:37:31 +01:00
Dan Murphy
79fc48e41e
ASoC: tlv320adcx140: Configure PDM sampling edge
...
Configure the PDM sampling edges based on the values from the firmware.
Signed-off-by: Dan Murphy <dmurphy@ti.com >
Link: https://lore.kernel.org/r/20200514123338.20392-3-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-14 18:05:21 +01:00
Dan Murphy
7cfa610205
ASoC: tlv320adcx140: Add controls for PDM clk
...
Add ALSA controls to configure the PDM clocks.
The clocks need to be configurable to accommodate various microphones
that use clocks for low power/low resolution modes to high power/high
resolution modes.
Signed-off-by: Dan Murphy <dmurphy@ti.com >
Link: https://lore.kernel.org/r/20200514123338.20392-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-14 18:05:19 +01:00
Dan Murphy
0e36f32f6b
ASoC: tlv320adcx140: Fix bias config values
...
The device tree binding declares the ti,mic-bias-source and the
ti,vref-source properties as u32. The code reads them as u8 which is
incorrect. Since the device tree binding indicates them as u32 the
conde needs to be updated to read u32.
In addition the bias source needs to be shifted 4 bits to
correctly write the register.
driver family")
Fixes: 37bde5acf040 ("ASoC: tlv320adcx140: Add the tlv320adcx140 codec
Signed-off-by: Dan Murphy <dmurphy@ti.com >
Link: https://lore.kernel.org/r/20200513142807.11802-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-13 17:13:23 +01:00
Shengjiu Wang
65e412a01b
ASoC: wm8962: Use force clear for WM8962_SYSCLK_ENA after reset
...
When CLOCKING2 is non-volatile register, we need force clear
the WM8962_SYSCLK_ENA bit after reset, for the value in cache
maybe 0 but in hardware it is 1. Otherwise there will issue
as below statement in driver.
/* SYSCLK defaults to on; make sure it is off so we can safely
* write to registers if the device is declocked.
Fixes: c38b608504
("ASoC: wm8962: set CLOCKING2 as non-volatile register")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com >
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://lore.kernel.org/r/1589347835-20554-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-13 12:00:13 +01:00
Mark Brown
132a0eb032
Merge branch 'for-5.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.8
2020-05-12 16:12:47 +01:00
Arnd Bergmann
a1304cba81
ASoC: cros_ec_codec: allocate shash_desc dynamically
...
The wov_hotword_model_put() function has multiple large variables on
its stack, the largest of which is the result of SHASH_DESC_ON_STACK().
In total, this exceeds the warning limit for 32-bit architectures:
sound/soc/codecs/cros_ec_codec.c:776:12: error: stack frame size of 1152 bytes in function 'wov_hotword_model_put' [-Werror,-Wframe-larger-than=]
The function already has a dynamic crypto_alloc_shash() allocation, so
using kmalloc() for the descriptor is correct as well and does not
introduce any additional failure scenarios. With this, the stack usage
of wov_hotword_model_put() gets reduced to 480 bytes in my test
configuration.
Fixes: b6bc07d436
("ASoC: cros_ec_codec: support WoV")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200507213405.1869430-1-arnd@arndb.de
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-08 18:52:12 +01:00
Oder Chiou
79a4b670b4
ASoC: rt1016: Add the rt1016 support
...
The patch adds the rt1016 support.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com >
Link: https://lore.kernel.org/r/20200507021539.7133-1-oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-07 13:18:04 +01:00
Wei Yongjun
9558ad2155
ASoC: rt5677: Use devm_snd_soc_register_component()
...
Using devm_snd_soc_register_component() can make the code
shorter and cleaner.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com >
Link: https://lore.kernel.org/r/20200507094335.14302-1-weiyongjun1@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-07 13:18:03 +01:00
Kai-Heng Feng
8c11827bba
ALSA: hda: Use hdac_to_hda_codec macro
...
Use hdac_to_hda_codec() instead of container_of().
No functional change intended.
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com >
Link: https://lore.kernel.org/r/20200505030357.28004-2-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de >
2020-05-05 08:59:02 +02:00
Shengjiu Wang
dbab677f32
ASoC: wm8524: Add support S32_LE
...
Allow 32bit sample with this codec.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com >
Link: https://lore.kernel.org/r/cff745cc041c5208910821f0740f988926af8a66.1574418380.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 19:23:59 +01:00
Jack Yu
d696a61413
ASoC: rt1015: Add condition to prevent SoC providing bclk in ratio of 50 times of sample rate.
...
Add condition to prevent SoC providing bclk in ratio of 50 times of sample rate.
Signed-off-by: Jack Yu <jack.yu@realtek.com >
Link: https://lore.kernel.org/r/20200504112013.2499-1-jack.yu@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 16:23:24 +01:00
Oder Chiou
c25504ad64
ASoC: rl6231: Add the K bypass for the PLL parameters
...
The patch adds the K bypass for the PLL parameters.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com >
Link: https://lore.kernel.org/r/20200504074007.13002-2-oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 16:23:23 +01:00
Chris Garren
f2b1e1cbd3
ASoC: adau7118: Mark the ADAU7118 reset register as volatile
...
Without this the previously written value was written to this reg,
which caused the different configuration registers to be reset.
Signed-off-by: Chris Garren <cdgarren@indesign-llc.com >
Link: https://lore.kernel.org/r/1588599820-57994-1-git-send-email-cdgarren@indesign-llc.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 15:36:50 +01:00
Wolfram Sang
454b3766de
ASoC: codecs: max9768: update contact email
...
The 'pengutronix' address is defunct for years. Use the proper contact
address.
Signed-off-by: Wolfram Sang <wsa@kernel.org >
Link: https://lore.kernel.org/r/20200502142646.19033-1-wsa@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 13:27:02 +01:00
Yong Zhi
1a446873d7
ASoC: max98373: reorder max98373_reset() in resume
...
During S3 test, the following error was observed:
[ 726.174237] i2c_designware i2c_designware.0: platform_pm_resume+0x0/0x3d returned 0 after 0 usecs
[ 726.184187] max98373 i2c-MX98373:00: calling max98373_resume+0x0/0x30 [snd_soc_max98373] @ 12698, parent: i2c-11
[ 726.195589] max98373 i2c-MX98373:00: Reset command failed. (ret:-16)
When calling regmap_update_bits(), since map->reg_update_bits is NULL,
_regmap_read() is entered with the following logic:
if (!map->cache_bypass) {
ret = regcache_read(map, reg, val);
if (ret == 0)
return 0;
}
if (map->cache_only)
return -EBUSY;
regcache_read() hits -EINVAL because MAX98373_R2000_SW_RESET is volatile,
as map->cache_only is set by codec suspend, thus -EBUSY is returned.
Fix by moving max98373_reset() after cache_only set to false in max98373_resume().
Signed-off-by: Yong Zhi <yong.zhi@intel.com >
Link: https://lore.kernel.org/r/1588376661-29799-1-git-send-email-yong.zhi@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-05-04 13:27:01 +01:00
Tzung-Bi Shih
4642126b85
ASoC: rt5682: remove unwanted btn_type assignment
...
The following dev_err() is intended to print unexpected btn_type.
Removes the unwanted btn_type assignment.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-7-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:53 +01:00
Tzung-Bi Shih
2317e84979
ASoC: rt5682: remove duplicate rt5682_reset() calls
...
Removes duplicate rt5682_reset() calls. rt5682_calibrate() calls
rt5682_reset() anyway.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-6-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:52 +01:00
Tzung-Bi Shih
9c1cb755b5
ASoC: rt5682: replace message printing from pr_() to dev_()
...
Replaces message printing from pr_() to dev_().
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-5-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:51 +01:00
Tzung-Bi Shih
70255cf691
ASoC: rt5682: remove empty default case
...
Removes empty default case. Also adds a missing break statement.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-4-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:50 +01:00
Tzung-Bi Shih
5b8e09091b
ASoC: rt5682: fix space issues
...
Fixes blank lines and indent issues.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:49 +01:00
Tzung-Bi Shih
38c2e325a6
ASoC: rt5682: simplify assertions
...
Simplifies assertions for errors.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200430082231.151127-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-30 14:06:48 +01:00
Arnd Bergmann
fd443a20c2
ASoC: rt5682: fix I2C/Soundwire dependencies
...
If one of the two is a loadable module, the combined driver must
not be built-in:
aarch64-linux-ld: sound/soc/codecs/rt5682.o: in function `rt5682_sdw_hw_free':
rt5682.c:(.text+0xb34): undefined reference to `sdw_stream_remove_slave'
aarch64-linux-ld: sound/soc/codecs/rt5682.o: in function `rt5682_sdw_hw_params':
rt5682.c:(.text+0xe78): undefined reference to `sdw_stream_add_slave'
In particular, the soundwire driver must not be built-in if
CONFIG_I2C=m.
Fixes: 5549ea6479
("ASoC: rt5682: fix unmet dependencies")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20200428214642.3925004-1-arnd@arndb.de
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-29 17:21:34 +01:00
Seven Lee
77be181e2c
ASoc: nau8810: add AUX related dapm widgets and routes
...
This patch implements the following features:
- AUX input for recording.
- An input AUX output to SPK/MOUT.
Signed-off-by: Seven Lee <wtli@nuvoton.com >
Link: https://lore.kernel.org/r/20200429090002.28556-1-wtli@nuvoton.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-29 14:23:18 +01:00
Arnd Bergmann
ee2cbe0693
ASoC: codecs: wm97xx: fix ac97 dependency
...
A recent build fix got the dependency slightly wrong, breaking
builds with CONFIG_AC97_BUS_NEW:
WARNING: unmet direct dependencies detected for SND_SOC_WM9713
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_AC97_BUS [=n]
Selected by [m]:
- SND_SOC_ZYLONITE [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_PXA2XX_SOC [=m] && MACH_ZYLONITE [=y] && AC97_BUS [=n]=n
WARNING: unmet direct dependencies detected for SND_SOC_WM9712
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_AC97_BUS [=n]
Selected by [m]:
- SND_PXA2XX_SOC_EM_X270 [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_PXA2XX_SOC [=m] && (MACH_EM_X270 [=n] || MACH_EXEDA [=n] || MACH_CM_X300 [=y]) && AC97_BUS [=n]=n
Change the dependency to allow either version of the AC97 library
code.
Fixes: 5a30987578
("ASoC: Fix SND_SOC_ALL_CODECS imply ac97 fallout")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://lore.kernel.org/r/20200428212721.2877627-1-arnd@arndb.de
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-29 14:23:17 +01:00
Mark Brown
2f8eae3905
Merge branch 'for-5.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.8
2020-04-28 16:05:35 +01:00
Dan Murphy
be8499c48f
ASoC: tlv320adcx140: Fix mic gain registers
...
Fix the mic gain registers for channels 2-4.
The incorret register was being set as it was touching the CH1 config
registers.
Fixes: 37bde5acf040 ("ASoC: tlv320adcx140: Add the tlv320adcx140 codec driver family")
Signed-off-by: Dan Murphy <dmurphy@ti.com >
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200427203608.7031-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-28 13:33:57 +01:00
Shengjiu Wang
c38b608504
ASoC: wm8962: set CLOCKING2 as non-volatile register
...
Previously CLOCKING2 is set as a volatile register, but cause
issue at suspend & resume, that some bits of CLOCKING2 is not
restored at resume, for example SYSCLK_SRC bits, then the output
clock is wrong.
The volatile property is caused by CLASSD_CLK_DIV bits,
which are controlled by the chip itself. But the datasheet
claims these are read only and protected by the security key,
and they are not read by the driver at all.
So it should be safe to change CLOCKING2 to be non-volatile.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com >
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://lore.kernel.org/r/6d25d5b36d4b9aeb8655b5e947dad52214e34177.1587693523.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-24 11:31:04 +01:00
Mark Brown
5d7e0b1516
ASoC: dmic: Allow GPIO operations to sleep
...
If there is a power GPIO provided we control it from DAPM context so there
is no problem with a sleeping GPIO, use the _cansleep() version of the API
to allow this.
Signed-off-by: Mark Brown <broonie@kernel.org >
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com >
Link: https://lore.kernel.org/r/20200422083550.50711-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-22 13:15:57 +01:00
Mark Brown
8baa3b5a6a
Merge series "ASoC: add snd_compress_ops and replace" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
...
Hi Mark
Current snd_soc_component_driver has compr_ops,
but it is created for ALSA, not for ALSA SoC.
This means it doesn't know the callback is for which component,
thus, each callback needs to get component via lookup function.
It is not good design, and will not work in the future,
because ASoC can have multipul same name component which
current lookup function can't handle.
This v2 patch-set adds new snd_compress_ops and call
callbacks with component.
v1 is here
Link: https://lore.kernel.org/alsa-devel/87blnqpuqp.wl-kuninori.morimoto.gx@renesas.com/
Kuninori Morimoto (8):
ASoC: soc-compress: add snd_compress_ops
ASoC: codec: wm_adsp: use snd_compress_ops
ASoC: uniphier: use snd_compress_ops
ASoC: qcom: q6sp6: use snd_compress_ops
ASoC: intel: atom: use snd_compress_ops
ASoC: sof: use snd_compress_ops
ASoC: sprd: use snd_compress_ops
ASoC: soc-compress: remove snd_compr_ops
include/sound/soc-component.h | 40 ++++++++-
sound/soc/codecs/cs47l15.c | 9 +-
sound/soc/codecs/cs47l24.c | 8 +-
sound/soc/codecs/cs47l35.c | 9 +-
sound/soc/codecs/cs47l85.c | 9 +-
sound/soc/codecs/cs47l90.c | 9 +-
sound/soc/codecs/cs47l92.c | 9 +-
sound/soc/codecs/wm5102.c | 9 +-
sound/soc/codecs/wm5110.c | 8 +-
sound/soc/codecs/wm_adsp.c | 18 ++--
sound/soc/codecs/wm_adsp.h | 18 ++--
.../intel/atom/sst-mfld-platform-compress.c | 43 +++++----
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 2 +-
sound/soc/intel/atom/sst-mfld-platform.h | 2 +-
sound/soc/qcom/qdsp6/q6asm-dai.c | 51 ++++++-----
sound/soc/soc-compress.c | 89 ++++++++++---------
sound/soc/sof/compress.c | 7 +-
sound/soc/sof/compress.h | 7 +-
sound/soc/sof/pcm.c | 4 +-
sound/soc/sof/sof-priv.h | 2 +-
sound/soc/sprd/sprd-pcm-compress.c | 49 +++++-----
sound/soc/sprd/sprd-pcm-dma.c | 2 +-
sound/soc/sprd/sprd-pcm-dma.h | 2 +-
sound/soc/uniphier/aio-compress.c | 45 ++++++----
sound/soc/uniphier/aio-dma.c | 2 +-
sound/soc/uniphier/aio.h | 2 +-
26 files changed, 265 insertions(+), 190 deletions(-)
--
2.17.1
2020-04-21 19:22:08 +01:00
Sven Van Asbroeck
52e8a94baf
ASoC: Add initial ZL38060 driver
...
The ZL38060 is a "Connected Home Audio Processor" from Microsemi,
which consists of a Digital Signal Processor (DSP), several Digital
Audio Interfaces (DAIs), analog outputs, and a block of 14 GPIOs.
This driver supports only a tiny subset of the chip's functionality
and possible configurations:
- bypass mode (whole dsp block is bypassed)
- chip's I2S DAI routed directly to/from DACs and microphone
- chip's internal clock is driven by a 12 MHz external crystal
- chip's DAI connected to CPU is I2S, and bit + frame clock master
- chip must be strapped for "host boot": in this mode, firmware will
be provided by this driver.
Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com >
Link: https://lore.kernel.org/r/20200417221341.31428-2-TheSven73@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-21 19:22:07 +01:00
Kuninori Morimoto
3a5ccf25ee
ASoC: codec: wm_adsp: use snd_compress_ops
...
We can use snd_compress_ops.
Let's switch to use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com >
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://lore.kernel.org/r/87tv1evdlu.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-21 19:01:55 +01:00
Shengjiu Wang
1e060a453c
ASoC: wm8960: Fix wrong clock after suspend & resume
...
After suspend & resume, wm8960_hw_params may be called when
bias_level is not SND_SOC_BIAS_ON, then wm8960_configure_clocking
is not called. But if sample rate is changed at that time, then
the output clock rate will be not correct.
So judgement of bias_level is SND_SOC_BIAS_ON in wm8960_hw_params
is not necessary and it causes above issue.
Fixes: 3176bf2d7c
("ASoC: wm8960: update pll and clock setting function")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com >
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://lore.kernel.org/r/1587468525-27514-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-21 15:43:22 +01:00
Jason Yan
e48e83d15b
ASoC: wcd934x: remove unneeded semicolon
...
Fix the following coccicheck warning:
sound/soc/codecs/wcd934x.c:3621:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:4270:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:4018:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:4043:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3804:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3866:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3596:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3542:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3673:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:3723:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:2492:2-3: Unneeded semicolon
sound/soc/codecs/wcd934x.c:1790:3-4: Unneeded semicolon
sound/soc/codecs/wcd934x.c:1806:3-4: Unneeded semicolon
sound/soc/codecs/wcd934x.c:1812:2-3: Unneeded semicolon
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Link: https://lore.kernel.org/r/20200420042911.19379-1-yanaijie@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-20 18:00:44 +01:00
Jason Yan
0eb0674616
ASoC: wcd9335: remove unneeded semicolon
...
Fix the following coccicheck warning:
sound/soc/codecs/wcd9335.c:2606:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3619:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:2849:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:2955:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:2988:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3960:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3776:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3924:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3355:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3832:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3079:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3089:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3232:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3878:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3578:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3728:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:1922:3-4: Unneeded semicolon
sound/soc/codecs/wcd9335.c:1938:3-4: Unneeded semicolon
sound/soc/codecs/wcd9335.c:1944:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:3144:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:2568:2-3: Unneeded semicolon
sound/soc/codecs/wcd9335.c:2219:2-3: Unneeded semicolon
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Link: https://lore.kernel.org/r/20200420042847.19206-1-yanaijie@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-20 18:00:36 +01:00
Jason Yan
4f05b5c62d
ASoC: wcd934x: remove unnecessary comparisons to bool
...
Fix the following coccicheck warning:
sound/soc/codecs/wcd934x.c:3881:8-17: WARNING: Comparison of 0/1 to bool
variable
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Link: https://lore.kernel.org/r/20200420042833.19116-1-yanaijie@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2020-04-20 18:00:27 +01:00
Mark Brown
ace105dd61
Merge series "ASoC: Fix dependency issues of SND_SOC" from Wei Li <liwei391@huawei.com>:
...
Fix dependency issues of SND_SOC introduced by commit ea00d95200
("ASoC: Use imply for SND_SOC_ALL_CODECS").
Wei Li (2):
ASoC: wm89xx: Fix build errors caused by I2C dependency
ASoC: Fix wrong dependency of da7210 and wm8983
sound/soc/codecs/Kconfig | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--
2.17.1
2020-04-20 15:27:09 +01:00