Dinghao Liu [Thu, 13 Aug 2020 08:41:10 +0000 (16:41 +0800)]
ASoC: intel: Fix memleak in sst_media_open
When power_up_sst() fails, stream needs to be freed
just like when try_module_get() fails. However, current
code is returning directly and ends up leaking memory.
Fixes:
0121327c1a68b ("ASoC: Intel: mfld-pcm: add control for powering up/down dsp")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813084112.26205-1-dinghao.liu@zju.edu.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Sylwester Nawrocki [Fri, 31 Jul 2020 17:38:34 +0000 (19:38 +0200)]
ASoC: wm8994: Avoid attempts to read unreadable registers
The driver supports WM1811, WM8994, WM8958 devices but according to
documentation and the regmap definitions the WM8958_DSP2_* registers
are only available on WM8958. In current code these registers are
being accessed as if they were available on all the three chips.
When starting playback on WM1811 CODEC multiple errors like:
"wm8994-codec wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5"
can be seen, which is caused by attempts to read an unavailable
WM8958_DSP2_PROGRAM register. The issue has been uncovered by recent
commit "e2329ee ASoC: soc-component: add soc_component_err()".
This patch adds a check in wm8958_aif_ev() callback so the DSP2 handling
is only done for WM8958.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200731173834.23832-1-s.nawrocki@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Tue, 11 Aug 2020 10:34:52 +0000 (11:34 +0100)]
ASoC: msm8916-wcd-analog: fix register Interrupt offset
For some reason interrupt set and clear register offsets are
not set correctly.
This patch corrects them!
Fixes:
585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20200811103452.20448-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Sylwester Nawrocki [Tue, 4 Aug 2020 14:10:43 +0000 (16:10 +0200)]
ASoC: wm8994: Prevent access to invalid VU register bits on WM1811
The ADC2 and DAC2 are not available on WM1811 device. This patch moves
the ADC2, DAC2 VU bitfields to a separate array so we can skip accessing
them and avoid unreadable register access on WM1811.
This allows to get rid of warnings during boot like:
wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Link: https://lore.kernel.org/r/20200804141043.11425-1-s.nawrocki@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Tue, 11 Aug 2020 12:02:05 +0000 (13:02 +0100)]
ASoC: q6routing: add dummy register read/write function
Most of the DAPM widgets for DSP ASoC components reuse reg field
of the widgets for its internal calculations, however these are not
real registers. So read/writes to these numbers are not really
valid. However ASoC core will read these registers to get default
state during startup.
With recent changes to ASoC core, every register read/write
failures are reported very verbosely. Prior to this fails to reads
are totally ignored, so we never saw any error messages.
To fix this add dummy read/write function to return default value.
Fixes:
e3a33673e845 ("ASoC: qdsp6: q6routing: Add q6routing driver")
Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200811120205.21805-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Tue, 11 Aug 2020 12:02:04 +0000 (13:02 +0100)]
ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
Looks like the q6afe-dai dapm widget registers are set as "0",
which is a not correct.
As this registers will be read by ASoC core during startup
which will throw up errors, Fix this by making the registers
as SND_SOC_NOPM as these should be never used.
With recent changes to ASoC core, every register read/write
failures are reported very verbosely. Prior to this fails to reads
are totally ignored, so we never saw any error messages.
Fixes:
24c4cbcfac09 ("ASoC: qdsp6: q6afe: Add q6afe dai driver")
Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200811120205.21805-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 10 Aug 2020 13:46:31 +0000 (15:46 +0200)]
ASoC: Make soc_component_read() returning an error code again
Along with the recent unification of snd_soc_component_read*()
functions, the behavior of snd_soc_component_read() was changed
slightly; namely it returns the register read value directly, and even
if an error happens, it returns zero (but it prints an error
message). That said, the caller side can't know whether it's an error
or not any longer.
Ideally this shouldn't matter much, but in practice this seems causing
a regression, as John reported. And, grepping the tree revealed that
there are still plenty of callers that do check the error code, so
we'll need to deal with them in anyway.
As a quick band-aid over the regression, this patch changes the return
value of snd_soc_component_read() again to the negative error code.
It can't work, obviously, for 32bit register values, but it should be
enough for the known regressions, so far.
Fixes:
cf6e26c71bfd ("ASoC: soc-component: merge snd_soc_component_read() and snd_soc_component_read32()")
Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200810134631.19742-1-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Fri, 7 Aug 2020 16:10:17 +0000 (21:40 +0530)]
ASoC: amd: Replacing component->name with codec_dai->name.
Replacing string compare with "codec_dai->name" instead of comparing with
"codec_dai->component->name" in hw_params because,
Here the component name for codec RT1015 is "i2c-
10EC5682:00"
and will never be "rt1015-aif1" as it is codec-dai->name.
So, strcmp() always compares and fails to set the
sysclk,pll,bratio for expected codec-dai="rt1015-aif1".
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200807161046.17932-1-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Mon, 3 Aug 2020 15:25:49 +0000 (16:25 +0100)]
Merge series "ASoC: tegra: Fix compile warning with CONFIG_PM=n" from Takashi Iwai <tiwai@suse.de>:
Hi,
this is a trivial patch set to add the missing __maybe_unused for
covering the compile warnings with CONFIG_PM=n.
Takashi
===
Takashi Iwai (5):
ASoC: tegra: tegra186_dspk: Fix compile warning with CONFIG_PM=n
ASoC: tegra: tegra210_admaif: Fix compile warning with CONFIG_PM=n
ASoC: tegra: tegra210_ahub: Fix compile warning with CONFIG_PM=n
ASoC: tegra: tegra210_dmic: Fix compile warning with CONFIG_PM=n
ASoC: tegra: tegra210_i2s: Fix compile warning with CONFIG_PM=n
sound/soc/tegra/tegra186_dspk.c | 4 ++--
sound/soc/tegra/tegra210_admaif.c | 4 ++--
sound/soc/tegra/tegra210_ahub.c | 4 ++--
sound/soc/tegra/tegra210_dmic.c | 4 ++--
sound/soc/tegra/tegra210_i2s.c | 4 ++--
5 files changed, 10 insertions(+), 10 deletions(-)
--
2.16.4
Takashi Iwai [Mon, 3 Aug 2020 14:46:30 +0000 (16:46 +0200)]
ASoC: fsl: Fix unused variable warning
The variable rtd was left unused in psc_dma_free(), even unnoticed
during conversion to a new style:
sound/soc/fsl/mpc5200_dma.c:342:30: warning: unused variable 'rtd' [-Wunused-variable]
Drop the superfluous one.
Fixes:
6d1048bc1152 ("ASoC: fsl: mpc5200_dma: remove snd_pcm_ops")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803144630.9615-1-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 3 Aug 2020 14:18:50 +0000 (16:18 +0200)]
ASoC: tegra: tegra210_i2s: Fix compile warning with CONFIG_PM=n
Fix trivial compile warnings wrt unused functions by adding
__maybe_unused prefix:
sound/soc/tegra/tegra210_i2s.c:167:12: warning: 'tegra210_i2s_runtime_suspend' defined but not used [-Wunused-function]
sound/soc/tegra/tegra210_i2s.c:179:12: warning: 'tegra210_i2s_runtime_resume' defined but not used [-Wunused-function]
Fixes:
c0bfa98349d1 ("ASoC: tegra: Add Tegra210 based I2S driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803141850.23713-6-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 3 Aug 2020 14:18:49 +0000 (16:18 +0200)]
ASoC: tegra: tegra210_dmic: Fix compile warning with CONFIG_PM=n
Fix trivial compile warnings wrt unused functions by adding
__maybe_unused prefix:
sound/soc/tegra/tegra210_dmic.c:43:12: warning: 'tegra210_dmic_runtime_suspend' defined but not used [-Wunused-function]
sound/soc/tegra/tegra210_dmic.c:55:12: warning: 'tegra210_dmic_runtime_resume' defined but not used [-Wunused-function]
Fixes:
8c8ff982e9e2 ("ASoC: tegra: Add Tegra210 based DMIC driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803141850.23713-5-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 3 Aug 2020 14:18:48 +0000 (16:18 +0200)]
ASoC: tegra: tegra210_ahub: Fix compile warning with CONFIG_PM=n
Fix trivial compile warnings wrt unused functions by adding
__maybe_unused prefix:
sound/soc/tegra/tegra210_ahub.c:567:12: warning: 'tegra_ahub_runtime_suspend' defined but not used [-Wunused-function]
sound/soc/tegra/tegra210_ahub.c:579:12: warning: 'tegra_ahub_runtime_resume' defined but not used [-Wunused-function]
Fixes:
16e1bcc2caf4 ("ASoC: tegra: Add Tegra210 based AHUB driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803141850.23713-4-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 3 Aug 2020 14:18:47 +0000 (16:18 +0200)]
ASoC: tegra: tegra210_admaif: Fix compile warning with CONFIG_PM=n
Fix trivial compile warnings wrt unused functions by adding
__maybe_unused prefix:
sound/soc/tegra/tegra210_admaif.c:232:12: warning: 'tegra_admaif_runtime_resume' defined but not used [-Wunused-function]
sound/soc/tegra/tegra210_ahub.c:567:12: warning: 'tegra_ahub_runtime_suspend' defined but not used [-Wunused-function]
Fixes:
f74028e159bb ("ASoC: tegra: Add Tegra210 based ADMAIF driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803141850.23713-3-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Mon, 3 Aug 2020 14:18:46 +0000 (16:18 +0200)]
ASoC: tegra: tegra186_dspk: Fix compile warning with CONFIG_PM=n
Fix trivial compile warnings wrt unused functions by adding
__maybe_unused prefix:
sound/soc/tegra/tegra186_dspk.c:74:12: warning: 'tegra186_dspk_runtime_suspend' defined but not used [-Wunused-function]
sound/soc/tegra/tegra186_dspk.c:86:12: warning: 'tegra186_dspk_runtime_resume' defined but not used [-Wunused-function]
Fixes:
327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200803141850.23713-2-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Hui Wang [Thu, 30 Jul 2020 12:31:38 +0000 (20:31 +0800)]
ASoC: amd: renoir: restore two more registers during resume
Recently we found an issue about the suspend and resume. If dmic is
recording the sound, and we run suspend and resume, after the resume,
the dmic can't work well anymore. we need to close the app and reopen
the app, then the dmic could record the sound again.
For example, we run "arecord -D hw:CARD=acp,DEV=0 -f S32_LE -c 2
-r 48000 test.wav", then suspend and resume, after the system resume
back, we speak to the dmic. then stop the arecord, use aplay to play
the test.wav, we could hear the sound recorded after resume is weird,
it is not what we speak to the dmic.
I found two registers are set in the dai_hw_params(), if the two
registers are set during the resume, this issue could be fixed.
Move the code of the dai_hw_params() into the pdm_dai_trigger(), then
these two registers will be set during resume since pdm_dai_trigger()
will be called during resume. And delete the empty function
dai_hw_params().
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200730123138.5659-1-hui.wang@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fabio Estevam [Mon, 3 Aug 2020 11:52:33 +0000 (08:52 -0300)]
ASoC: wm8962: Do not remove ADDITIONAL_CONTROL_4 from readable register list
Removing ADDITIONAL_CONTROL_4 from the list of readable registers cause
audio distortion.
This change was sent as a comment below the --- line when submitting
commit
658bb297e393 ("ASoC: wm8962: Do not access WM8962_GPIO_BASE"), so
it was not supposed to get merged.
Keep WM8962_ADDITIONAL_CONTROL_4 inside wm8962_readable_register() to
fix the regression.
Fixes:
658bb297e393 ("ASoC: wm8962: Do not access WM8962_GPIO_BASE")
Reported-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20200803115233.19034-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Mon, 3 Aug 2020 02:13:31 +0000 (10:13 +0800)]
ASoC: fsl-asoc-card: Remove fsl_asoc_card_set_bias_level function
With this case:
aplay -Dhw:x 16khz.wav 24khz.wav
There is sound distortion for 24khz.wav. The reason is that setting
PLL of WM8962 with set_bias_level function, the bias level is not
changed when 24khz.wav is played, then the PLL won't be reset, the
clock is not correct, so distortion happens.
The resolution of this issue is to remove fsl_asoc_card_set_bias_level.
Move PLL configuration to hw_params and hw_free.
After removing fsl_asoc_card_set_bias_level, also test WM8960 case,
it can work.
Fixes:
708b4351f08c ("ASoC: fsl: Add Freescale Generic ASoC Sound Card with ASRC support")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1596420811-16690-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Fri, 31 Jul 2020 18:36:00 +0000 (19:36 +0100)]
Merge series "ASoC: core: Two step component registration" from Cezary Rojewski <cezary.rojewski@intel.com>:
Provide a mechanism for true two-step component registration. This
mimics device registration flow where initialization is the first step
while addition goes as second in line. Drivers may choose to modify
component's fields before registering component to ASoC subsystem via
snd_soc_add_component.
Patchset achieves status quo - behavior of snd_soc_register_component
remains unchanged.
Cezary Rojewski (3):
ASoC: core: Relocate and expose snd_soc_component_initialize
ASoC: core: Simplify snd_soc_component_initialize declaration
ASoC: core: Two step component registration
include/sound/soc-component.h | 3 --
include/sound/soc.h | 11 +++---
sound/soc/soc-component.c | 16 ---------
sound/soc/soc-core.c | 52 +++++++++++++++++----------
sound/soc/soc-generic-dmaengine-pcm.c | 14 +++++---
sound/soc/stm/stm32_adfsdm.c | 9 +++--
6 files changed, 55 insertions(+), 50 deletions(-)
--
2.17.1
Cezary Rojewski [Fri, 31 Jul 2020 14:41:46 +0000 (16:41 +0200)]
ASoC: core: Two step component registration
Modify snd_soc_add_component so it calls snd_soc_component_initialize
no longer and thus providing true two-step registration. Drivers may
choose to change component's fields before actually adding it to ASoC
subsystem.
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20200731144146.6678-4-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Cezary Rojewski [Fri, 31 Jul 2020 14:41:45 +0000 (16:41 +0200)]
ASoC: core: Simplify snd_soc_component_initialize declaration
Move 'name' field initialization responsibility back to
snd_soc_component_initialize to prepare snd_soc_add_component function
for being called separatelly as a second registration step.
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20200731144146.6678-3-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Cezary Rojewski [Fri, 31 Jul 2020 14:41:44 +0000 (16:41 +0200)]
ASoC: core: Relocate and expose snd_soc_component_initialize
To allow for two-step component registration, expose
snd_soc_component_initialize function and move it back to soc-core.c.
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20200731144146.6678-2-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Laurent Pinchart [Fri, 31 Jul 2020 15:24:32 +0000 (18:24 +0300)]
ASoC: sh: Replace 'select' DMADEVICES 'with depends on'
Enabling a whole subsystem from a single driver 'select' is frowned
upon and won't be accepted in new drivers, that need to use 'depends on'
instead. Existing selection of DMADEVICES will then cause circular
dependencies. Replace them with a dependency.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20200731152433.1297-3-laurent.pinchart@ideasonboard.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 30 Jul 2020 21:54:40 +0000 (22:54 +0100)]
Merge series "drop unnecessary list_empty" from Julia Lawall <Julia.Lawall@inria.fr>:
The various list iterators are able to handle an empty list.
The only effect of avoiding the loop is not initializing some
index variables.
Drop list_empty tests in cases where these variables are not
used.
The semantic patch that makes these changes is as follows:
(http://coccinelle.lip6.fr/)
<smpl>
@@
expression x,e;
iterator name list_for_each_entry;
statement S;
identifier i;
@@
-if (!(list_empty(x))) {
list_for_each_entry(i,x,...) S
- }
... when != i
? i = e
@@
expression x,e;
iterator name list_for_each_entry_safe;
statement S;
identifier i,j;
@@
-if (!(list_empty(x))) {
list_for_each_entry_safe(i,j,x,...) S
- }
... when != i
when != j
(
i = e;
|
? j = e;
)
@@
expression x,e;
iterator name list_for_each;
statement S;
identifier i;
@@
-if (!(list_empty(x))) {
list_for_each(i,x) S
- }
... when != i
? i = e
@@
expression x,e;
iterator name list_for_each_safe;
statement S;
identifier i,j;
@@
-if (!(list_empty(x))) {
list_for_each_safe(i,j,x) S
- }
... when != i
when != j
(
i = e;
|
? j = e;
)
// -------------------
@@
expression x,e;
statement S;
identifier i;
@@
-if (!(list_empty(x)))
list_for_each_entry(i,x,...) S
... when != i
? i = e
@@
expression x,e;
statement S;
identifier i,j;
@@
-if (!(list_empty(x)))
list_for_each_entry_safe(i,j,x,...) S
... when != i
when != j
(
i = e;
|
? j = e;
)
@@
expression x,e;
statement S;
identifier i;
@@
-if (!(list_empty(x)))
list_for_each(i,x) S
... when != i
? i = e
@@
expression x,e;
statement S;
identifier i,j;
@@
-if (!(list_empty(x)))
list_for_each_safe(i,j,x) S
... when != i
when != j
(
i = e;
|
? j = e;
)
</smpl>
---
drivers/media/pci/saa7134/saa7134-core.c | 14 ++---
drivers/media/usb/cx231xx/cx231xx-core.c | 16 ++----
drivers/media/usb/tm6000/tm6000-core.c | 24 +++-------
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c | 13 ++---
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | 5 --
drivers/net/ethernet/sfc/ptp.c | 20 +++-----
drivers/net/wireless/ath/dfs_pattern_detector.c | 15 ++----
sound/soc/intel/atom/sst/sst_loader.c | 10 +---
sound/soc/intel/skylake/skl-pcm.c | 8 +--
sound/soc/intel/skylake/skl-topology.c | 5 --
10 files changed, 53 insertions(+), 77 deletions(-)
Alper Nebi Yasak [Tue, 21 Jul 2020 18:27:10 +0000 (21:27 +0300)]
ASoC: rk3399_gru_sound: Add DAPM pins, kcontrols for jack detection
PulseAudio (and perhaps other userspace utilities) can not detect any
jack for rk3399_gru_sound as the driver doesn't expose related Jack
kcontrols.
This patch adds two DAPM pins to the headset jack, where the
snd_soc_card_jack_new() call automatically creates "Headphones Jack" and
"Headset Mic Jack" kcontrols from them.
With an appropriate ALSA UCM config specifying JackControl fields for
the "Headphones" and "Headset" (mic) devices, PulseAudio can detect
plug/unplug events for both of them after this patch.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Link: https://lore.kernel.org/r/20200721182709.6895-1-alpernebiyasak@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fabio Estevam [Fri, 17 Jul 2020 13:59:59 +0000 (10:59 -0300)]
ASoC: wm8962: Do not access WM8962_GPIO_BASE
According to the WM8962 datasheet, there is no register at address 0x200.
WM8962_GPIO_BASE is just a base address for the GPIO registers and not a
real register, so remove it from wm8962_readable_register().
Also, Register 515 (WM8962_GPIO_BASE + 3) does not exist, so skip
its access.
This fixes the following errors:
wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200717135959.19212-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Julia Lawall [Sun, 26 Jul 2020 08:25:33 +0000 (10:25 +0200)]
ASoC: SOF: imx: use resource_size
Use resource_size rather than a verbose computation on
the end and start fields.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
<smpl>
@@ struct resource ptr; @@
- (ptr.end - ptr.start + 1)
+ resource_size(&ptr)
</smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/1595751933-4952-1-git-send-email-Julia.Lawall@inria.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
Julia Lawall [Sun, 26 Jul 2020 10:58:26 +0000 (12:58 +0200)]
ASoC: Intel: drop unnecessary list_empty
list_for_each_entry_safe is able to handle an empty list.
The only effect of avoiding the loop is not initializing the
index variable.
Drop list_empty tests in cases where these variables are not
used.
Note that list_for_each_entry_safe is defined in terms of
list_first_entry, which indicates that it should not be used on an
empty list. But in list_for_each_entry_safe, the element obtained by
list_first_entry is not really accessed, only the address of its
list_head field is compared to the address of the list head, so the
list_first_entry is safe.
The semantic patch that makes this change is as follows (with another
variant for the no brace case): (http://coccinelle.lip6.fr/)
<smpl>
@@
expression x,e;
iterator name list_for_each_entry_safe;
statement S;
identifier i,j;
@@
-if (!(list_empty(x))) {
list_for_each_entry_safe(i,j,x,...) S
- }
... when != i
when != j
(
i = e;
|
? j = e;
)
</smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/1595761112-11003-2-git-send-email-Julia.Lawall@inria.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 30 Jul 2020 20:00:38 +0000 (21:00 +0100)]
Merge series "ASoC: Intel: KMB: TDM Enablement patches" from Michael Sit Wei Hong <michael.wei.hong.sit@intel.com>:
This patch series is to enable multiple features on the Keembay Platform
Michael Sit Wei Hong (4):
ASoC: Intel: KMB: Add 8kHz audio support
ASoC: Intel: KMB: Rework disable channel function
ASoC: Intel: KMB: Enable TDM audio capture
dt-bindings: sound: intel,keembay-i2s: Add channel-max property
.../bindings/sound/intel,keembay-i2s.yaml | 8 +
sound/soc/intel/keembay/kmb_platform.c | 137 +++++++++++++-----
sound/soc/intel/keembay/kmb_platform.h | 1 +
3 files changed, 112 insertions(+), 34 deletions(-)
--
2.17.1
Mark Brown [Thu, 30 Jul 2020 20:00:36 +0000 (21:00 +0100)]
Merge series "ASoC: meson: tdm fixes" from Jerome Brunet <jbrunet@baylibre.com>:
This patcheset is collection of fixes for the TDM input and output the
axg audio architecture. Its fixes:
- slave mode format setting
- g12 and sm1 skew offset
- tdm clock inversion
- standard daifmt props names which don't require a specific prefix
Jerome Brunet (4):
ASoC: meson: axg-tdm-interface: fix link fmt setup
ASoC: meson: axg-tdmin: fix g12a skew
ASoC: meson: axg-tdm-formatters: fix sclk inversion
ASoC: meson: cards: remove DT_PREFIX for standard daifmt properties
sound/soc/meson/axg-tdm-formatter.c | 11 ++++++-----
sound/soc/meson/axg-tdm-formatter.h | 1 -
sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++---------
sound/soc/meson/axg-tdmin.c | 16 +++++++++++++++-
sound/soc/meson/axg-tdmout.c | 3 ---
sound/soc/meson/meson-card-utils.c | 2 +-
6 files changed, 39 insertions(+), 20 deletions(-)
--
2.25.4
Kuninori Morimoto [Thu, 30 Jul 2020 04:28:37 +0000 (13:28 +0900)]
ASoC: dt-bindings: ak4613: switch to yaml base Documentation
This patch switches from .txt base to .yaml base Document.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/87mu4cxlo2.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87o8pf3923.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/873659bpbk.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Tue, 28 Jul 2020 16:02:55 +0000 (21:32 +0530)]
ASoC: amd: Added hw_params support for ALC1015
Adding rt1015 hw_params which set Bit-clock ratio,
PLL and appropriate sys clk specific with RTK1015.
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200728160255.31020-6-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Tue, 28 Jul 2020 16:02:54 +0000 (21:32 +0530)]
ASoC: amd: Adding DAI LINK for rt1015 codec
DAI link support for RTK 1015 and providing the codec details
depending on the snd_soc_card selected by ACPI ID.
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200728160255.31020-5-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Tue, 28 Jul 2020 16:02:53 +0000 (21:32 +0530)]
ASoC: amd: Adding support for ALC1015 codec in machine driver
Adding support for ALC1015 RTK codec in machine driver.
Passing specific card structure based on its ACPI ID.
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200728160255.31020-4-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Tue, 28 Jul 2020 16:02:52 +0000 (21:32 +0530)]
ASoC: amd: Passing card structure based on codec
Passing specific snd_soc_card structure depending on the ACPI ID.
In future we can add other IDs in the ACPI table and pass the structure.
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200728160255.31020-3-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ravulapati Vishnu vardhan rao [Tue, 28 Jul 2020 16:02:51 +0000 (21:32 +0530)]
ASoC: amd: Renaming snd-soc-card structure and fields
As in future our machine driver supports multiple codecs
So changing naming convention of snd_soc_card struct and its fields.
Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Link: https://lore.kernel.org/r/20200728160255.31020-2-Vishnuvardhanrao.Ravulapati@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Simon Shields [Tue, 28 Jul 2020 13:11:10 +0000 (15:11 +0200)]
ASoC: samsung: Add sound support for Midas boards
This patch adds support for voice and BT calls, along with standard
audio output via the speaker, earpiece, headphone jack, HDMI, and
any accessories compatible with Midas boards. This patch also supports
headphone/headset detection and headsets with inline buttons.
[m.szyprowski: adaptation to v5.1+ kernels (DAI links initialization)]
[s.nawrocki: removal of the clk API calls for CODEC MCLK, the jack data
structure moved to struct midas_priv, coding style and typo fixes,
conversion to new cpu/codec/dai-node binding]
Signed-off-by: Simon Shields <simon@lineageos.org>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200728131111.14334-2-s.nawrocki@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Sylwester Nawrocki [Tue, 28 Jul 2020 13:11:09 +0000 (15:11 +0200)]
ASoC: samsung: Document DT bindings for Midas sound subsystem
This patch adds documentation of DT biding for the Midas sound complex.
Partially based on the *txt version by Simon Shields <simon@lineageos.org>.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200728131111.14334-1-s.nawrocki@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Thu, 30 Jul 2020 14:24:19 +0000 (09:24 -0500)]
ASoC: tlv320adcx140: Move device reset to before programming
Reset the device before programming the registers or all programming
will be lost as the device resets registers to default settings.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200730142419.28205-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Thu, 30 Jul 2020 14:24:18 +0000 (09:24 -0500)]
ASoC: tlv320adcx140: Fix GPO register start address
The header was updated to align with the data sheet to start the GPO_CFG
at GPO_CFG0. The code was not updated to the change and therefore the
GPO_CFG0 register was not written to.
Fixes:
6617cff6a05e ("ASoC: tlv320adcx140: Add GPO configuration and drive output config")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200730142419.28205-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Michael Sit Wei Hong [Thu, 30 Jul 2020 05:53:17 +0000 (13:53 +0800)]
ASoC: Intel: KMB: Rework disable channel function
All channels are enabled at boot up, this patch ensures that all
channels are disabled at boot and whenever the function is called.
Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com>
Reviewed-by: Sia Jee Heng <jee.heng.sia@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200730055319.1522-3-michael.wei.hong.sit@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Michael Sit Wei Hong [Thu, 30 Jul 2020 05:53:16 +0000 (13:53 +0800)]
ASoC: Intel: KMB: Add 8kHz audio support
Enable 8kHz audio support for Intel Keem Bay platform.
Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com>
Reviewed-by: Sia Jee Heng <jee.heng.sia@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200730055319.1522-2-michael.wei.hong.sit@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jerome Brunet [Wed, 29 Jul 2020 15:44:56 +0000 (17:44 +0200)]
ASoC: meson: cards: remove DT_PREFIX for standard daifmt properties
Standard dai format property don't need the "amlogic," prefix.
There nothing amlogic specific about them. Just remove it.
Fixes:
435857e015dc ("ASoC: meson: align axg card driver with DT bindings documentation")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200729154456.1983396-5-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jerome Brunet [Wed, 29 Jul 2020 15:44:55 +0000 (17:44 +0200)]
ASoC: meson: axg-tdm-formatters: fix sclk inversion
After carefully checking, it appears that both tdmout and tdmin require the
rising edge of the sclk they get to be synchronized with the frame sync
event (which should be a rising edge of lrclk).
TDMIN was improperly set before this patch. Remove the sclk_invert quirk
which is no longer needed and fix the sclk phase.
Fixes:
1a11d88f499c ("ASoC: meson: add tdm formatter base driver")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200729154456.1983396-4-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jerome Brunet [Wed, 29 Jul 2020 15:44:54 +0000 (17:44 +0200)]
ASoC: meson: axg-tdmin: fix g12a skew
After carefully checking the result provided by the TDMIN on the g12a and
sm1 SoC families, the TDMIN skew offset appears to be 3 instead of 2 on the
axg.
Fixes:
f01bc67f58fd ("ASoC: meson: axg-tdm-formatter: rework quirks settings")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200729154456.1983396-3-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jerome Brunet [Wed, 29 Jul 2020 15:44:53 +0000 (17:44 +0200)]
ASoC: meson: axg-tdm-interface: fix link fmt setup
The .set_fmt() callback of the axg tdm interface incorrectly
test the content of SND_SOC_DAIFMT_MASTER_MASK as if it was a
bitfield, which it is not.
Implement the test correctly.
Fixes:
d60e4f1e4be5 ("ASoC: meson: add tdm interface driver")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200729154456.1983396-2-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 28 Jul 2020 16:08:33 +0000 (11:08 -0500)]
ASoC: tlv320adcx140: Add GPO configuration and drive output config
Add General Purpose Output (GPO) configuration and driver output
configuration. The GPOs can be configured as a GPO, IRQ, SDOUT or a
PDMCLK output. In addition the output drive can be configured with
various configurations.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200728160833.24130-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 28 Jul 2020 16:08:32 +0000 (11:08 -0500)]
dt-bindings: tlv320adcx140: Add GPO config and drive config
Add properties for configuring the General Purpose Outputs (GPO). The
GPOs. There are 2 settings for each GPO, configuration and the output drive
type.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200728160833.24130-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 28 Jul 2020 16:43:39 +0000 (11:43 -0500)]
ASoC: tlv320adcx140: Fix various style errors and warnings
Fix white space issues and remove else case where it was not needed.
Convert "static const char *" to "static const char * const"
Fixes:
689c7655b50 ("ASoC: tlv320adcx140: Add the tlv320adcx140 codec driver family")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200728164339.16841-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Tue, 28 Jul 2020 16:34:35 +0000 (17:34 +0100)]
ASoC: ak4613: Undo conversion to YAML bindings
Revert
5b235b5522bf38 ("ASoC: dt-bindings: ak4613: switch to yaml base
Documentation") for the time being since it depends on other conversions.
Reported-by: Rob Herring <robh+dt@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Seung-Woo Kim [Fri, 24 Jul 2020 04:19:31 +0000 (13:19 +0900)]
ASoC: bcm2835: Silence clk_get() error on -EPROBE_DEFER
Silence clk_get() error with dev_dbg() on -EPROBE_DEFER.
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Link: https://lore.kernel.org/r/1595564371-13692-1-git-send-email-sw0312.kim@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Tue, 28 Jul 2020 15:43:36 +0000 (16:43 +0100)]
Merge series "SOF Fixes for S0iX suspend/resume sequence" from Ranjani Sridharan <ranjani.sridharan@linux.intel.com>:
This set of patches is required for facilitating system S0ix
entry when the DSP is in D0I3. This first patch adds the missing
CORB/RIRB DMA stop and restart to the suspend/resume sequence along
with powering up/down the links. The second patch ensures that the
FW traces are disabled when the system enters S0ix with the DSP in D0I3.
Marcin Rajwa (2):
ASoC: SOF: Intel: fix the suspend procedure to support s0ix entry
ASoC: SOF: Intel: disable traces when switching to S0Ix D0I3
sound/soc/sof/intel/hda-dsp.c | 48 ++++++++++++++++++++++++++++++++---
1 file changed, 44 insertions(+), 4 deletions(-)
--
2.25.1
Dan Murphy [Thu, 23 Jul 2020 16:08:37 +0000 (11:08 -0500)]
ASoC: tas2562: Convert the tas2562 binding to yaml
Convert the TAS2562 text file to yaml format.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200723160838.9738-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Thu, 23 Jul 2020 16:08:38 +0000 (11:08 -0500)]
ASoC: tas2562: Update shutdown GPIO property
Update the shutdown GPIO property to be shutdown from shut-down.
Fixes:
c173dba44c2d2 ("ASoC: tas2562: Introduce the TAS2562 amplifier")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200723160838.9738-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Katsuhiro Suzuki [Fri, 24 Jul 2020 15:59:33 +0000 (00:59 +0900)]
ASoC: convert Everest ES8316 binding to yaml
This patch converts Everest Semiconductor ES8316 low power audio
CODEC binding to DT schema.
Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200724155933.1040501-1-katsuhiro@katsuster.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Charles Keepax [Tue, 28 Jul 2020 14:41:41 +0000 (15:41 +0100)]
ASoC: madera: Add channel numbers to AIFs
Set the channel number on each AIF widget to allow unused channels not
to be powered up across AIFs.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200728144141.16104-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Marcin Rajwa [Mon, 27 Jul 2020 18:36:13 +0000 (11:36 -0700)]
ASoC: SOF: Intel: disable traces when switching to S0Ix D0I3
We should always disable DMA trace on S0Ix. When staying at S0-D0I3,
we should enable DMA trace while both DMA Trace debug is enabled and
hda_enable_trace_D0I3_S0 is set. This commit corrects the existed
logic errors about that.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200727183613.1419005-3-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Marcin Rajwa [Mon, 27 Jul 2020 18:36:12 +0000 (11:36 -0700)]
ASoC: SOF: Intel: fix the suspend procedure to support s0ix entry
This patch fixes the suspend & resume procedure to allow entry into the
low power states with some streams being active as a wake source - wake on
voice is a perfect example. The current implementation does not stop
the CORB/RIRB DMA and does not power down the HDA links. With firmware's
help, the platform has been able to still enter s0ix state on older
platforms, but the sequence is still incorrect, and the additional
driver actions are needed to ensure correct s0ix behaviour.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200727183613.1419005-2-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Mon, 27 Jul 2020 13:21:10 +0000 (14:21 +0100)]
Merge series "ASoC: intel: use asoc_substream_to_rtd()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
I have posted "ASoC: add asoc_substream_to_rtd() macro"
patch-set to ALSA SoC ML (= see Link), and then Pierre-Louis
wanted that Intel patch was separated for boards.
The patches which are not for Intel were already accepted.
This is for Intel, and Intel boards.
Link: https://lore.kernel.org/r/87y2nf0yw2.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/877duz0ysw.wl-kuninori.morimoto.gx@renesas.com
Kuninori Morimoto (2):
ASoC: intel/boards: use asoc_substream_to_rtd()
ASoC: intel: use asoc_substream_to_rtd()
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 6 +++---
sound/soc/intel/baytrail/sst-baytrail-pcm.c | 16 ++++++++--------
sound/soc/intel/boards/bdw-rt5650.c | 2 +-
sound/soc/intel/boards/bdw-rt5677.c | 4 ++--
sound/soc/intel/boards/broadwell.c | 2 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/byt-rt5640.c | 2 +-
sound/soc/intel/boards/bytcht_da7213.c | 4 ++--
sound/soc/intel/boards/bytcr_rt5640.c | 2 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 4 ++--
sound/soc/intel/boards/ehl_rt5660.c | 2 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 2 +-
sound/soc/intel/boards/haswell.c | 2 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 8 ++++----
sound/soc/intel/boards/kbl_rt5660.c | 2 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 4 ++--
.../intel/boards/kbl_rt5663_rt5514_max98927.c | 4 ++--
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 2 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 2 +-
sound/soc/intel/boards/skl_rt286.c | 2 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 2 +-
sound/soc/intel/boards/sof_maxim_common.c | 4 ++--
sound/soc/intel/boards/sof_pcm512x.c | 4 ++--
sound/soc/intel/boards/sof_rt5682.c | 4 ++--
sound/soc/intel/boards/sof_sdw_rt1308.c | 2 +-
sound/soc/intel/boards/sof_wm8804.c | 2 +-
sound/soc/intel/haswell/sst-haswell-pcm.c | 12 ++++++------
sound/soc/intel/keembay/kmb_platform.c | 2 +-
sound/soc/intel/skylake/skl-pcm.c | 8 ++++----
34 files changed, 62 insertions(+), 62 deletions(-)
--
2.25.1
Stephan Gerhold [Mon, 27 Jul 2020 08:25:02 +0000 (10:25 +0200)]
ASoC: dt-bindings: q6asm: Add Q6ASM_DAI_{TX_RX, TX, RX} defines
Right now the direction of a DAI has to be specified as a literal
number in the device tree, e.g.:
dai@0 {
reg = <0>;
direction = <2>;
};
but this does not make it immediately clear that this is a
playback/RX-only DAI.
Actually, q6asm-dai.c has useful defines for this. Move them to the
dt-bindings header to allow using them in the dts(i) files.
The example above then becomes:
dai@0 {
reg = <0>;
direction = <Q6ASM_DAI_RX>;
};
which is immediately recognizable as playback/RX-only DAI.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200727082502.2341-1-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Akshu Agrawal [Fri, 24 Jul 2020 19:55:52 +0000 (01:25 +0530)]
ASoC: AMD: Restore PME_EN state at Power On
PME_EN state needs to restored to the value set by fmw.
For the devices which are not using I2S wake event which gets
enabled by PME_EN bit, keeping PME_EN enabled burns considerable amount
of power as it blocks low power state.
For the devices using I2S wake event, PME_EN gets enabled in fmw and the
state should be maintained after ACP Power On.
Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Link: https://lore.kernel.org/r/20200724195600.11798-1-akshu.agrawal@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 27 Jul 2020 01:08:42 +0000 (10:08 +0900)]
ASoC: intel: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/87tuxtydcz.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 27 Jul 2020 01:08:29 +0000 (10:08 +0900)]
ASoC: intel/boards: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/87v9i9yddc.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Tzung-Bi Shih [Fri, 24 Jul 2020 07:07:31 +0000 (15:07 +0800)]
ASoC: dapm: don't call pm_runtime_* on card device
runtime_usage of sound card has been observed to grow without bound.
For example:
$ cat /sys/devices/platform/sound/power/runtime_usage
46
$ sox -n -t s16 -r 48000 -c 2 - synth 1 sine 440 vol 0.1 | \
aplay -q -D hw:0,0 -f S16_LE -r 48000 -c 2
$ cat /sys/devices/platform/sound/power/runtime_usage
52
Commit
4e872a46823c ("ASoC: dapm: Don't force card bias level to be
updated") stops to force update bias_level on card. If card doesn't
provide set_bias_level callback, the snd_soc_dapm_set_bias_level()
is equivalent to NOP for card device.
As a result, dapm_pre_sequence_async() doesn't change the bias_level of
card device correctly. Thus, pm_runtime_get_sync() would be called in
dapm_pre_sequence_async() without symmetric pm_runtime_put() in
dapm_post_sequence_async().
Don't call pm_runtime_* on card device.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200724070731.451377-1-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Fri, 24 Jul 2020 14:22:35 +0000 (15:22 +0100)]
Merge series "ASoC: qcom: Use qcom_snd_parse_of() for apq8016_sbc" from Stephan Gerhold <stephan@gerhold.net>:
At the moment we have two separate functions to parse the sound card
properties from the device tree: qcom_snd_parse_of() for DPCM and
apq8016_sbc_parse_of() without DPCM. These functions are almost identical
except for a few minor differences.
This patch set extends qcom_snd_parse_of() to handle links without DPCM,
so that we can use one common function for all (qcom) machine drivers.
Stephan Gerhold (7):
ASoC: qcom: Use devm for resource management
ASoC: qcom: common: Use snd_soc_dai_link_set_capabilities()
ASoC: q6afe: Remove unused q6afe_is_rx_port() function
ASoC: qcom: common: Support parsing links without DPCM
ASoC: qcom: common: Parse properties with "qcom," prefix
ASoC: qcom: apq8016_sbc: Use qcom_snd_parse_of()
ASoC: qcom: common: Avoid printing errors for -EPROBE_DEFER
sound/soc/qcom/Kconfig | 1 +
sound/soc/qcom/apq8016_sbc.c | 120 ++++-------------------------------
sound/soc/qcom/apq8096.c | 28 +-------
sound/soc/qcom/common.c | 58 ++++++++++-------
sound/soc/qcom/qdsp6/q6afe.c | 8 ---
sound/soc/qcom/qdsp6/q6afe.h | 1 -
sound/soc/qcom/sdm845.c | 40 ++----------
7 files changed, 59 insertions(+), 197 deletions(-)
--
2.27.0
Steve Lee [Fri, 24 Jul 2020 08:56:44 +0000 (17:56 +0900)]
ASoC: max98390: update dsm param bin max size
MAX98390_DSM_PARAM_MAX_SIZE is changed to support extended
register update.
Signed-off-by: Steve Lee <steves.lee@maximintegrated.com>
Link: https://lore.kernel.org/r/20200724085644.9837-1-steves.lee@maximintegrated.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Steve Lee [Fri, 24 Jul 2020 06:01:49 +0000 (15:01 +0900)]
ASoC: max98390: Update dsm init sequence and condition.
Modify dsm_init sequence and dsm param bin check condition.
- Move dsm_init() to after amp init setting to
make sure dsm init is last setting.
- dsm param bin check condition changed for extended register setting.
Signed-off-by: Steve Lee <steves.lee@maximintegrated.com>
Link: https://lore.kernel.org/r/20200724060149.19261-1-steves.lee@maximintegrated.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jerome Brunet [Thu, 23 Jul 2020 14:20:20 +0000 (16:20 +0200)]
ASoC: soc-component: don't report of_xlate_dai_name failures
With commit
e2329eeba45f ("ASoC: soc-component: add soc_component_err()")
every error different for ENOTSUPP or EPROBE_DEFER will log an error.
However, as explained in snd_soc_get_dai_name(), this callback may error
to indicate that the DAI is not matched by the component tested. If the
device provides other components, those may still match. Logging an error
in this case is misleading.
Don't use soc_component_ret() in snd_soc_component_of_xlate_dai_name()
to avoid spamming the log.
Fixes:
e2329eeba45f ("ASoC: soc-component: add soc_component_err()")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/20200723142020.1338740-1-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:39:04 +0000 (20:39 +0200)]
ASoC: qcom: common: Avoid printing errors for -EPROBE_DEFER
qcom_snd_parse_of() tends to produce lots of error messages during bootup:
MultiMedia1: error getting cpu dai name
This happens because the DAIs are not probed until the ADSP remoteproc
has booted, which takes a while. Until it is ready, snd_soc_of_get_dai_name()
returns -EDEFER_PROBE to retry probing later. This is perfectly normal,
so cleanup the kernel log a bit by not printing in case of -EPROBE_DEFER.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-8-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:39:03 +0000 (20:39 +0200)]
ASoC: qcom: apq8016_sbc: Use qcom_snd_parse_of()
Now that we have updated qcom_snd_parse_of() to handle the device
tree bindings used for apq8016_sbc, update the apq8016_sbc driver
to use the common function and remove the duplicated code.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-7-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:39:02 +0000 (20:39 +0200)]
ASoC: qcom: common: Parse properties with "qcom," prefix
The apq8016_sbc device tree binding uses a "qcom," vendor prefix
for all device tree properties, while qcom_snd_parse_of() uses the
same properties without a prefix.
In the future it would be nice to make this consistent, however,
for backwards compatibility we need to parse both names to allow
apq8016_sbc to use the common qcom_snd_parse_of() function.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-6-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:39:01 +0000 (20:39 +0200)]
ASoC: qcom: common: Support parsing links without DPCM
So far qcom_snd_parse_of() was only used to parse the device tree
for boards using the QDSP6 driver together with DPCM. apq8016_sbc
uses an almost identical version (apq8016_sbc_parse_of()) which
parses links without DPCM.
Given the similarity of the two functions it is useful to combine
these two. To allow using qcom_snd_parse_of() in apq8016_sbc we
need to support parsing links without DPCM as well.
This is pretty simple: A DPCM link in the device tree is defined using:
- DPCM frontend: "cpu"
- DPCM backend: "cpu", "platform" and "codec"
... while a link without DPCM has "cpu" and "codec" (but no "platform").
Add a few more if conditions to handle links without DPCM correctly.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-5-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:39:00 +0000 (20:39 +0200)]
ASoC: q6afe: Remove unused q6afe_is_rx_port() function
This reverts commit
4a95737440d ("ASoc: q6afe: add support to get
port direction"), since the function is not needed anymore.
q6afe-dai already exposes the possible directions for a DAI through
the DAI capabilities (playback/capture-only DAI). Now we use
snd_soc_dai_link_set_capabilities() to infer the information
directly from the DAI capabilities.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-4-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:38:59 +0000 (20:38 +0200)]
ASoC: qcom: common: Use snd_soc_dai_link_set_capabilities()
Commit
a2120089251f ("ASoC: qcom: common: set correct directions for dailinks")
introduced a call to q6afe_is_rx_port() to set the dpcm_playback/capture
parameters correctly. This is necessary because those parameters are now
validated to match the capabilities of the DAIs. [1]
The disadvantage of introducing the call to q6afe_is_rx_port() is that
it makes the qcom_snd_parse_of() helper dependent on the QDSP6 driver.
When the ADSP is bypassed (e.g. in apq8016-sbc) QDSP6 is not used.
There is a generic solution for this now: The correct direction for the links
is already defined by the DAI capabilities (e.g. rx ports only support playback).
Commit
25612477d20b ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
introduced the snd_soc_dai_link_set_capabilities() function that we can use
to set dpcm_playback/dpcm_capture according to the capabilities of the DAIs.
Use that for both FE/BE DAI links to avoid the dependency on the QDSP6 driver.
[1]: https://lore.kernel.org/alsa-devel/
20200616085409.GA110999@gerhold.net/
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-3-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Thu, 23 Jul 2020 18:38:58 +0000 (20:38 +0200)]
ASoC: qcom: Use devm for resource management
Simplify the machine drivers for newer SoCs a bit by using the
devm_* function calls that automatically release the resources
when the driver is removed or when probing fails.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200723183904.321040-2-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Steve Lee [Fri, 24 Jul 2020 06:00:58 +0000 (15:00 +0900)]
ASoC: max98390: Fix dac event dapm mixer.
Global EN register guide to off before AMP_EN register
when amp disable sequence.
- remove AMP_EN control before max98390_dac_event call
Signed-off-by: Steve Lee <steves.lee@maximintegrated.com>
Link: https://lore.kernel.org/r/20200724060058.19201-1-steves.lee@maximintegrated.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 23 Jul 2020 18:52:30 +0000 (19:52 +0100)]
Merge series "ASoC: add asoc_substream_to_rtd() macro" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
Many ASoC drivers are getting rtd from substream by
rtd = substream->private_data
OTOH, we have snd_pcm_substream_chip() macro for it.
#define snd_pcm_substream_chip(substream) ((substream)->private_data)
But, both are not understandable for reader.
This patch adds new asoc_substream_to_rtd() which is easy to understand.
These are not important, but for readable code.
Kuninori Morimoto (29):
ASoC: soc-xxx: add asoc_substream_to_rtd()
ASoC: ux500: use asoc_substream_to_rtd()
ASoC: ti: use asoc_substream_to_rtd()
ASoC: tegra: use asoc_substream_to_rtd()
ASoC: sunxi: use asoc_substream_to_rtd()
ASoC: stm: use asoc_substream_to_rtd()
ASoC: sof: use asoc_substream_to_rtd()
ASoC: sh: use asoc_substream_to_rtd()
ASoC: samsung: use asoc_substream_to_rtd()
ASoC: pxa: use asoc_substream_to_rtd()
ASoC: cirrus: use asoc_substream_to_rtd()
ASoC: rockchip: use asoc_substream_to_rtd()
ASoC: amd: use asoc_substream_to_rtd()
ASoC: fsl: use asoc_substream_to_rtd()
ASoC: mediatek: use asoc_substream_to_rtd()
ASoC: atmel: use asoc_substream_to_rtd()
ASoC: qcom: use asoc_substream_to_rtd()
ASoC: dwc: use asoc_substream_to_rtd()
ASoC: intel: use asoc_substream_to_rtd()
ASoC: meson: use asoc_substream_to_rtd()
ASoC: au1x: use asoc_substream_to_rtd()
ASoC: bcm: use asoc_substream_to_rtd()
ASoC: codecs: use asoc_substream_to_rtd()
ASoC: generic: use asoc_substream_to_rtd()
ASoC: sprd: use asoc_substream_to_rtd()
ASoC: kirkwood: use asoc_substream_to_rtd()
ASoC: xtensa: use asoc_substream_to_rtd()
ASoC: mxs: use asoc_substream_to_rtd()
ASoC: uniphier: use asoc_substream_to_rtd()
include/sound/soc.h | 2 +
sound/soc/amd/acp-da7219-max98357a.c | 12 ++--
sound/soc/amd/acp-pcm-dma.c | 2 +-
sound/soc/amd/acp-rt5645.c | 2 +-
sound/soc/amd/acp3x-rt5682-max9836.c | 8 +--
sound/soc/amd/raven/acp3x-i2s.c | 2 +-
sound/soc/amd/raven/acp3x-pcm-dma.c | 6 +-
sound/soc/atmel/atmel-classd.c | 8 +--
sound/soc/atmel/atmel-pcm-dma.c | 4 +-
sound/soc/atmel/atmel-pcm-pdc.c | 2 +-
sound/soc/atmel/atmel-pdmic.c | 10 +--
sound/soc/atmel/atmel_wm8904.c | 2 +-
sound/soc/au1x/db1200.c | 2 +-
sound/soc/au1x/dbdma2.c | 2 +-
sound/soc/au1x/dma.c | 2 +-
sound/soc/bcm/bcm63xx-pcm-whistler.c | 12 ++--
sound/soc/bcm/cygnus-pcm.c | 16 ++---
sound/soc/cirrus/edb93xx.c | 2 +-
sound/soc/cirrus/snappercl15.c | 2 +-
sound/soc/codecs/rt5677-spi.c | 4 +-
sound/soc/dwc/dwc-pcm.c | 2 +-
sound/soc/fsl/eukrea-tlv320.c | 2 +-
sound/soc/fsl/fsl-asoc-card.c | 2 +-
sound/soc/fsl/fsl_asrc_dma.c | 4 +-
sound/soc/fsl/fsl_dma.c | 2 +-
sound/soc/fsl/fsl_spdif.c | 10 +--
sound/soc/fsl/fsl_ssi.c | 8 +--
sound/soc/fsl/imx-audmix.c | 6 +-
sound/soc/fsl/imx-mc13783.c | 2 +-
sound/soc/fsl/mpc5200_dma.c | 8 +--
sound/soc/fsl/mpc5200_psc_i2s.c | 2 +-
sound/soc/fsl/mpc8610_hpcd.c | 2 +-
sound/soc/fsl/mx27vis-aic32x4.c | 2 +-
sound/soc/fsl/p1022_ds.c | 2 +-
sound/soc/fsl/p1022_rdk.c | 2 +-
sound/soc/fsl/wm1133-ev1.c | 2 +-
sound/soc/generic/simple-card-utils.c | 6 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 6 +-
sound/soc/intel/baytrail/sst-baytrail-pcm.c | 16 ++---
sound/soc/intel/boards/bdw-rt5650.c | 2 +-
sound/soc/intel/boards/bdw-rt5677.c | 4 +-
sound/soc/intel/boards/broadwell.c | 2 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/byt-rt5640.c | 2 +-
sound/soc/intel/boards/bytcht_da7213.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 2 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 4 +-
sound/soc/intel/boards/ehl_rt5660.c | 2 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 2 +-
sound/soc/intel/boards/haswell.c | 2 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 8 +--
sound/soc/intel/boards/kbl_rt5660.c | 2 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 4 +-
.../intel/boards/kbl_rt5663_rt5514_max98927.c | 4 +-
.../soc/intel/boards/skl_nau88l25_max98357a.c | 2 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 2 +-
sound/soc/intel/boards/skl_rt286.c | 2 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 2 +-
sound/soc/intel/boards/sof_maxim_common.c | 4 +-
sound/soc/intel/boards/sof_pcm512x.c | 4 +-
sound/soc/intel/boards/sof_rt5682.c | 4 +-
sound/soc/intel/boards/sof_sdw_rt1308.c | 2 +-
sound/soc/intel/boards/sof_wm8804.c | 2 +-
sound/soc/intel/haswell/sst-haswell-pcm.c | 12 ++--
sound/soc/intel/keembay/kmb_platform.c | 2 +-
sound/soc/intel/skylake/skl-pcm.c | 8 +--
sound/soc/kirkwood/armada-370-db.c | 2 +-
sound/soc/mediatek/common/mtk-afe-fe-dai.c | 12 ++--
.../mediatek/common/mtk-afe-platform-driver.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-cs42448.c | 2 +-
sound/soc/mediatek/mt2701/mt2701-wm8960.c | 2 +-
sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 4 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 2 +-
.../mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +-
.../mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +-
sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 4 +-
.../mediatek/mt8183/mt8183-da7219-max98357.c | 8 +--
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 12 ++--
sound/soc/meson/axg-card.c | 2 +-
sound/soc/meson/gx-card.c | 2 +-
sound/soc/meson/meson-card-utils.c | 2 +-
sound/soc/meson/meson-codec-glue.c | 2 +-
sound/soc/mxs/mxs-sgtl5000.c | 2 +-
sound/soc/pxa/brownstone.c | 2 +-
sound/soc/pxa/corgi.c | 4 +-
sound/soc/pxa/hx4700.c | 2 +-
sound/soc/pxa/imote2.c | 2 +-
sound/soc/pxa/magician.c | 6 +-
sound/soc/pxa/mmp-pcm.c | 2 +-
sound/soc/pxa/poodle.c | 4 +-
sound/soc/pxa/pxa2xx-i2s.c | 2 +-
sound/soc/pxa/spitz.c | 4 +-
sound/soc/pxa/tosa.c | 2 +-
sound/soc/pxa/z2.c | 2 +-
sound/soc/pxa/zylonite.c | 2 +-
sound/soc/qcom/apq8096.c | 2 +-
sound/soc/qcom/lpass-platform.c | 14 ++---
sound/soc/qcom/qdsp6/q6asm-dai.c | 6 +-
sound/soc/qcom/qdsp6/q6routing.c | 2 +-
sound/soc/qcom/sdm845.c | 14 ++---
sound/soc/qcom/storm.c | 2 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 2 +-
sound/soc/rockchip/rk3399_gru_sound.c | 8 +--
sound/soc/rockchip/rockchip_i2s.c | 2 +-
sound/soc/rockchip/rockchip_max98090.c | 2 +-
sound/soc/rockchip/rockchip_rt5645.c | 2 +-
sound/soc/samsung/aries_wm8994.c | 4 +-
sound/soc/samsung/arndale.c | 4 +-
sound/soc/samsung/h1940_uda1380.c | 2 +-
sound/soc/samsung/i2s.c | 2 +-
sound/soc/samsung/jive_wm8750.c | 2 +-
sound/soc/samsung/littlemill.c | 2 +-
sound/soc/samsung/neo1973_wm8753.c | 8 +--
sound/soc/samsung/odroid.c | 6 +-
sound/soc/samsung/pcm.c | 4 +-
sound/soc/samsung/rx1950_uda1380.c | 2 +-
sound/soc/samsung/s3c-i2s-v2.c | 2 +-
sound/soc/samsung/s3c24xx_simtec.c | 2 +-
sound/soc/samsung/s3c24xx_uda134x.c | 6 +-
sound/soc/samsung/smartq_wm8987.c | 2 +-
sound/soc/samsung/smdk_spdif.c | 2 +-
sound/soc/samsung/smdk_wm8580.c | 2 +-
sound/soc/samsung/smdk_wm8994.c | 2 +-
sound/soc/samsung/smdk_wm8994pcm.c | 2 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/spdif.c | 6 +-
sound/soc/samsung/tm2_wm5110.c | 8 +--
sound/soc/sh/dma-sh7760.c | 12 ++--
sound/soc/sh/fsi.c | 2 +-
sound/soc/sh/migor.c | 4 +-
sound/soc/sh/rcar/core.c | 4 +-
sound/soc/soc-component.c | 20 +++---
sound/soc/soc-dai.c | 8 +--
sound/soc/soc-dapm.c | 6 +-
sound/soc/soc-generic-dmaengine-pcm.c | 4 +-
sound/soc/soc-link.c | 12 ++--
sound/soc/soc-pcm.c | 62 +++++++++----------
sound/soc/soc-utils.c | 2 +-
sound/soc/sof/intel/hda-dai.c | 10 +--
sound/soc/sof/intel/hda-dsp.c | 2 +-
sound/soc/sof/intel/hda-pcm.c | 2 +-
sound/soc/sof/pcm.c | 18 +++---
sound/soc/sprd/sprd-pcm-dma.c | 2 +-
sound/soc/stm/stm32_adfsdm.c | 12 ++--
sound/soc/stm/stm32_sai_sub.c | 2 +-
sound/soc/sunxi/sun4i-codec.c | 12 ++--
sound/soc/sunxi/sun4i-spdif.c | 2 +-
sound/soc/tegra/tegra_alc5632.c | 2 +-
sound/soc/tegra/tegra_max98090.c | 2 +-
sound/soc/tegra/tegra_rt5640.c | 2 +-
sound/soc/tegra/tegra_rt5677.c | 2 +-
sound/soc/tegra/tegra_sgtl5000.c | 2 +-
sound/soc/tegra/tegra_wm8753.c | 2 +-
sound/soc/tegra/tegra_wm8903.c | 2 +-
sound/soc/tegra/trimslice.c | 2 +-
sound/soc/ti/davinci-evm.c | 6 +-
sound/soc/ti/davinci-vcif.c | 4 +-
sound/soc/ti/j721e-evm.c | 6 +-
sound/soc/ti/n810.c | 4 +-
sound/soc/ti/omap-abe-twl6040.c | 4 +-
sound/soc/ti/omap-mcbsp.c | 4 +-
sound/soc/ti/omap-twl4030.c | 2 +-
sound/soc/ti/omap3pandora.c | 2 +-
sound/soc/ti/osk5912.c | 2 +-
sound/soc/ti/rx51.c | 4 +-
sound/soc/uniphier/aio-dma.c | 6 +-
sound/soc/ux500/mop500_ab8500.c | 8 +--
sound/soc/ux500/ux500_pcm.c | 2 +-
sound/soc/xtensa/xtfpga-i2s.c | 2 +-
177 files changed, 397 insertions(+), 395 deletions(-)
--
2.25.1
Katsuhiro Suzuki [Wed, 22 Jul 2020 17:42:15 +0000 (02:42 +0900)]
ASoC: convert ROHM BD28623 amplifier binding to yaml
This patch converts ROHM BD28623UMV class D speaker amplifier binding
to DT schema.
Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200722174215.988974-1-katsuhiro@katsuster.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Tue, 21 Jul 2020 03:41:50 +0000 (11:41 +0800)]
ASoC: bindings: fsl-asoc-card: Support properties for configuring dai fmt
In order to support configuring dai fmt through DT, add some properties.
These properiese are same as the properties in simple card.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1595302910-19688-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Tue, 21 Jul 2020 03:41:49 +0000 (11:41 +0800)]
ASoC: fsl-asoc-card: Support configuring dai fmt from DT
Support same propeties as simple card for configuring fmt
from DT.
In order to make this change compatible with old DT, these
properties are optional.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1595302910-19688-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 23 Jul 2020 04:00:08 +0000 (12:00 +0800)]
ASoC: fsl_esai: add IRQF_SHARED for devm_request_irq
ESAI interfaces may share same interrupt line with EDMA on
some platforms (e.g. i.MX8QXP, i.MX8QM).
Add IRQF_SHARED flag to allow sharing the irq among several
devices
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1595476808-28927-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Sameer Pujar [Thu, 23 Jul 2020 08:13:31 +0000 (13:43 +0530)]
ASoC: tegra: Fix build error due to 64-by-32 division
Build errors are seen on 32-bit platforms because of a plain 64-by-32
division. For example, following build erros were reported.
"ERROR: modpost: "__udivdi3" [sound/soc/tegra/snd-soc-tegra210-dmic.ko]
undefined!"
"ERROR: modpost: "__divdi3" [sound/soc/tegra/snd-soc-tegra210-dmic.ko]
undefined!"
This can be fixed by using div_u64() helper from 'math64.h' header.
Fixes:
8c8ff982e9e2 ("ASoC: tegra: Add Tegra210 based DMIC driver")
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1595492011-2411-1-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Randy Dunlap [Mon, 20 Jul 2020 18:32:21 +0000 (11:32 -0700)]
ASoC: ti: fix SND_SOC_J721E_EVM warnings & errors
SND_SOC_J721E_EVM should not select SND_SOC_PCM3168A_I2C when I2C
is not enabled. That causes build errors, so make this driver's
symbol depend on I2C.
WARNING: unmet direct dependencies detected for SND_SOC_PCM3168A_I2C
Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && I2C [=n]
Selected by [m]:
- SND_SOC_J721E_EVM [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && (DMA_OMAP [=y] || TI_EDMA [=m] || TI_K3_UDMA [=n] || COMPILE_TEST [=y]) && (ARCH_K3_J721E_SOC [=n] || COMPILE_TEST [=y])
../sound/soc/codecs/pcm3168a-i2c.c:59:1: warning: data definition has no type or storage class
module_i2c_driver(pcm3168a_i2c_driver);
^~~~~~~~~~~~~~~~~
../sound/soc/codecs/pcm3168a-i2c.c:59:1: error: type defaults to ‘int’ in declaration of ‘module_i2c_driver’ [-Werror=implicit-int]
../sound/soc/codecs/pcm3168a-i2c.c:59:1: warning: parameter names (without types) in function declaration
../sound/soc/codecs/pcm3168a-i2c.c:49:26: warning: ‘pcm3168a_i2c_driver’ defined but not used [-Wunused-variable]
static struct i2c_driver pcm3168a_i2c_driver = {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Fixes:
6748d0559059 ("ASoC: ti: Add custom machine driver for j721e EVM (CPB and IVI)")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/e74c690c-c7f8-fd42-e461-4f33571df4ef@infradead.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Alexander A. Klimov [Sat, 18 Jul 2020 11:24:03 +0000 (13:24 +0200)]
ASoC: omap: Replace HTTP links with HTTPS ones
Rationale:
Reduces attack surface on kernel devs opening the links for MITM
as HTTPS traffic is much harder to manipulate.
Deterministic algorithm:
For each file:
If not .svg:
For each line:
If doesn't contain `\bxmlns\b`:
For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`:
If both the HTTP and HTTPS versions
return 200 OK and serve the same content:
Replace HTTP with HTTPS.
Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
Link: https://lore.kernel.org/r/20200718112403.13709-1-grandmaster@al2klimov.de
Signed-off-by: Mark Brown <broonie@kernel.org>
James Schulman [Thu, 23 Jul 2020 11:03:21 +0000 (12:03 +0100)]
ASoC: wm_adsp: Support new metadata block ID's
Coefficient files now support additional metadata blocks, these
contain machine parsable text strings describing the parameters
contained in the coefficient file.
Signed-off-by: James Schulman <james.schulman@cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200723110321.16382-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Alexander A. Klimov [Sat, 18 Jul 2020 11:12:09 +0000 (13:12 +0200)]
ASoC: fsl: Replace HTTP links with HTTPS ones
Rationale:
Reduces attack surface on kernel devs opening the links for MITM
as HTTPS traffic is much harder to manipulate.
Deterministic algorithm:
For each file:
If not .svg:
For each line:
If doesn't contain `\bxmlns\b`:
For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`:
If both the HTTP and HTTPS versions
return 200 OK and serve the same content:
Replace HTTP with HTTPS.
Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
Link: https://lore.kernel.org/r/20200718111209.11760-1-grandmaster@al2klimov.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Alexander A. Klimov [Sat, 18 Jul 2020 11:08:57 +0000 (13:08 +0200)]
ASoC: ti: Replace HTTP links with HTTPS ones
Rationale:
Reduces attack surface on kernel devs opening the links for MITM
as HTTPS traffic is much harder to manipulate.
Deterministic algorithm:
For each file:
If not .svg:
For each line:
If doesn't contain `\bxmlns\b`:
For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`:
If both the HTTP and HTTPS versions
return 200 OK and serve the same content:
Replace HTTP with HTTPS.
Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
Link: https://lore.kernel.org/r/20200718110857.11520-1-grandmaster@al2klimov.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:55 +0000 (10:19 +0900)]
ASoC: uniphier: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87sgdnyoea.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:51 +0000 (10:19 +0900)]
ASoC: mxs: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87tuy3yoef.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:46 +0000 (10:19 +0900)]
ASoC: xtensa: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87v9ijyoek.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:41 +0000 (10:19 +0900)]
ASoC: kirkwood: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87wo2zyoeo.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:37 +0000 (10:19 +0900)]
ASoC: sprd: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87y2nfyoes.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:32 +0000 (10:19 +0900)]
ASoC: generic: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87zh7vyoex.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:27 +0000 (10:19 +0900)]
ASoC: codecs: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/871rl70yse.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:23 +0000 (10:19 +0900)]
ASoC: bcm: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87365n0ysi.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:19 +0000 (10:19 +0900)]
ASoC: au1x: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/874kq30ysm.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:14 +0000 (10:19 +0900)]
ASoC: meson: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/875zaj0ysr.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:05 +0000 (10:19 +0900)]
ASoC: dwc: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/878sff0yt0.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:19:00 +0000 (10:19 +0900)]
ASoC: qcom: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87a6zv0yt5.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Mon, 20 Jul 2020 01:18:52 +0000 (10:18 +0900)]
ASoC: atmel: use asoc_substream_to_rtd()
Now we can use asoc_substream_to_rtd() macro,
let's use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87blkb0ytd.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>