aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-10-26ASoC: qdsp6: audioreach: add q6prm supportSrinivas Kandagatla4-0/+285
Add support to q6prm (Proxy Resource Manager) module used for clock resources Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add q6apm lpass dai supportSrinivas Kandagatla3-0/+265
Add support to Audio port dais on LPASS Audio IP using existing common q6dsp-lpass-ports. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add q6apm-dai supportSrinivas Kandagatla3-0/+422
Add support to pcm dais in Audio Process Manager. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add topology supportSrinivas Kandagatla6-2/+1327
Add ASoC topology support in audioreach Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add Kconfig and MakefileSrinivas Kandagatla2-0/+7
Now that all the code for audioreach and q6apm are in at this point to be able to compile, start adding Kconfig and Makefile changes. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add module configuration command helpersSrinivas Kandagatla3-0/+822
Audioreach module configuration helpers, which will be used by the q6apm-dai driver. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add q6apm supportSrinivas Kandagatla4-0/+1082
Add support to q6apm (Audio Process Manager) component which is core Audioreach service running in the DSP. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: audioreach: add basic pkt alloc supportSrinivas Kandagatla2-0/+923
Add basic helper functions for AudioReach. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: add q6apm digital audio stream bindingsSrinivas Kandagatla1-0/+53
On AudioReach audio Framework, Audio Streams (PCM/Compressed) are managed by Q6APM(Audio Process Manager) service. This patch adds bindings for this DAIs exposed by the DSP. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: lpass-clocks: add q6prm clocks compatibleSrinivas Kandagatla1-0/+21
On AudioReach audio Framework access to LPASS ports is via Q6PRM (Proxy Resource Manager) service, so add a dedicated lpass-clock compatible string for this. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: q6dsp: add q6apm-lpass-dai compatibleSrinivas Kandagatla1-0/+27
on AudioReach audio Framework access to LPASS ports is via Q6APM(Audio Process Manager) service, so add a dedicated compatible string for this. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: q6afe-clocks: move audio-clocks to common fileSrinivas Kandagatla4-173/+232
Move common parts of q6afe-clocks to q6dsp-lpass-clocks so that we could reuse most of the driver for new Q6DSP audio frameworks. This is to make the code reuseable for new Q6DSP AudioReach framework. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qdsp6: q6afe-dai: move lpass audio ports to common fileSrinivas Kandagatla4-673/+667
Various Q6DSP frameworks will use LPASS Audio IP, so move all the hardware specific details to a common file so that they could be reused across multiple Q6DSP frameworks. In this case all the audio ports definitions can be moved to a common file to be able to reuse across multiple Q6DSP frameworks. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: rename q6afe.h to q6dsp-lpass-ports.hSrinivas Kandagatla2-201/+210
move all LPASS audio ports defines from q6afe.h to q6dsp-lpass-ports.h as these belong to LPASS IP. Also this move helps in reusing this header across multiple audio frameworks on Qualcomm Audio DSP. This patch is split out of the dt-bindings patch to enable easy review. Signed-off-by: Srinivas Kandagatla <[email protected]> Acked-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: move LPASS clocks related bindings out of q6afeSrinivas Kandagatla2-23/+56
q6afe (Audio Front End) is one of the DSP service that handles both LPASS (Low Power Audio SubSystem) Audio ports and LPASS clocks. As LPASS is a hardwware IP and commonly used by Qualcomm Audio DSP. In order to allow multiple DSP frameworks to use these bindings its best to move it out from the dsp specific bindings. For compatibility reasons and not breaking which is already working we still maintain same compatible string "qcom,q6afe-clocks" Also as part of this change convert these LPASS clocks related bindings into yaml format. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: dt-bindings: move LPASS dai related bindings out of q6afeSrinivas Kandagatla2-158/+178
q6afe (Audio Front End) is one of the DSP service that handles both LPASS (Low Power Audio SubSystem) Audio ports and LPASS clocks. As LPASS is a hardwware IP and commonly used by Qualcomm Audio DSP. In order to allow multiple DSP frameworks to use these bindings its best to move it out from the dsp specific bindings. For compatibility reasons and not breaking which is already working we still maintain same compatible string "qcom,q6afe-dais" Also as part of this change convert these LPASS dai related bindings into yaml format. Signed-off-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26Merge tag '[email protected]' of ↵Mark Brown6-188/+501
https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into v11_20211026_srinivas_kandagatla_asoc_qcom_add_audioreach_support for audioreach support v5.15-rc1 + 20210927135559.738-[23456][email protected] This immutable branch is based on v5.15-rc1 and contains the following patches extending the existig APR driver to also implement GPR: [email protected] [email protected] [email protected] [email protected] [email protected]
2021-10-26ASoC: codecs: Change bulk clock voting to optional voting in digital codecsSrinivasa Rao Mandadapu3-3/+3
Change bulk clock frequency voting to optional bulk voting in va, rx and tx macros to accommodate both ADSP and ADSP bypass based lpass architectures. Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Co-developed-by: Venkata Prasad Potturu <[email protected]> Signed-off-by: Venkata Prasad Potturu <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Tested-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: codecs: tx-macro: Update tx default valuesSrinivasa Rao Mandadapu1-2/+17
Update mic control register default values to hardware reset values lpass sc7280. Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Co-developed-by: Venkata Prasad Potturu <[email protected]> Signed-off-by: Venkata Prasad Potturu <[email protected]> Tested-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: codecs: tx-macro: Enable tx top soundwire mic clockSrinivasa Rao Mandadapu1-0/+3
Enable tx path soundwire mic0 and mic1 clock. Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Co-developed-by: Venkata Prasad Potturu <[email protected]> Signed-off-by: Venkata Prasad Potturu <[email protected]> Tested-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qcom: dt-bindings: Add compatible names for lpass sc7280 digital codecsSrinivasa Rao Mandadapu4-4/+12
Update compatible names in va, wsa, rx and tx macro codes for lpass sc7280 Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Co-developed-by: Venkata Prasad Potturu <[email protected]> Signed-off-by: Venkata Prasad Potturu <[email protected]> Tested-by: Srinivas Kandagatla <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: qcom: Add compatible names in va,wsa,rx,tx codec drivers for sc7280Srinivasa Rao Mandadapu4-0/+4
Add compatible names for sc7280 based targets in digital codec drivers va,wsa,rx and tx. Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Co-developed-by: Venkata Prasad Potturu <[email protected]> Signed-off-by: Venkata Prasad Potturu <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Tested-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: nau8825: add clock management for power savingDavid Lin1-2/+33
Adjust dapm widget to manage clock from power event for power saving. Signed-off-by: David Lin <[email protected]> Signed-off-by: Mac Chiang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-26ASoC: nau8825: add set_jack coponment supportDavid Lin1-0/+13
Use set_jack ops to set jack for new machine drivers. Meanwhile, the old machine drivers can still call previous export function "nau8825_enable_jack_detect". Signed-off-by: David Lin <[email protected]> Signed-off-by: Mac Chiang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: topology: Fix stub for snd_soc_tplg_component_remove()Mark Brown1-2/+1
When removing the index argument from snd_soc_topology_component_remove() commit a5b8f71c5477f (ASoC: topology: Remove multistep topology loading) forgot to update the stub for !SND_SOC_TOPOLOGY use, causing build failures for anything that tries to make use of it. Fixes: a5b8f71c5477f (ASoC: topology: Remove multistep topology loading) Signed-off-by: Mark Brown <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: qcom: common: Respect status = "disabled" on DAI link nodesStephan Gerhold1-2/+2
At the moment, the DAI link nodes in the device tree always have to be specified completely in each device tree. However, the available interfaces (e.g. Primary/Secondary/Tertiary/Quaternary MI2S) are common for all devices of a SoC, so the majority of the definitions can be placed in a common device tree include to reduce boilerplate. Make it possible to define such stubs in device tree includes by respecting the "status" property for the DAI link nodes. This is a trivial change that just requires switching to the _available_ OF functions that check the "status" property additionally. This allows defining a stub like: sound_dai_quaternary: dai-link-quaternary { link-name = "Quaternary MI2S"; status = "disabled"; /* Needs extra codec configuration */ cpu { sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; }; platform { sound-dai = <&q6routing>; }; }; where the codec would be filled in by the device-specific device tree. For existing device trees this change does not make any difference. A missing "status" property is treated like status = "okay". Cc: Srinivas Kandagatla <[email protected]> Signed-off-by: Stephan Gerhold <[email protected]> Reviewed-by: Srinivas Kandagatla <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: dt-bindings: lpass: add binding headers for digital codecsSrinivasa Rao Mandadapu1-3/+29
Add header defining for lpass internal digital codecs rx,tx and va dai node id's. Signed-off-by: Srinivasa Rao Mandadapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25Merge series "ASoC: wm8962: Conversion to json-schema and fix" from Geert ↵Mark Brown2-43/+118
Uytterhoeven <[email protected]>: Hi all, This patch series converts the Wolfson WM8962 Device Tree binding documentation to json-schema, after fixing an issue in the imx8mn-beacon DTS file. Thanks for your comments! Geert Uytterhoeven (2): arm64: dts: imx: imx8mn-beacon: Drop undocumented clock-names reference ASoC: dt-bindings: wlf,wm8962: Convert to json-schema .../devicetree/bindings/sound/wlf,wm8962.yaml | 118 ++++++++++++++++++ .../devicetree/bindings/sound/wm8962.txt | 43 ------- .../freescale/imx8mn-beacon-baseboard.dtsi | 1 - 3 files changed, 118 insertions(+), 44 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8962.yaml delete mode 100644 Documentation/devicetree/bindings/sound/wm8962.txt -- 2.25.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
2021-10-25ASoC: dt-bindings: wlf,wm8962: Convert to json-schemaGeert Uytterhoeven2-43/+118
Convert the Wolfson WM8962 Ultra-Low Power Stereo CODEC Device Tree binding documentation to json-schema. Add missing *-supply and port properties. Update the example. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Charles Keepax <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/b0868d2f62fd57499c79d96298e99e5f9e4fbc76.1634565154.git.geert+renesas@glider.be Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: cs42l42: Prevent NULL pointer deref in interrupt handlerRichard Fitzgerald2-20/+10
The interrupt handling code was getting the struct device* from a struct snd_soc_component* stored in struct cs42l42_private. If the interrupt was asserted before ASoC calls component_probe() the snd_soc_component* will be NULL. The stored snd_soc_component* is not actually used for anything other than indirectly getting the struct device*. Remove it, and store the struct device* in struct cs42l42_private. Signed-off-by: Richard Fitzgerald <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: wm8962: Convert to devm_clk_get_optional()Geert Uytterhoeven1-11/+2
Use the existing devm_clk_get_optional() helper instead of building a similar construct on top of devm_clk_get() that fails to handle all errors but -EPROBE_DEFER. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Charles Keepax <[email protected]> Link: https://lore.kernel.org/r/c2a8a1a628804a4439732d02847e25c227083690.1634565564.git.geert+renesas@glider.be Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: fix unmet dependency on GPIOLIB for SND_SOC_MAX98357AJulian Braha1-1/+1
When SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH is selected, and GPIOLIB is not selected, Kbuild gives the following warnings: WARNING: unmet direct dependencies detected for SND_SOC_MAX98357A Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n] Selected by [y]: - SND_SOC_INTEL_DA7219_MAX98357A_GENERIC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] WARNING: unmet direct dependencies detected for SND_SOC_DMIC Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n] Selected by [y]: - SND_SOC_INTEL_DA7219_MAX98357A_GENERIC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] WARNING: unmet direct dependencies detected for SND_SOC_INTEL_DA7219_MAX98357A_GENERIC Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] && GPIOLIB [=n] Selected by [y]: - SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] && SND_SOC_INTEL_KBL [=y] && I2C [=y] && ACPI [=y] && (MFD_INTEL_LPSS [=y] || COMPILE_TEST [=n]) This is because SND_SOC_DMIC and SND_SOC_MAX98357A are selected by SND_SOC_INTEL_DA7219_MAX98357A_GENERIC, which is also selected by SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH. However, the selectors do not depend on or select GPIOLIB, despite SND_SOC_DMIC and SND_SOC_MAX98357A depending on GPIOLIB. These unmet dependency bugs were detected by Kismet, a static analysis tool for Kconfig. Please advise if this is not the appropriate solution. Signed-off-by: Julian Braha <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: cs35l41: Make cs35l41_remove() return voidUwe Kleine-König4-6/+8
Up to now cs35l41_remove() returns zero unconditionally. Make it return void instead which makes it easier to see in the callers that there is no error to handle. Also the return value of i2c, platform and spi remove callbacks is ignored anyway. Signed-off-by: Uwe Kleine-König <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoc: wm8900: Drop empty spi_driver remove callbackUwe Kleine-König1-6/+0
A driver with a remove callback that just returns 0 behaves identically to a driver with no remove callback at all. So simplify accordingly. Signed-off-by: Uwe Kleine-König <[email protected]> Acked-by: Charles Keepax <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: tegra: Set default card name for TrimsliceDmitry Osipenko1-0/+1
The default card name for Trimslice device should be "tegra-trimslice". It got lost by accident during unification of machine sound drivers, fix it. Cc: <[email protected]> Fixes: cc8f70f56039 ("ASoC: tegra: Unify ASoC machine drivers") Signed-off-by: Dmitry Osipenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: tegra: Restore AC97 supportDmitry Osipenko2-10/+50
The device-tree of AC97 codecs need to be parsed differently from I2S codecs, plus codec device may need to be created. This was missed by the patch that unified machine drivers into a single driver, fix it. It should restore audio on Toradex Colibri board. Cc: <[email protected]> Fixes: cc8f70f56039 ("ASoC: tegra: Unify ASoC machine drivers") Signed-off-by: Dmitry Osipenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoc: wm8731: Drop empty spi_driver remove callbackUwe Kleine-König1-6/+0
A driver with a remove callback that just returns 0 behaves identically to a driver with no remove callback at all. So simplify accordingly. Signed-off-by: Uwe Kleine-König <[email protected]> Acked-by: Charles Keepax <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: doc: update codec example codeJohn Keeping1-4/+4
As the codec API has evolved the documentation has not kept up and still uses old fields that have been removed. Update the examples to represent the current API. Signed-off-by: John Keeping <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-25ASoC: amd: acp: Add acp_machine struct for renoir platform.Ajit Kumar Pandey2-1/+19
Add acpi_mach struct for renoir platform to select machine driver based on codec and amp ACPI id. Signed-off-by: Ajit Kumar Pandey <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-23Merge series "ASoC: Add common modules support for ACP hw block" from Ajit ↵Mark Brown13-0/+1993
Kumar Pandey <[email protected]>: changes since v3: - rebase and fixes merge conflict. - Fixed kernel autobot warning. Ajit Kumar Pandey (8): ASoC: amd: Add common framework to support I2S on ACP SOC ASoC: amd: acp: Add I2S support on Renoir platform ASoC: amd: acp: Add callback for machine driver on ACP ASoC: amd: acp: Add generic machine driver support for ACP cards ASoC: amd: acp: Add legacy sound card support for Chrome audio ASoC: amd: acp: Add SOF audio support on Chrome board ASoC: amd: acp: Add support for Maxim amplifier codec ASoC: amd: acp: Add support for RT5682-VS codec sound/soc/amd/Kconfig | 2 + sound/soc/amd/Makefile | 1 + sound/soc/amd/acp/Kconfig | 51 +++ sound/soc/amd/acp/Makefile | 26 ++ sound/soc/amd/acp/acp-i2s.c | 340 +++++++++++++++ sound/soc/amd/acp/acp-legacy-mach.c | 104 +++++ sound/soc/amd/acp/acp-mach-common.c | 600 +++++++++++++++++++++++++++ sound/soc/amd/acp/acp-mach.h | 57 +++ sound/soc/amd/acp/acp-platform.c | 315 ++++++++++++++ sound/soc/amd/acp/acp-renoir.c | 144 +++++++ sound/soc/amd/acp/acp-sof-mach.c | 131 ++++++ sound/soc/amd/acp/amd.h | 146 +++++++ sound/soc/amd/acp/chip_offset_byte.h | 76 ++++ 13 files changed, 1993 insertions(+) create mode 100644 sound/soc/amd/acp/Kconfig create mode 100644 sound/soc/amd/acp/Makefile create mode 100644 sound/soc/amd/acp/acp-i2s.c create mode 100644 sound/soc/amd/acp/acp-legacy-mach.c create mode 100644 sound/soc/amd/acp/acp-mach-common.c create mode 100644 sound/soc/amd/acp/acp-mach.h create mode 100644 sound/soc/amd/acp/acp-platform.c create mode 100644 sound/soc/amd/acp/acp-renoir.c create mode 100644 sound/soc/amd/acp/acp-sof-mach.c create mode 100644 sound/soc/amd/acp/amd.h create mode 100644 sound/soc/amd/acp/chip_offset_byte.h -- 2.25.1
2021-10-23Merge series "Add Yellow Carp platform ASoC driver" from Vijendar Mukunda ↵Mark Brown8-0/+1562
<[email protected]>: Yellow Carp platform is new APU series based on acp6.x design. This patch set adds an ASoC driver for the ACP (Audio CoProcessor) block on AMD Yellow Carp APU with DMIC endpoint support. changes since v1: - fixed SPDX commenting style in acp6x pci driver. - fixed Copyright commenting style in acp6x pci driver, pdm dma driver and machine driver files. - fixed local variable check logic in acp6x_power_on() function. - fixed Kconfig indentation issue - removed irq_flag local variable in irq handler. - add dmi info check in machine driver probe Vijendar Mukunda (13): ASoC: amd: add Yellow Carp ACP6x IP register header ASoC: amd: add Yellow Carp ACP PCI driver ASoC: amd: add acp6x init/de-init functions ASoC: amd: add platform devices for acp6x pdm driver and dmic driver ASoC: amd: add acp6x pdm platform driver ASoC: amd: add acp6x irq handler ASoC: amd: add acp6x pdm driver dma ops ASoC: amd: add acp6x pci driver pm ops ASoC: amd: add acp6x pdm driver pm ops ASoC: amd: enable Yellow carp acp6x drivers build ASoC: amd: create platform device for acp6x machine driver ASoC: amd: add YC machine driver using dmic ASoC: amd: enable Yellow Carp platform machine driver build sound/soc/amd/Kconfig | 21 + sound/soc/amd/Makefile | 1 + sound/soc/amd/yc/Makefile | 9 + sound/soc/amd/yc/acp6x-mach.c | 194 ++++++++++ sound/soc/amd/yc/acp6x-pdm-dma.c | 448 ++++++++++++++++++++++ sound/soc/amd/yc/acp6x.h | 107 ++++++ sound/soc/amd/yc/acp6x_chip_offset_byte.h | 444 +++++++++++++++++++++ sound/soc/amd/yc/pci-acp6x.c | 338 ++++++++++++++++ 8 files changed, 1562 insertions(+) create mode 100644 sound/soc/amd/yc/Makefile create mode 100644 sound/soc/amd/yc/acp6x-mach.c create mode 100644 sound/soc/amd/yc/acp6x-pdm-dma.c create mode 100644 sound/soc/amd/yc/acp6x.h create mode 100644 sound/soc/amd/yc/acp6x_chip_offset_byte.h create mode 100644 sound/soc/amd/yc/pci-acp6x.c -- 2.25.1
2021-10-23Merge series "ASoC: meson: axg: fix TDM channel order sync" from Jerome ↵Mark Brown2-5/+22
Brunet <[email protected]>: On the Amlogic AXG series, the TODDR FIFO may get out of sync with the TDM decoder if the decoder is started before the FIFO. The channel appears shifted in memory in an unpredictable way. To fix this, the trick is to start the FIFO before the TDM decoder. This way the FIFO is already waiting when the 1st channel is produced and it is correctly placed in memory. Jerome Brunet (2): ASoC: meson: axg-card: make links nonatomic ASoC: meson: axg-tdm-interface: manage formatters in trigger sound/soc/meson/axg-card.c | 1 + sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) -- 2.33.0
2021-10-23ASoC: rt5682s: Downsizing the DAC volume scaleDerek Fang1-2/+2
Use 0.75db/step of DAC volume instead of 1.5 to get a more smooth volume curve. Signed-off-by: Derek Fang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-22ASoC: meson: axg-tdm-interface: manage formatters in triggerJerome Brunet1-5/+21
So far, the formatters have been reset/enabled using the .prepare() callback. This was done in this callback because walking the formatters use a mutex so it could not be done in .trigger(), which is atomic by default. It turns out there is a problem on capture path of the AXG series. The FIFO may get out of sync with the TDM decoder if the IP are not enabled in a specific order. The FIFO must be enabled before the formatter starts producing data. IOW, we must deal with FE before the BE. The .prepare() callback is called on the BEs before the FE so it is not OK for the AXG. The .trigger() callback order can be configured, and it deals with the FE before the BEs by default. To solve our problem, we just need to start and stop the formatters from the .trigger() callback. It is OK do so now that the links have been made 'nonatomic' in the card driver. Signed-off-by: Jerome Brunet <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-22ASoC: meson: axg-card: make links nonatomicJerome Brunet1-0/+1
Non atomic operations need to be performed in the trigger callback of the TDM interfaces. Those are BEs but what matters is the nonatomic flag of the FE in the DPCM context. Just set nonatomic for everything so, at least, it is clear. Signed-off-by: Jerome Brunet <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-22ASoC: cs42l42: Remove unused runtime_suspend/runtime_resume callbacksRichard Fitzgerald1-50/+1
The driver has runtime_suspend and runtime_resume callbacks, but pm_runtime is never enabled so these functions won't be called. They could not be used anyway because the runtime_suspend would cause jack detect to stop working. These functions are unused - delete them. Signed-off-by: Richard Fitzgerald <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-22ASoC: fix unmet dependency on GPIOLIBJulian Braha1-1/+2
When SND_SOC_SC7180 or SND_SOC_STORM is selected, and GPIOLIB is not selected, Kbuild gives the following warning: WARNING: unmet direct dependencies detected for SND_SOC_MAX98357A Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n] Selected by [y]: - SND_SOC_STORM [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_QCOM [=y] - SND_SOC_SC7180 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_QCOM [=y] && I2C [=y] This is because SND_SOC_MAX98357A is selected by SND_SOC_STORM and SND_SOC_SC7180, but these config options do not select or depend on GPIOLIB, despite SND_SOC_MAX98357A depending on GPIOLIB. These unmet dependency bugs were detected by Kismet, a static analysis tool for Kconfig. Please advise if this is not the appropriate solution. Signed-off-by: Julian Braha <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
2021-10-21Merge branch 'asoc-5.15' into asoc-5.16Mark Brown4-60/+3
2021-10-20Merge series "ASoC: qcom: sm8250: add support for TX and RX Macro dais" from ↵Mark Brown1-0/+79
Srinivas Kandagatla <[email protected]>: This patchset adds support for testing WCD938X connected via TX and RX Macros on SM8250 MTP. Srinivas Kandagatla (2): ASoC: qcom: sm8250: add support for TX and RX Macro dais ASoC: qcom: sm8250: Add Jack support sound/soc/qcom/sm8250.c | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) -- 2.21.0
2021-10-20ASoC: amd: acp: Add support for RT5682-VS codecAjit Kumar Pandey4-0/+112
In newer variants primary codec is rt5682vs. Add support for newer codec variants in generic machine driver module and define driver data to register SOF sound card. Signed-off-by: Ajit Kumar Pandey <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>