Kuninori Morimoto [Fri, 27 Nov 2020 00:07:40 +0000 (09:07 +0900)]
ASoC: soc-core: add soc_dapm_suspend_resume()
snd_soc_suspend() and soc_resume_deferred() are calling
same snd_soc_dapm_stream_event() with same logic with different parameter.
This patch adds new soc_dapm_suspend_resume() and share the code.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87im9rekfp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Fri, 27 Nov 2020 00:07:35 +0000 (09:07 +0900)]
ASoC: soc-core: add soc_playback_digital_mute()
snd_soc_suspend() and soc_resume_deferred() are calling
same snd_soc_dai_digital_mute() with same logic with different parameter.
This patch adds new soc_playback_digital_mute() and share the code.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87k0u7ekfv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 26 Nov 2020 20:03:01 +0000 (20:03 +0000)]
Merge series "ASoC: merge soc_compr_open() rollback and soc_compr_free()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
This kind of duplicated code can be a hotbed of bugs,
thus, this patch-set share soc_compr_free() and rollback.
Kuninori Morimoto (5):
ASoC: soc-compress: move soc_compr_free() next to soc_compr_open()
ASoC: soc-dai: add mark for snd_soc_dai_compr_startup/shutdown()
ASoC: soc-component: add mark for snd_soc_component_compr_open/free()
ASoC: soc-component: add mark for snd_soc_link_compr_startup/shutdown()
ASoC: soc-compress: add soc_compr_clean() and call it from soc_compr_open/free()
include/sound/soc-component.h | 6 +-
include/sound/soc-dai.h | 4 +-
include/sound/soc-link.h | 3 +-
include/sound/soc.h | 1 +
sound/soc/soc-component.c | 17 +++--
sound/soc/soc-compress.c | 115 +++++++++++++++++-----------------
sound/soc/soc-dai.c | 13 +++-
sound/soc/soc-link.c | 11 +++-
8 files changed, 95 insertions(+), 75 deletions(-)
--
2.25.1
Mark Brown [Thu, 26 Nov 2020 20:03:00 +0000 (20:03 +0000)]
Merge series "ASoC: fix !OF compile test warnings" from Krzysztof Kozlowski <krzk@>:
Hi,
Changes since v1:
1. New patch 2/39: ASoC: bd28623: mark OF related data as maybe unused,
2. Patches 1-13: add maybe_unused after discussions with Mark,
3. Add Sylwester's review to two patches (one changed so please review
one more time).
Best regards,
Krzysztof
Krzysztof Kozlowski (39):
ASoC: ak5558: mark OF related data as maybe unused
ASoC: bd28623: mark OF related data as maybe unused
ASoC: gtm601: mark OF related data as maybe unused
ASoC: inno_rk3036: mark OF related data as maybe unused
ASoC: rk3328: mark OF related data as maybe unused
ASoC: tas571x: mark OF related data as maybe unused
ASoC: kirkwood: armada-370-db: mark OF related data as maybe unused
ASoC: meson: t9015: mark OF related data as maybe unused
ASoC: qcom: mark OF related data as maybe unused
ASoC: samsung: smdk_wm8994: mark OF related data as maybe unused
ASoC: rockchip: mark OF related data as maybe unused
ASoC: ti: davinci: mark OF related data as maybe unused
ASoC: uniphier: mark OF related data as maybe unused
ASoC: ak4118: skip of_device_id table when !CONFIG_OF
ASoC: alc5623: skip of_device_id table when !CONFIG_OF
ASoC: alc5632: skip of_device_id table when !CONFIG_OF
ASoC: da7218: skip of_device_id table when !CONFIG_OF
ASoC: da7219: skip of_device_id table when !CONFIG_OF
ASoC: da9055: skip of_device_id table when !CONFIG_OF
ASoC: es8316: skip of_device_id table when !CONFIG_OF
ASoC: max98090: skip of_device_id table when !CONFIG_OF
ASoC: max98095: skip of_device_id table when !CONFIG_OF
ASoC: max98371: skip of_device_id table when !CONFIG_OF
ASoC: max9867: skip of_device_id table when !CONFIG_OF
ASoC: max98925: skip of_device_id table when !CONFIG_OF
ASoC: max98926: skip of_device_id table when !CONFIG_OF
ASoC: pcm1789: skip of_device_id table when !CONFIG_OF
ASoC: pcm179x: skip of_device_id table when !CONFIG_OF
ASoC: rt5660: skip of_device_id table when !CONFIG_OF
ASoC: tas2562: skip of_device_id table when !CONFIG_OF
ASoC: tlv320: skip of_device_id table when !CONFIG_OF
ASoC: ts3a227e: skip of_device_id table when !CONFIG_OF
ASoC: es7134: mark OF related data as maybe unused
ASoC: es7241: mark OF related data as maybe unused
ASoC: samsung: i2s: mark OF related data as maybe unused
ASoC: max98371: drop driver pm=NULL assignment
ASoC: max98925: drop driver pm=NULL assignment
ASoC: max98926: drop driver pm=NULL assignment
ASoC: samsung: smdk_wm8994: remove redundant of_match_ptr()
sound/soc/codecs/ak4118.c | 2 ++
sound/soc/codecs/ak5558.c | 2 +-
sound/soc/codecs/alc5623.c | 2 ++
sound/soc/codecs/alc5632.c | 2 ++
sound/soc/codecs/bd28623.c | 2 +-
sound/soc/codecs/da7218.c | 2 ++
sound/soc/codecs/da7219.c | 2 ++
sound/soc/codecs/da9055.c | 2 ++
sound/soc/codecs/es7134.c | 4 ++--
sound/soc/codecs/es7241.c | 2 +-
sound/soc/codecs/es8316.c | 2 ++
sound/soc/codecs/gtm601.c | 2 +-
sound/soc/codecs/inno_rk3036.c | 2 +-
sound/soc/codecs/max98090.c | 2 ++
sound/soc/codecs/max98095.c | 2 ++
sound/soc/codecs/max98371.c | 3 ++-
sound/soc/codecs/max9867.c | 2 ++
sound/soc/codecs/max98925.c | 3 ++-
sound/soc/codecs/max98926.c | 3 ++-
sound/soc/codecs/pcm1789-i2c.c | 2 ++
sound/soc/codecs/pcm179x-i2c.c | 2 ++
sound/soc/codecs/rk3328_codec.c | 2 +-
sound/soc/codecs/rt5660.c | 2 ++
sound/soc/codecs/tas2562.c | 2 ++
sound/soc/codecs/tas571x.c | 4 ++--
sound/soc/codecs/tlv320adcx140.c | 2 ++
sound/soc/codecs/tlv320aic23-i2c.c | 2 ++
sound/soc/codecs/ts3a227e.c | 2 ++
sound/soc/kirkwood/armada-370-db.c | 2 +-
sound/soc/meson/t9015.c | 2 +-
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-apq8016.c | 2 +-
sound/soc/qcom/lpass-ipq806x.c | 2 +-
sound/soc/qcom/lpass-sc7180.c | 2 +-
sound/soc/rockchip/rockchip_i2s.c | 2 +-
sound/soc/rockchip/rockchip_pdm.c | 2 +-
sound/soc/rockchip/rockchip_spdif.c | 2 +-
sound/soc/samsung/i2s.c | 8 ++++----
sound/soc/samsung/smdk_wm8994.c | 4 ++--
sound/soc/ti/davinci-i2s.c | 2 +-
sound/soc/uniphier/aio-ld11.c | 2 +-
sound/soc/uniphier/aio-pxs2.c | 2 +-
sound/soc/uniphier/evea.c | 2 +-
43 files changed, 69 insertions(+), 32 deletions(-)
--
2.25.1
Kuninori Morimoto [Wed, 18 Nov 2020 23:50:19 +0000 (08:50 +0900)]
ASoC: soc-compress: add soc_compr_clean() and call it from soc_compr_open/free()
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
Now, soc_compr_open/free() are handling
1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
Now, 1) to 3) are handled.
This patch adds new soc_compr_clean() and call it from
soc_compr_open() as rollback, and from soc_compr_free_free() as
normal close handler.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87ima25iwa.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Wed, 18 Nov 2020 23:50:14 +0000 (08:50 +0900)]
ASoC: soc-component: add mark for snd_soc_link_compr_startup/shutdown()
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
=> 3) snd_soc_link_compr_startup/shutdown()
This patch is for 3) snd_soc_link_compr_startup/shutdown()
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87k0ui5iwf.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Wed, 18 Nov 2020 23:50:09 +0000 (08:50 +0900)]
ASoC: soc-component: add mark for snd_soc_component_compr_open/free()
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
1) snd_soc_dai_compr_startup/shutdown()
=> 2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
This patch is for 2) snd_soc_component_compr_open/free(),
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87lfey5iwk.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Wed, 18 Nov 2020 23:50:04 +0000 (08:50 +0900)]
ASoC: soc-dai: add mark for snd_soc_dai_compr_startup/shutdown()
soc_compr_open() does rollback when failed (A),
but, it is almost same as soc_compr_free().
static int soc_compr_open(xxx)
{
...
if (ret < 0)
goto xxx_err;
...
return 0;
^ machine_err:
| ...
| out:
(A) ...
| pm_err:
| ...
v return ret;
}
The difference is
soc_compr_free() is for all dai/component/substream,
rollback is for succeeded part only.
This kind of duplicated code can be a hotbed of bugs,
thus, we want to share soc_compr_free() and rollback.
=> 1) snd_soc_dai_compr_startup/shutdown()
2) snd_soc_component_compr_open/free()
3) snd_soc_link_compr_startup/shutdown()
This patch is for 1) snd_soc_dai_compr_startup/shutdown(),
and adds new cstream mark.
It will mark cstream when startup() was suceeded.
If rollback happen *after* that, it will check rollback flag
and marked cstream.
It cares *previous* startup() only now,
but we might want to check *whole* marked cstream in the future.
This patch is using macro so that it can be easily adjust to it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87mtze5iwp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kuninori Morimoto [Wed, 18 Nov 2020 23:49:57 +0000 (08:49 +0900)]
ASoC: soc-compress: move soc_compr_free() next to soc_compr_open()
This patch moves soc_compr_free() next to soc_compr_open().
This is prepare for soc_compr_open() cleanup.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87o8ju5iwv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 26 Nov 2020 06:14:53 +0000 (14:14 +0800)]
ASoC: fsl: Fix config name of CONFIG_ARCH_MXC
CONFIG_ARCH_MXC should be ARCH_MXC
Fixes:
674226db62ec ("ASoC: fsl: SND_SOC_FSL_AUD2HTX should depend on ARCH_MXC")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1606371293-29099-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 26 Nov 2020 06:36:48 +0000 (14:36 +0800)]
ASoC: hdmi-codec: Add RX support
HDMI interface can also be used as receiver, this patch is to
add such support. The most difference compare with TX is that RX
don't need to get edid information.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1606372608-2329-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:52 +0000 (17:44 +0100)]
ASoC: samsung: smdk_wm8994: remove redundant of_match_ptr()
of_match_device() already handles properly !CONFIG_OF case, so passing
the argument via of_match_ptr() is not needed.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Sylwester Nawrocki <snawrocki@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-40-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:51 +0000 (17:44 +0100)]
ASoC: max98926: drop driver pm=NULL assignment
There is no point to explicitly set driver .pm field to NULL.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-39-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:50 +0000 (17:44 +0100)]
ASoC: max98925: drop driver pm=NULL assignment
There is no point to explicitly set driver .pm field to NULL.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-38-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:49 +0000 (17:44 +0100)]
ASoC: max98371: drop driver pm=NULL assignment
There is no point to explicitly set driver .pm field to NULL.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-37-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:48 +0000 (17:44 +0100)]
ASoC: samsung: i2s: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/samsung/i2s.c:1646:42: warning: ‘i2sv5_dai_type_i2s1’ defined but not used [-Wunused-const-variable=]
sound/soc/samsung/i2s.c:1639:42: warning: ‘i2sv7_dai_type’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Sylwester Nawrocki <snawrocki@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-36-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:47 +0000 (17:44 +0100)]
ASoC: es7241: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/es7241.c:206:33: warning: ‘es7241_chip’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-35-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:46 +0000 (17:44 +0100)]
ASoC: es7134: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/es7134.c:264:33: warning: ‘es7154_chip’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-34-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:45 +0000 (17:44 +0100)]
ASoC: ts3a227e: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/ts3a227e.c:369:34: warning: ‘ts3a227e_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-33-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:44 +0000 (17:44 +0100)]
ASoC: tlv320: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/tlv320aic23-i2c.c:38:34: warning: ‘tlv320aic23_of_match’ defined but not used [-Wunused-const-variable=]
sound/soc/codecs/tlv320adcx140.c:1076:34: warning: ‘tlv320adcx140_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-32-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:43 +0000 (17:44 +0100)]
ASoC: tas2562: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/tas2562.c:805:34: warning: ‘tas2562_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-31-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:42 +0000 (17:44 +0100)]
ASoC: rt5660: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/rt5660.c:1238:34: warning: ‘rt5660_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-30-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:41 +0000 (17:44 +0100)]
ASoC: pcm179x: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/pcm179x-i2c.c:33:34: warning: ‘pcm179x_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-29-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:40 +0000 (17:44 +0100)]
ASoC: pcm1789: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/pcm1789-i2c.c:36:34: warning: ‘pcm1789_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-28-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:39 +0000 (17:44 +0100)]
ASoC: max98926: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max98926.c:574:34: warning: ‘max98926_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-27-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:38 +0000 (17:44 +0100)]
ASoC: max98925: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max98925.c:630:34: warning: ‘max98925_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-26-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:37 +0000 (17:44 +0100)]
ASoC: max9867: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max9867.c:652:34: warning: ‘max9867_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-25-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:36 +0000 (17:44 +0100)]
ASoC: max98371: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max98371.c:411:34: warning: ‘max98371_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-24-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:35 +0000 (17:44 +0100)]
ASoC: max98095: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max98095.c:2151:34: warning: ‘max98095_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-23-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:34 +0000 (17:44 +0100)]
ASoC: max98090: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/max98090.c:2671:34: warning: ‘max98090_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-22-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:33 +0000 (17:44 +0100)]
ASoC: es8316: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/es8316.c:837:34: warning: ‘es8316_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-21-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:32 +0000 (17:44 +0100)]
ASoC: da9055: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/da9055.c:1522:34: warning: ‘da9055_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-20-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:31 +0000 (17:44 +0100)]
ASoC: da7219: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/da7219.c:1705:34: warning: ‘da7219_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-19-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:30 +0000 (17:44 +0100)]
ASoC: da7218: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/da7218.c:2281:34: warning: ‘da7218_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-18-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:29 +0000 (17:44 +0100)]
ASoC: alc5632: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/alc5632.c:1170:34: warning: ‘alc5632_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-17-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:28 +0000 (17:44 +0100)]
ASoC: alc5623: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/alc5623.c:1071:34: warning: ‘alc5623_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-16-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:27 +0000 (17:44 +0100)]
ASoC: ak4118: skip of_device_id table when !CONFIG_OF
The driver can match by multiple methods. Its of_device_id table is
referenced via of_match_ptr() so it will be unused for !CONFIG_OF
builds:
sound/soc/codecs/ak4118.c:407:34: warning: ‘ak4118_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-15-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:26 +0000 (17:44 +0100)]
ASoC: uniphier: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/uniphier/aio-ld11.c:375:34: warning: ‘uniphier_aio_of_match’ defined but not used [-Wunused-const-variable=]
sound/soc/uniphier/evea.c:554:34: warning: ‘evea_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-14-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:25 +0000 (17:44 +0100)]
ASoC: ti: davinci: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/ti/davinci-i2s.c:750:34: warning: ‘davinci_i2s_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-13-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:24 +0000 (17:44 +0100)]
ASoC: rockchip: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/rockchip/rockchip_i2s.c:569:34: warning: ‘rockchip_i2s_match’ defined but not used [-Wunused-const-variable=]
sound/soc/rockchip/rockchip_pdm.c:463:34: warning: ‘rockchip_pdm_match’ defined but not used [-Wunused-const-variable=]
sound/soc/rockchip/rockchip_spdif.c:44:34: warning: ‘rk_spdif_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-12-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:23 +0000 (17:44 +0100)]
ASoC: samsung: smdk_wm8994: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/samsung/smdk_wm8994.c:139:34: warning: ‘samsung_wm8994_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-11-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:22 +0000 (17:44 +0100)]
ASoC: qcom: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/qcom/lpass-apq8016.c:294:34: warning: ‘apq8016_lpass_cpu_device_id’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-10-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:21 +0000 (17:44 +0100)]
ASoC: meson: t9015: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/meson/t9015.c:315:34: warning: ‘t9015_ids’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-9-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:20 +0000 (17:44 +0100)]
ASoC: kirkwood: armada-370-db: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/kirkwood/armada-370-db.c:137:34: warning: ‘a370db_dt_ids’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-8-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:19 +0000 (17:44 +0100)]
ASoC: tas571x: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/tas571x.c:892:34: warning: ‘tas571x_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-7-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:18 +0000 (17:44 +0100)]
ASoC: rk3328: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/rk3328_codec.c:502:34: warning: ‘rk3328_codec_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-6-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:17 +0000 (17:44 +0100)]
ASoC: inno_rk3036: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/inno_rk3036.c:470:34: warning: ‘rk3036_codec_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-5-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:16 +0000 (17:44 +0100)]
ASoC: gtm601: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/gtm601.c:90:34: warning: ‘gtm601_codec_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-4-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:15 +0000 (17:44 +0100)]
ASoC: bd28623: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/bd28623.c:225:34: warning: ‘bd28623_of_match’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-3-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 25 Nov 2020 16:44:14 +0000 (17:44 +0100)]
ASoC: ak5558: mark OF related data as maybe unused
The driver can be compile tested with !CONFIG_OF making certain data
unused:
sound/soc/codecs/ak5558.c:418:34: warning: ‘ak5558_i2c_dt_ids’ defined but not used [-Wunused-const-variable=]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201125164452.89239-2-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Viorel Suman [Tue, 24 Nov 2020 14:19:57 +0000 (16:19 +0200)]
ASoC: fsl_xcvr: fix potential resource leak
"fw" variable must be relased before return.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Link: https://lore.kernel.org/r/20201124141957.20481-1-viorel.suman@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Karol Trzcinski [Tue, 24 Nov 2020 18:00:17 +0000 (20:00 +0200)]
ASoC: SOF: Add `memory_info` file to debugfs
This file content describes memory allocation status
at run-time, typically to detect memory leaks.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201124180017.2232128-5-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Karol Trzcinski [Tue, 24 Nov 2020 18:00:16 +0000 (20:00 +0200)]
ASoC: SOF: Change section comment for SOF_IPC_TEST_
Section comment should be coherent with IPC prefix from define
names.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201124180017.2232128-4-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Karol Trzcinski [Tue, 24 Nov 2020 18:00:15 +0000 (20:00 +0200)]
ASoC: SOF: Improve code alignment in header.h
Each define value in series should be aligned and tabs should
be used instead of spaces to follow code-style.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201124180017.2232128-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Karol Trzcinski [Tue, 24 Nov 2020 18:00:14 +0000 (20:00 +0200)]
ASoC: SOF: ext_manifest: Parse firmware config dictionary
Values given in this dictionary describes used firmware configuration,
like feature availability, buffer size limits and similar properties.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201124180017.2232128-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fabio Estevam [Mon, 23 Nov 2020 20:09:17 +0000 (17:09 -0300)]
ASoC: imx-audmux: Remove unused .id_table
Since 5.10-rc1 i.MX is a devicetree-only platform and the existing
.id_table support in this driver was only useful for old non-devicetree
platforms.
Get rid of the .id_table since it is no longer used.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20201123200917.16447-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Mon, 16 Nov 2020 17:51:33 +0000 (18:51 +0100)]
ASoC: ti: depend on COMMON_CLK to fix compile tests
The TI/OMAP sound drivers use Common Clock Framework thus they cannot be
built on platforms without it (e.g. compile test on MIPS with RALINK and
SOC_RT305X):
/usr/bin/mips-linux-gnu-ld: sound/soc/ti/davinci-mcasp.o:davinci-mcasp.c:(.text+0x1c64): more undefined references to `clk_set_parent' follow
/usr/bin/mips-linux-gnu-ld: sound/soc/ti/omap-dmic.o: in function `omap_dmic_set_dai_sysclk':
omap-dmic.c:(.text+0xa5c): undefined reference to `clk_get_parent'
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201116175133.402553-4-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Mon, 16 Nov 2020 17:51:32 +0000 (18:51 +0100)]
ASoC: stm: depend on COMMON_CLK to fix compile tests
The STM32 I2S drivers use Common Clock Framework thus they cannot be
built on platforms without it (e.g. compile test on MIPS with RALINK and
SOC_RT305X):
/usr/bin/mips-linux-gnu-ld: sound/soc/stm/stm32_i2s.o: in function `stm32_i2s_hw_params':
stm32_i2s.c:(.text+0x1870): undefined reference to `clk_set_parent'
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201116175133.402553-3-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Mon, 16 Nov 2020 17:51:31 +0000 (18:51 +0100)]
ASoC: sh: depend on COMMON_CLK to fix compile tests
The SH4 FSI sound drivers use SuperH clocks thus they cannot be built on
platforms without proper clock support (e.g. compile test on MIPS with
RALINK and SOC_RT305X):
/usr/bin/mips-linux-gnu-ld: sound/soc/sh/fsi.o: in function `fsi_clk_set_rate_external':
fsi.c:(.text+0x2714): undefined reference to `clk_set_parent'
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201116175133.402553-2-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Cheng-Yi Chiang [Wed, 18 Nov 2020 04:38:52 +0000 (12:38 +0800)]
ASoC: hdmi-codec: Get ELD in before reporting plugged event
In plugged callback, ELD should be updated from display driver so that
user space can query information from ELD immediately after receiving jack
plugged event.
When jack is unplugged, clear ELD buffer so that user space does not get
obsolete information of unplugged HDMI.
Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
Link: https://lore.kernel.org/r/20201118043852.1338877-1-cychiang@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Gustavo A. R. Silva [Fri, 20 Nov 2020 18:23:50 +0000 (12:23 -0600)]
ASoC: codecs: Fix fall-through warnings for Clang
In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of just
letting the code fall through, and also add fallthrough pseudo-keywords
in places where the code is intended to fall through to the next case.
Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/d17b4d8300dbb6aff0d055b06b487c96ca264757.1605896059.git.gustavoars@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Ranjani Sridharan [Fri, 20 Nov 2020 14:16:53 +0000 (16:16 +0200)]
ASoC: SOF: nocodec: modify DAI link definitions
The ignore_machine field in the component driver is used to
ignore the FE DAI links defined in the machine driver,
override BE fixups and set the stream names for the
DAI links defined in the machine driver. This is required
to make SOF compatible with the legacy machine drivers.
In the case of the nocodec machine driver in SOF, there is
no need to rely upon this ignore_machine logic in the core.
Modify the machine driver to set DAI link stream names and the
BE hw_params_fixup callback appropriately.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201120141653.2160134-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Curtis Malainey [Fri, 20 Nov 2020 14:40:25 +0000 (16:40 +0200)]
ASoC: SOF: IPC: fix implicit type overflow
Implicit values may have a length of 15bits (s16) so we need to declare
the proper size so we don't get undefined behaviour. This appears to be
arch and compiler dependent. This commit is to keep the headers aligned
between the firmware and kernel. UBSan discovered this bug in the
firmware.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201120144025.2166023-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Fri, 20 Nov 2020 16:09:46 +0000 (16:09 +0000)]
Merge series "ASoC: mt6359: Fix regulator_dev_lookup() fails for id "LDO_VAUD18"" from Jiaxin Yu <jiaxin.yu@mediatek.com>:
This series fixed "LDO_VAUD18-supply" regulator register fail.
We can see the error log "mt6359-sound supply LDO_VAUD18 not found, using
dummy regulator" when register the DAPM widget "LDO_VAUD18"
Otherwise, the power can not be turned on correctly when recording.
Jiaxin Yu (2):
ASoC: mediatek: mt6359: Fix regulator_dev_lookup() fails for id
"LDO_VAUD18"
dt-bindings: mediatek: mt6359: remove unused property for mt6359
Documentation/devicetree/bindings/sound/mt6359.yaml | 9 ---------
sound/soc/codecs/mt6359.c | 7 ++++---
2 files changed, 4 insertions(+), 12 deletions(-)
--
2.18.0
Mark Brown [Fri, 20 Nov 2020 16:09:39 +0000 (16:09 +0000)]
Merge series "ASoC: Intel/SOF: extend run-time driver selection to ACPI devices" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
The module snd-intel-dspcfg, suggested by Jaroslav last year,
currently provide the means to select a PCI driver at run-time, based
on quirks, recommendations or user selection via a kernel
parameter. This capability removed a lot of confusions in
distributions and removed the need for recompilations to select legacy
HDaudio, SST or SOF drivers.
This patchset extends the concept to ACPI devices. This was driven by
the desire to at some point deprecate the Atom/SST driver for Baytrail
and Cherrytrail, which is no longer maintained by Intel. By having the
SOF driver enabled by distributions for Baytrail/Cherrytrail, we can
enable more end-user tests and make the transition easier for
distributions (likely in 2021 at this point).
This patchset provides the same solution for Broadwell, mainly to have
a single build for all Intel platforms. SOF on Broadwell remains an
option not recommended for distributions, as long as the 'catpt'
driver is maintained there is no burning desire to make SOF the
default on the three Broadwell-based platforms with the DSP
enabled.
Pierre-Louis Bossart (14):
ASoC: Intel: broadwell: add missing pm_ops
ASoC: Intel: bdw-rt5677: add missing pm_ops
ALSA: hda: intel-dsp-config: add helper for ACPI DSP driver selection
ASoC: soc-acpi: add helper to identify parent driver.
ASoC: Intel: boards: byt/cht: set card and driver name at run time
ASoC: Intel: byt/cht: set pm ops dynamically
ASoC: SOF: acpi: add dynamic selection of DSP driver
ASoC: Intel: Atom: add dynamic selection of DSP driver
ASoC: SOF: Intel: allow for coexistence between SOF and Atom/SST
drivers
ALSA: hda: intel-dsp-config: add Broadwell ACPI DSP driver selection
ASoC: Intel: broadwell: set card and driver name dynamically
ASoC: Intel: catpt: add dynamic selection of DSP driver
ASoC: SOF: Intel: allow for coexistence between SOF and catpt drivers
ALSA: hda: intel-dsp-config: ignore dsp_driver parameter for PCI
legacy devices
include/sound/intel-dsp-config.h | 7 ++
include/sound/soc-acpi.h | 6 +
sound/hda/intel-dsp-config.c | 111 +++++++++++++++++++
sound/soc/intel/Kconfig | 2 +
sound/soc/intel/atom/sst/sst_acpi.c | 8 ++
sound/soc/intel/boards/bdw-rt5650.c | 17 ++-
sound/soc/intel/boards/bdw-rt5677.c | 18 ++-
sound/soc/intel/boards/broadwell.c | 20 ++--
sound/soc/intel/boards/bytcht_cx2072x.c | 27 +++--
sound/soc/intel/boards/bytcht_da7213.c | 27 +++--
sound/soc/intel/boards/bytcht_es8316.c | 29 +++--
sound/soc/intel/boards/bytcr_rt5640.c | 30 +++--
sound/soc/intel/boards/bytcr_rt5651.c | 27 +++--
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 29 +++--
sound/soc/intel/boards/cht_bsw_nau8824.c | 29 +++--
sound/soc/intel/boards/cht_bsw_rt5645.c | 38 ++++---
sound/soc/intel/boards/cht_bsw_rt5672.c | 29 +++--
sound/soc/intel/catpt/device.c | 12 ++
sound/soc/sof/intel/Kconfig | 33 +++---
sound/soc/sof/sof-acpi-dev.c | 14 ++-
20 files changed, 392 insertions(+), 121 deletions(-)
--
2.25.1
Dmitry Baryshkov [Thu, 19 Nov 2020 12:31:45 +0000 (15:31 +0300)]
ASoC: qcom: sm8250: fix HDMI audio playback
Current code does not setup CPU dai (causing -EIO errors on playback)
and does not pass SND_SOC_DAIFMT_I2S to codec fmt (causing i2s-hifi
errors). Fix both errors to enable HDMI audio playback on SM8250. Tested
on RB5 platform.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fixes:
aa2e2785545a ("ASoC: qcom: sm8250: add sound card qrb5165-rb5 support")
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20201119123145.709891-1-dmitry.baryshkov@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Kyle Russell [Thu, 19 Nov 2020 03:41:06 +0000 (22:41 -0500)]
ASoC: mmp-sspa: set phase two word length register
If hw params enables dual phase transmission, then the word length for
the second phase should be set to match the sample format instead of
remaining at the reset default. This matches the configuration already
being done for the first phase.
This driver already sets the phase two sample size, so this should complete
the phase two configuration.
Signed-off-by: Kyle Russell <bkylerussell@gmail.com>
Link: https://lore.kernel.org/r/20201119034106.1273906-1-bkylerussell@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Fri, 20 Nov 2020 12:38:13 +0000 (12:38 +0000)]
ASoC: codecs: lpass-va-macro: add missing MODULE_DEVICE_TABLE
Fix module loading due by adding missing MODULE_DEVICE_TABLE.
Fixes:
908e6b1df26e ("ASoC: codecs: lpass-va-macro: Add support to VA Macro")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20201120123813.14059-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Rob Herring [Thu, 19 Nov 2020 16:18:48 +0000 (10:18 -0600)]
ASoC: dt-bindings: renesas, rsnd: Fix duplicate 'allOf' entries
Commit
e52f3f291152 ("ASoC: audio-graph-card: Refactor schema") added an
'allOf' entry, but one is already present in the schema. Multiple keys
is not valid and results in an error:
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
in "<unicode string>", line 4, column 1
found duplicate key "allOf" with value "[]" (original value: "[]")
in "<unicode string>", line 262, column 1
Fixes:
e52f3f291152 ("ASoC: audio-graph-card: Refactor schema")
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Sameer Pujar <spujar@nvidia.com>
Cc: alsa-devel@alsa-project.org
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201119161848.3379929-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Jaska Uimonen [Wed, 11 Nov 2020 17:31:05 +0000 (19:31 +0200)]
ASoC: SOF: control: override volume info callback
ASoC dapm controls currently don't support more than 2 channels. This is
a problem for SOF-based devices where individual volume control cannot
be provided on the 4 DMIC input path.
If we want to provide controls for more than 2 channels, this patch
suggests a simple solution based on an override of the info callback.
For example, in the case with 4 channel DMIC PGAs, a sof_info callback
would be used. Mono and stereo cases will keep using the existing dapm
info callback.
A longer-term solution would be to remove the limits to 2 channels in
ASoC/DAPM/topology. This is a topic Intel is currently looking into,
e.g. by removing the use of 'reg' and 'rreg' fields and use arrays
instead. Such changes will be rather intrusive and touch multiple codec
and platform drivers. Removing restrictions is the right thing to do,
but this will need to be done in steps with lots of validation.
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201111173105.1927466-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jiaxin Yu [Fri, 20 Nov 2020 03:06:13 +0000 (11:06 +0800)]
ASoC: mt6359: remove unused property for mt6359
This reverts commit
08651373808e16b01d3b12207f52504c17b6774c.
("dt-bindings: mediatek: mt6359: Add new property for mt6359")
Remove unused property "LDO_VAUD18-supply" in mt6359codec.
Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Link: https://lore.kernel.org/r/1605841573-1442-3-git-send-email-jiaxin.yu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Jiaxin Yu [Fri, 20 Nov 2020 03:06:12 +0000 (11:06 +0800)]
ASoC: mediatek: mt6359: Fix regulator_dev_lookup() fails for id "LDO_VAUD18"
Mt6359 platform device is instantiated by mfd_add_devices(). In the
case, dev->of_node is NULL so that always fails to get the regulator_dev.
Use regualator-name "vaud18" that in dts node instead of
"LDO_VAUD19-supply". So that we can get regulator_dev through
regulator_lookup_by_name() directly.
Fixes:
64a70744b778 ("ASoC: Fix vaud18 power leakage of mt6359")
Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Link: https://lore.kernel.org/r/1605841573-1442-2-git-send-email-jiaxin.yu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:24 +0000 (16:38 -0600)]
ASoC: SOF: Intel: allow for coexistence between SOF and catpt drivers
Now that we have all the support needed for coexistence between ACPI
drivers for Broadwell, remove mutual exclusion in the Kconfig
file. The selection is done by playing with the snd_intel_dspcfg
module 'dsp_driver' parameter.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-14-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:25 +0000 (16:38 -0600)]
ALSA: hda: intel-dsp-config: ignore dsp_driver parameter for PCI legacy devices
On Haswell/Broadwell/Baytrail/Braswell, the DSP is not used for the
HDMI/DP interface, and setting the dsp_driver parameter to a value > 1
has the side effect of preventing the HDaudio legacy driver from
probing.
The DSP driver selection should really only handle cases where a DSP
is actually used. This patch traps all known PCI devices and makes
sure the HDaudio driver can always be probed.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-15-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:23 +0000 (16:38 -0600)]
ASoC: Intel: catpt: add dynamic selection of DSP driver
Follow PCI example and stop the probe when another driver is desired
for the same ACPI HID.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-13-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:22 +0000 (16:38 -0600)]
ASoC: Intel: broadwell: set card and driver name dynamically
Remove last hard-coded build-time dependency
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-12-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:21 +0000 (16:38 -0600)]
ALSA: hda: intel-dsp-config: add Broadwell ACPI DSP driver selection
Add ACPI IDs for Broadwell (and Haswell for consistency). This
addition is required for dynamic selection of drivers on those
devices.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-11-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:20 +0000 (16:38 -0600)]
ASoC: SOF: Intel: allow for coexistence between SOF and Atom/SST drivers
Now that we have all the support needed for coexistence between ACPI
drivers for Baytrail and Cherrytrail, remove mutual exclusion in the
Kconfig file. The selection is done by playing with the snd_intel_dsp
module parameter.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-10-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:19 +0000 (16:38 -0600)]
ASoC: Intel: Atom: add dynamic selection of DSP driver
Follow PCI example and stop the probe when another driver is desired
for the same ACPI HID.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-9-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:18 +0000 (16:38 -0600)]
ASoC: SOF: acpi: add dynamic selection of DSP driver
Follow PCI example and stop the probe when another driver is desired
for the same ACPI HID.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-8-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:17 +0000 (16:38 -0600)]
ASoC: Intel: byt/cht: set pm ops dynamically
The Atom/SST driver does not rely on ASoC power management, but the
SOF driver does. Rather than using a hard-coded build-time assignment,
we can set this pm_ops dynamically depending on what the parent
is. That will remove the last build-time dependency and allow for
coexistence of both SST and SOF drivers for Baytrail/Cherrytrail.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-7-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:16 +0000 (16:38 -0600)]
ASoC: Intel: boards: byt/cht: set card and driver name at run time
To avoid hard-coded variations between SOF and SST drivers, set the
card name and driver dynamically depending on the parent type. This is
the first pass required to let distributions select which drivers to
use with kernel parameters instead of build-time selection.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:15 +0000 (16:38 -0600)]
ASoC: soc-acpi: add helper to identify parent driver.
Intel machine drivers are used by parent platform drivers based on
closed-source firmware (Atom/SST and catpt) and SOF-based ones.
In some cases for ACPI-based platforms, the behavior of machine
drivers needs to be modified depending on the parent type, typically
for card names and power management.
An initial solution based on passing a boolean flag as a platform
device parameter was tested earlier. Since it looked overkill, this
patch suggests instead a simple string comparison to identify an SOF
parent device/driver.
Suggested-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:14 +0000 (16:38 -0600)]
ALSA: hda: intel-dsp-config: add helper for ACPI DSP driver selection
Mirror capabilities provided for PCI devices, so that distributions
can select which ACPI driver is loaded at run-time with kernel
parameters and DMI tables instead of forcing a build-time selection.
The "legacy" option supported for HDaudio has no meaning here and will
be ignored.
The 'SST' driver based on closed-source firmware has the priority to
avoid any impact on users, and the choice to use SOF is strictly
opt-in. This may change at some point when the 'SST' driver is
deprecated on Baytrail/Cherrytrail.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 19 Nov 2020 15:32:25 +0000 (15:32 +0000)]
Merge series "ASoC: codecs: add support for LPASS Codec macros" from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
This patchset adds support for two Codec Macro blocks( WSA and VA) available in
Qualcomm LPASS (Low Power Audio SubSystem).
There are WSA, VA, TX and RX Macros on LPASS IP, each of the Macro block
has specific connectivity like WSA Macros are intended to connect
to WSA Smart speaker codecs via SoundWire. VA Macro is intended for DMICs,
and TX/RX for Analog codecs via SoundWire like other WCD Codecs to provide
headphone/ear/lineout etc ..
Most of the work is derived from downstream Qualcomm kernels.
Credits to various Qualcomm authors from Patrick Lai's team who have
contributed to this code.
This patchset has been tested on support to Qualcomm Robotics RB5 Development
Kit based on QRB5165 Robotics SoC. This board has 2 WSA881X smart speakers
with onboard DMIC connected to internal LPASS codec via WSA and VA macros
respectively.
Thanks,
srini
-Changes since v2:
- various unnecessary variable intializations removed, suggested by Pierre
- fixed a static checker error
- collected reviews for dt-bindings.
- fixed licence headers as suggested by Pierre.
Srinivas Kandagatla (6):
ASoC: qcom: dt-bindings: add bindings for lpass wsa macro codec
ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro
ASoC: codecs: lpass-wsa-macro: add dapm widgets and route
ASoC: qcom: dt-bindings: add bindings for lpass va macro codec
ASoC: codecs: lpass-va-macro: Add support to VA Macro
ASoC: codecs: lpass-va-macro: add dapm widgets and routes
.../bindings/sound/qcom,lpass-va-macro.yaml | 67 +
.../bindings/sound/qcom,lpass-wsa-macro.yaml | 69 +
sound/soc/codecs/Kconfig | 8 +
sound/soc/codecs/Makefile | 4 +
sound/soc/codecs/lpass-va-macro.c | 1503 ++++++++++
sound/soc/codecs/lpass-wsa-macro.c | 2464 +++++++++++++++++
sound/soc/codecs/lpass-wsa-macro.h | 17 +
7 files changed, 4132 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-wsa-macro.yaml
create mode 100644 sound/soc/codecs/lpass-va-macro.c
create mode 100644 sound/soc/codecs/lpass-wsa-macro.c
create mode 100644 sound/soc/codecs/lpass-wsa-macro.h
--
2.21.0
Ranjani Sridharan [Tue, 17 Nov 2020 21:50:01 +0000 (13:50 -0800)]
ASoC: pcm: call snd_soc_dapm_stream_stop() in soc_pcm_hw_clean
Currently, the SND_SOC_DAPM_STREAM_START event is sent during
pcm_prepare() but the SND_SOC_DAPM_STREAM_STOP event is
sent only in dpcm_fe_dai_shutdown() after soc_pcm_close().
This results in an imbalance between when the DAPM widgets
receive the PRE/POST_PMU/PMD events. So call
snd_soc_dapm_stream_stop() in soc_pcm_hw_clean() before the
snd_soc_pcm_component_hw_free() to keep the stream_stop DAPM
event balanced with the stream_start event in soc_pm_prepare().
Also, in order to prevent duplicate DAPM stream events,
remove the call for DAPM STREAM_START event in dpcm_fe_dai_prepare()
and the call for DAPM STREAM_STOP event in dpcm_fe_dai_shutdown().
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20201117215001.163107-1-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kai Vehmanen [Wed, 18 Nov 2020 14:05:45 +0000 (16:05 +0200)]
ASoC: SOF: Intel: add hw specific PCM constraints
Part of PCM constraints are set based on DSP topology, but rest
should be set based on hardware capabilities. Add PCM constraints
for Intel platforms:
- Add constraint for the period count to be integer. This avoids
wrap-arounds of the DMA circular buffer in middle of a period.
- Align period size to dword/32bit as per HDA spec.
Both constraints are aligned with current implementation in snd-hda-intel
driver.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20201118140545.2138895-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kai Vehmanen [Wed, 18 Nov 2020 14:05:44 +0000 (16:05 +0200)]
ASoC: SOF: relax PCM period and buffer size constraints
Current SOF implementation limits period and buffer sizes to multiples
of period_min. Period_min is defined in topology, but is in practise set
to align with the SOF DSP timer tick (typically 1ms).
While this approach helps user-space to avoid period sizes, which are
not aligned to the DSP timer tick, it causes problems to applications
which want to align data processing size to that of ALSA period size.
One example is JACK audio server, which limits period sizes to power of
two values.
Other ALSA drivers where audio data transfer is driven by a timer tick,
like USB, do not constraint period and buffer sizes to exact multiple of
the timer tick.
To align SOF to follow the same behaviour, drop the additional alignment
constraints. As a side-effect, this patch can cause irregularity to
period wakeup timing. This happens when application chooses settings
which were previously forbidden. For example, if application configures
period size to 2^14 bytes and audio config of S32_LE/2ch/48000Hz, one
period represents 42.667ms of audio. Without this patch, this
configuration is not allowed by SOF. With the patch applied,
configuration is allowed but the wakeups are paced by the DSP timer
tick, which is typically 1ms. Application will see period wakeups with a
42/43/42/43ms repeating pattern.
Both approaches are valid within ALSA context, but relaxing the
constraints is better aligned with existing applications and other ALSA
drivers like USB audio.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20201118140545.2138895-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Piotr Maziarz [Tue, 17 Nov 2020 14:52:23 +0000 (15:52 +0100)]
ASoC: Intel: catpt: select WANT_DEV_COREDUMP
Select WANT_DEV_COREDUMP for catpt driver.
Signed-off-by: Piotr Maziarz <piotrx.maziarz@linux.intel.com>
Signed-off-by: Gustaw Lewandowski <gustaw.lewandowski@linux.intel.com>
--
Changes in v2:
- change should be added to catpt only
Acked-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20201117145223.21222-1-gustaw.lewandowski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 19 Nov 2020 06:40:38 +0000 (14:40 +0800)]
ASoC: fsl_sai: Correct the clock source for mclk0
On VF610, mclk0 = bus_clk;
On i.MX6SX/6UL/6ULL/7D, mclk0 = mclk1;
On i.MX7ULP, mclk0 = bus_clk;
On i.MX8QM/8QXP, mclk0 = bus_clk;
On i.MX8MQ/8MN/8MM/8MP, mclk0 = bus_clk;
So add variable mclk0_is_mclk1 in fsl_sai_soc_data to
distinguish these platforms.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1605768038-4582-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 18 Nov 2020 20:14:20 +0000 (21:14 +0100)]
ASoC: sunxi: do not select COMMON_CLK to fix builds
COMMON_CLK is a user-selectable option with its own dependencies. The
most important dependency is !HAVE_LEGACY_CLK. User-selectable drivers
should not select COMMON_CLK because they will create a dependency cycle
and build failures. For example on MIPS a configuration with COMMON_CLK
(selected by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (selected by
SOC_RT305X) is possible:
WARNING: unmet direct dependencies detected for COMMON_CLK
Depends on [n]: !HAVE_LEGACY_CLK [=y]
Selected by [y]:
- SND_SUN8I_CODEC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] &&
(ARCH_SUNXI || COMPILE_TEST [=y]) && OF [=y] && (MACH_SUN8I || ARM64 && ARCH_SUNXI || COMPILE_TEST [=y])
/usr/bin/mips-linux-gnu-ld: drivers/clk/clk.o: in function `clk_set_rate':
(.text+0xaeb4): multiple definition of `clk_set_rate'; arch/mips/ralink/clk.o:(.text+0x88): first defined here
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20201118201420.4878-1-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:13 +0000 (16:38 -0600)]
ASoC: Intel: bdw-rt5677: add missing pm_ops
For some reason this ops is missing in 2 out of the 3 broadwell
drivers. Add to make sure ASoC takes care of power management.
Tested-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 12 Nov 2020 22:38:12 +0000 (16:38 -0600)]
ASoC: Intel: broadwell: add missing pm_ops
For some reason this ops is missing in 2 out of the 3 broadwell
drivers. Add to make sure ASoC takes care of power management.
Tested-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20201112223825.39765-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:58 +0000 (11:34 +0000)]
ASoC: codecs: lpass-va-macro: add dapm widgets and routes
Add dapm widgets and routes for this codec.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-7-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:57 +0000 (11:34 +0000)]
ASoC: codecs: lpass-va-macro: Add support to VA Macro
Qualcomm LPASS (Low Power Audio SubSystem) has internal codec
VA macro block which is used for connecting with DMICs.
This patch adds support to the codec part of the VA Macro block
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-6-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:56 +0000 (11:34 +0000)]
ASoC: qcom: dt-bindings: add bindings for lpass va macro codec
This binding is for LPASS has internal codec VA macro which is
for connecting with DMICs.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:55 +0000 (11:34 +0000)]
ASoC: codecs: lpass-wsa-macro: add dapm widgets and route
This patch adds dapm widgets and routes on this codec
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-4-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:54 +0000 (11:34 +0000)]
ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro
Qualcomm LPASS (Low Power Audio SubSystem) has internal codec
WSA macro block which is used for connecting with WSA Smart
speakers over soundwire.
This patch adds support to the codec part of the WSA Macro block.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 5 Nov 2020 11:34:53 +0000 (11:34 +0000)]
ASoC: qcom: dt-bindings: add bindings for lpass wsa macro codec
This binding is for LPASS has internal codec WSA macro which is
for connecting with WSA Smart speakers.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20201105113458.12360-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Wed, 18 Nov 2020 20:56:23 +0000 (20:56 +0000)]
Merge series "ASoC: soc-component: add snd_soc_component_xxx()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Hi Mark
These are v2 of snd_soc_component_compr_xxx() function patches.
I think component related function should be implemented at
soc-component.c, otherwise it is confusable to read.
These are for it.
v1 -> v2
- fixup function return timing on
snd_soc_component_compr_get_params()
snd_soc_component_compr_get_metadata()
- use mutex at compr side on
snd_soc_component_compr_get_caps()
snd_soc_component_compr_get_codec_caps()
snd_soc_component_compr_copy()
Link: https://lore.kernel.org/r/878sb78ac4.wl-kuninori.morimoto.gx@renesas.com
Kuninori Morimoto (12):
ASoC: soc-component: add snd_soc_component_compr_open()
ASoC: soc-component: add snd_soc_component_compr_free()
ASoC: soc-component: add snd_soc_component_compr_trigger()
ASoC: soc-component: add snd_soc_component_compr_set_params()
ASoC: soc-component: add snd_soc_component_compr_get_params()
ASoC: soc-component: add snd_soc_component_compr_get_caps()
ASoC: soc-component: add snd_soc_component_compr_get_codec_caps()
ASoC: soc-component: add snd_soc_component_compr_ack()
ASoC: soc-component: add snd_soc_component_compr_pointer()
ASoC: soc-component: add snd_soc_component_compr_copy()
ASoC: soc-component: add snd_soc_component_compr_set_metadata()
ASoC: soc-component: add snd_soc_component_compr_get_metadata()
include/sound/soc-component.h | 22 +++
sound/soc/soc-component.c | 255 ++++++++++++++++++++++++++++++++
sound/soc/soc-compress.c | 263 ++++------------------------------
3 files changed, 303 insertions(+), 237 deletions(-)
--
2.25.1