This symbol is not used outside of hdmi-codec.c, so marks it static.
Fix the following sparse warning:
sound/soc/codecs/hdmi-codec.c:750:25: warning: symbol
'hdmi_codec_controls' was not declared. Should it be static?
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Link: https://lore.kernel.org/r/1623822941-3077-1-git-send-email-jiapeng.chong@linux.alibaba.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Return statements in functions returning bool should use true/false
instead of 1/0.
Fix the following coccicheck warning:
./sound/soc/codecs/wcd938x.c:1190:9-10: WARNING: return of 0/1 in
function 'wcd938x_volatile_register' with return type bool.
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
Link: https://lore.kernel.org/r/1623811535-15841-1-git-send-email-yang.lee@linux.alibaba.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Clean up the following includecheck warnings:
./sound/soc/codecs/wcd938x.c: sound/soc.h is included more than once.
./sound/soc/codecs/wcd938x-sdw.c: sound/soc.h is included more than
once.
No functional change.
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Link: https://lore.kernel.org/r/1623822667-130511-1-git-send-email-jiapeng.chong@linux.alibaba.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Various devices(such as the Motorola Moto G7 Power, codename ocean) use
the Quinary MI2S ports for reproducing audio. Add support to them in
kernel.
Signed-off-by: Gabriel David <ultracoolguy@disroot.org>
Gabriel David (4):
ASoC: q6afe: dt-bindings: Add QUIN_MI2S_RX/TX
ASoC: qdsp6: q6afe: Add Quinary MI2S ports
ASoC: qdsp6: q6afe-dai: Add Quinary MI2S ports
ASoC: qdsp6: q6routing: Add Quinary MI2S ports
include/dt-bindings/sound/qcom,q6afe.h | 2 ++
sound/soc/qcom/qdsp6/q6afe-dai.c | 41 ++++++++++++++++++++++++++
sound/soc/qcom/qdsp6/q6afe.c | 8 +++++
sound/soc/qcom/qdsp6/q6afe.h | 2 +-
sound/soc/qcom/qdsp6/q6routing.c | 11 +++++++
5 files changed, 63 insertions(+), 1 deletion(-)
---
As a warning, I'm currently the only tester of these patches. If that's
gonna be a problem then I understand.
--
2.31.1
For some reason we ended up with cyclic dependency between snd_soc_wcd938x
and snd_soc_wcd938x_sdw modules.
Remove this cyclic dependency by handling them in respective modules.
Without this below error is reported during make modules_install
depmod: ERROR: Cycle detected: snd_soc_wcd938x -> snd_soc_wcd938x_sdw -> snd_soc_wcd938x
depmod: ERROR: Found 2 modules in dependency cycles!
Fixes: 0454422288 ("ASoC: codecs: wcd938x: add audio routing and Kconfig")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210615132829.23067-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This patch adds MI2S mixers to Quinary ports
Signed-off-by: Gabriel David <ultracoolguy@disroot.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210605022206.13226-5-ultracoolguy@disroot.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This patch adds support to Quinary MI2S ports supported in AFE.
Signed-off-by: Gabriel David <ultracoolguy@disroot.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210605022206.13226-4-ultracoolguy@disroot.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This patch adds support for the Quinary MI2S ports on LPASS.
Signed-off-by: Gabriel David <ultracoolguy@disroot.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210605022206.13226-3-ultracoolguy@disroot.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This patch adds bindings required for Quinary MI2S ports on AFE.
Signed-off-by: Gabriel David <ultracoolguy@disroot.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210605022206.13226-2-ultracoolguy@disroot.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The snd_soc_dai_ops structures is only stored in the ops field of a
snd_soc_dai_driver structure, so make the snd_soc_dai_ops structure
const to allow the compiler to put it in read-only memory.
Signed-off-by: Pu Lehui <pulehui@huawei.com>
Link: https://lore.kernel.org/r/20210615113324.238837-1-pulehui@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This series squashes all the ASoC machine drivers into a single one,
this change was suggested by Jon Hunter. It also sets driver_name and
components string of each card, allowing userspace alsa-lib to find
UCMs at predictable path.
Changelog:
v6: - Fixed missed configuration of AC97 clock rate for the WM9712 codec
in the unified driver.
- Added new patch that removes now obsolete "utils" helpers and moves
code into the unified driver.
ASoC: tegra: Squash utils into common machine driver
v5: - The v4 removed the customization of components string for Nexus 7,
but I missed to remove the "components" hook which is unused now,
it's removed in v5 for consistency.
- Slightly improved naming of the common 12MHz MCLK rate function
to make it more consistent with the rest of the driver functions.
v4: - Moved out mclk_rate callback that is currently used only by WM8903
machine driver from the common driver. This was suggested by Jon Hunter.
- Dropped patch which was setting custom components string for Nexus 7.
Jaroslav Kysela wants it to be specified in a device-tree, but the
components string doesn't have a firm specification for today. It's
better to drop this change for now since it's optional anyways.
- Fixed compilation error that was reported by kernel robot for v3.
- Jaroslav Kysela merged alsa-ucm-conf PR [1] which added UCMs for
Nexus 7 and Acer A500. The UCMs are fully working using a combination
of updated kernel + alsa-ucm-conf master + alsa-lib master, meaning
that they will work with the next releases of kernel and ALSA userspace
upstream packages.
- Added ack from Jaroslav Kysela to the "Specify components string for
each card" patch that he gave to v3.
v3: - Added components string as was suggested by Jaroslav Kysela to v2.
- Renamed MCLK rate function that is used by max98090 and other codecs
to make it look more generic. Added option for specifying CLK ID per
device. This all was suggested by Jon Hunter to v2.
v2: - Dropped use of of_device_compatible_match(), like it was suggested
by Rob Herring in a review comment to v1.
- Added patch that sets card's driver_name of as Tegra ASoC drivers.
In a comment to v1 Jaroslav Kysela suggested that the Tegra drivers
don't set the card name properly and he was right.
I opened pull request with the new Tegra UCMs and updated lookup paths
for older UCMs [1].
[1] https://github.com/alsa-project/alsa-ucm-conf/pull/92
Dmitry Osipenko (4):
ASoC: tegra: Set driver_name=tegra for all machine drivers
ASoC: tegra: Unify ASoC machine drivers
ASoC: tegra: Specify components string for each card
ASoC: tegra: Squash utils into common machine driver
sound/soc/tegra/Kconfig | 12 +
sound/soc/tegra/Makefile | 19 +-
sound/soc/tegra/tegra_alc5632.c | 259 --------
sound/soc/tegra/tegra_asoc_machine.c | 854 +++++++++++++++++++++++++++
sound/soc/tegra/tegra_asoc_machine.h | 49 ++
sound/soc/tegra/tegra_asoc_utils.c | 225 -------
sound/soc/tegra/tegra_asoc_utils.h | 38 --
sound/soc/tegra/tegra_max98090.c | 276 ---------
sound/soc/tegra/tegra_rt5640.c | 222 -------
sound/soc/tegra/tegra_rt5677.c | 324 ----------
sound/soc/tegra/tegra_sgtl5000.c | 211 -------
sound/soc/tegra/tegra_wm8753.c | 185 ------
sound/soc/tegra/tegra_wm8903.c | 351 +++--------
sound/soc/tegra/tegra_wm9712.c | 166 ------
sound/soc/tegra/trimslice.c | 172 ------
15 files changed, 996 insertions(+), 2367 deletions(-)
delete mode 100644 sound/soc/tegra/tegra_alc5632.c
create mode 100644 sound/soc/tegra/tegra_asoc_machine.c
create mode 100644 sound/soc/tegra/tegra_asoc_machine.h
delete mode 100644 sound/soc/tegra/tegra_asoc_utils.c
delete mode 100644 sound/soc/tegra/tegra_asoc_utils.h
delete mode 100644 sound/soc/tegra/tegra_max98090.c
delete mode 100644 sound/soc/tegra/tegra_rt5640.c
delete mode 100644 sound/soc/tegra/tegra_rt5677.c
delete mode 100644 sound/soc/tegra/tegra_sgtl5000.c
delete mode 100644 sound/soc/tegra/tegra_wm8753.c
delete mode 100644 sound/soc/tegra/tegra_wm9712.c
delete mode 100644 sound/soc/tegra/trimslice.c
--
2.30.2
There no users left of the utils other than the new common machine driver.
Squash the utils into the common machine driver in order to simplify code.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20210529154649.25936-5-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Specify components string for each card of each supported device. It's
a free form string that describes audio hardware configuration. This
information is useful for ALSA UCM rules. It allows to generalize UCM
rules, potentially removing a need to add new UCM rule for each device.
Acked-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20210529154649.25936-4-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Squash all machine drivers into a single-universal one. This reduces
code duplication, eases addition of a new drivers and upgrades older
code to a modern Linux kernel APIs.
Suggested-by: Jonathan Hunter <jonathanh@nvidia.com>
Co-developed-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Ion Agorria <ion@agorria.com>
Co-developed-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20210529154649.25936-3-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
The driver_name="tegra" is now required by the newer ALSA UCMs, otherwise
Tegra UCMs don't match by the path/name.
All Tegra machine drivers are specifying the card's name, but it has no
effect if model name is specified in the device-tree since it overrides
the card's name. We need to set the driver_name to "tegra" in order to
get a usable lookup path for the updated ALSA UCMs. The new UCM lookup
path has a form of driver_name/card_name.
The old lookup paths that are based on driver module name continue to
work as before. Note that UCM matching never worked for Tegra ASoC drivers
if they were compiled as built-in, this is fixed by supporting the new
naming scheme.
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20210529154649.25936-2-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
The platform_get_irq() prints error message telling that interrupt is
missing, hence there is no need to duplicated that message.
Signed-off-by: Tan Zhongjun <tanzhongjun@yulong.com>
Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Link: https://lore.kernel.org/r/20210610040037.1064-1-hbut_tan@163.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Use the devm_platform_ioremap_resource_byname() helper instead of
calling platform_get_resource_byname() and devm_ioremap_resource()
separately.
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20210611050235.4182746-1-yangyingliang@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add four speaker support on MI2S secondary block
by using I2S SD1 line on gpio52 pin, and add channel map
control support in the lpass-cpu audio driver.
Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210609133039.4648-1-srivasam@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The Realtek rt5640 codec driver can be used with the generic sound card
drivers, so it should be selectable. For example, with the addition
of #sound-dai-cells = <0> property in DT, it can be used with simple and
graph card drivers.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://lore.kernel.org/r/20210612200650.1301661-1-martin.blumenstingl@googlemail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Clean up the check for irq.dev_err is superfluous as platform_get_irq()
already prints an error.Remove curly braces to confirm to styling
requirements.
Signed-off-by: Tan Zhongjun <tanzhongjun@yulong.com>
Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Link: https://lore.kernel.org/r/20210610125052.1280-1-hbut_tan@163.com
Signed-off-by: Mark Brown <broonie@kernel.org>
In case, where the loops are not executed for a reason, the uninitialized
variable 'err' is returned to the caller. Make code fully predictible
and assign zero in the declaration.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Cc: Mark Brown <broonie@kernel.org>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/20210614071746.1787072-1-perex@perex.cz
Signed-off-by: Mark Brown <broonie@kernel.org>
This patchset adds support for Qualcomm WCD938X codec.
Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC
connected over SoundWire. This device has two SoundWire devices, RX and
TX respectively supporting 4 x ADCs, ClassH, Ear, Aux PA, 2xHPH,
7 x TX diff inputs, 8 DMICs and MBHC.
Eventhough this device has two SoundWire devices, only tx device has
access to main codec Control/Status Registers!
For codec driver to be functional it would need both tx and rx Soundwire devices
to be up and this is taken care by using device component framework and device-links
are used to ensure proper pm dependencies. Ex tx does not enter suspend
before rx or codec is suspended.
This patchset along with other SoundWire patches on the list
have been tested on SM8250 MTP device.
Thanks,
srini
Changes since v8:
- moved Kconfig and Makefile changes to last patch as suggested by Mark
- removed array of enums and used static entries instead. Suggested by Mark
- return true if put succeeds, Suggested by Mark
- removed some unneeded semi-colons in switch
Srinivas Kandagatla (9):
ASoC: dt-bindings: wcd938x: add bindings for wcd938x
ASoC: codecs: wcd-clsh: add new version support
ASoC: codecs: wcd938x: add basic driver
ASoC: dt-bindings: wcd938x-sdw: add bindings for wcd938x-sdw
ASoC: codecs: wcd938x-sdw: add SoundWire driver
ASoC: codecs: wcd938x: add basic controls
ASoC: codecs: wcd938x: add playback dapm widgets
ASoC: codecs: wcd938x: add capture dapm widgets
ASoC: codecs: wcd938x: add audio routing and Kconfig
.../bindings/sound/qcom,wcd938x-sdw.yaml | 70 +
.../bindings/sound/qcom,wcd938x.yaml | 146 +
sound/soc/codecs/Kconfig | 14 +
sound/soc/codecs/Makefile | 4 +
sound/soc/codecs/wcd-clsh-v2.c | 348 +-
sound/soc/codecs/wcd-clsh-v2.h | 16 +
sound/soc/codecs/wcd938x-sdw.c | 315 ++
sound/soc/codecs/wcd938x.c | 3753 +++++++++++++++++
sound/soc/codecs/wcd938x.h | 720 ++++
9 files changed, 5376 insertions(+), 10 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd938x-sdw.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml
create mode 100644 sound/soc/codecs/wcd938x-sdw.c
create mode 100644 sound/soc/codecs/wcd938x.c
create mode 100644 sound/soc/codecs/wcd938x.h
--
2.21.0