summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-09-28ASoC: SOF: pm: fix a stale commentRanjani Sridharan1-1/+1
There is no restore_stream flag anymmore. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Bard Liao <bard.liao@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20210928074030.30553-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-28ASoC: SOF: Intel: hda-stream: Print stream name on STREAM_SD_OFFSET timeoutPeter Ujfalusi1-26/+59
In order to provide more information in case of timeout observed while reading STREAM_SD_OFFSET, print out the stream name or in case there is no audio stream associated (like dma-trace), print "--" Signed-off-by: Peter Ujfalusi <peter.ujfalusi@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/20210928081744.4785-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27Merge series "add driver to support firmware loading on Cirrus Logic DSPs" ↵Mark Brown21-3118/+3792
from Simon Trimmer <simont@opensource.cirrus.com>: This series of patches gradually separates the ASoC specific wm_adsp code from that required to manage firmware in Cirrus Logic DSPs. The series starts with renaming, progresses to splitting the functionality before finally moving the independent functionality into drivers/firmware so that it can be used by both the existing ASoC wm_adsp and new non-audio parts. Charles Keepax (3): ASoC: wm_adsp: Move check for control existence ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed buffers ASoC: wm_adsp: Move sys_config_size to wm_adsp Simon Trimmer (13): ASoC: wm_adsp: Remove use of snd_ctl_elem_type_t ASoC: wm_adsp: Cancel ongoing work when removing controls ASoC: wm_adsp: Rename generic DSP support ASoC: wm_adsp: Introduce cs_dsp logging macros ASoC: wm_adsp: Separate some ASoC and generic functions ASoC: wm_adsp: Split DSP power operations into helper functions ASoC: wm_adsp: Separate generic cs_dsp_coeff_ctl handling ASoC: wm_adsp: Move check of dsp->running to better place ASoC: wm_adsp: Pass firmware names as parameters when starting DSP core ASoC: wm_adsp: move firmware loading to client ASoC: wm_adsp: Split out struct cs_dsp from struct wm_adsp ASoC: wm_adsp: Separate wm_adsp specifics in cs_dsp_client_ops firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPs MAINTAINERS | 11 + drivers/firmware/Kconfig | 1 + drivers/firmware/Makefile | 1 + drivers/firmware/cirrus/Kconfig | 5 + drivers/firmware/cirrus/Makefile | 3 + drivers/firmware/cirrus/cs_dsp.c | 3109 ++++++++++++++++ include/linux/firmware/cirrus/cs_dsp.h | 242 ++ .../linux/firmware/cirrus}/wmfw.h | 8 +- sound/soc/codecs/Kconfig | 1 + sound/soc/codecs/cs47l15.c | 22 +- sound/soc/codecs/cs47l24.c | 20 +- sound/soc/codecs/cs47l35.c | 24 +- sound/soc/codecs/cs47l85.c | 32 +- sound/soc/codecs/cs47l90.c | 34 +- sound/soc/codecs/cs47l92.c | 20 +- sound/soc/codecs/madera.c | 18 +- sound/soc/codecs/wm2200.c | 30 +- sound/soc/codecs/wm5102.c | 16 +- sound/soc/codecs/wm5110.c | 24 +- sound/soc/codecs/wm_adsp.c | 3188 ++--------------- sound/soc/codecs/wm_adsp.h | 105 +- 21 files changed, 3794 insertions(+), 3120 deletions(-) create mode 100644 drivers/firmware/cirrus/Kconfig create mode 100644 drivers/firmware/cirrus/Makefile create mode 100644 drivers/firmware/cirrus/cs_dsp.c create mode 100644 include/linux/firmware/cirrus/cs_dsp.h rename {sound/soc/codecs => include/linux/firmware/cirrus}/wmfw.h (91%) -- 2.33.0
2021-09-27ASoC: ak4458: Use modern ASoC DAI format terminologyMark Brown1-6/+6
As part of moving to remove the old style defines for the bus clocks update the ak4458 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920163817.16490-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ak5558: Use modern ASoC DAI format terminologyMark Brown1-5/+5
As part of moving to remove the old style defines for the bus clocks update the ak5558 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920164753.17030-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: dmaengine: Introduce module option prealloc_buffer_size_kbytesSugar Zhang2-1/+14
Currently, The fixed 512KB prealloc buffer size is too larger for tiny memory kernel (such as 16MB memory). This patch adds the module option "prealloc_buffer_size_kbytes" to specify prealloc buffer size. It's suitable for cards which use the generic dmaengine pcm driver with no config. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> Link: https://lore.kernel.org/r/1632394246-59341-1-git-send-email-sugar.zhang@rock-chips.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: dwc-i2s: Update to modern clocking terminologyMark Brown1-6/+6
As part of moving to remove the old style defines for the bus clocks update the dwc-i2s driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210921205313.46710-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ak4671: Use modern ASoC DAI format terminologyMark Brown1-3/+3
As part of moving to remove the old style defines for the bus clocks update the ak4671 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920164211.16718-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: alc5623: Use modern ASoC DAI format terminologyMark Brown1-4/+4
As part of moving to remove the old style defines for the bus clocks update the alc5623 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920165036.17142-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: bcm: Convert to modern clocking terminologyMark Brown2-31/+31
As part of the effort to remove our old APIs based on outdated terminology update the Broadcom drivers to use modern terminology. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916143423.24025-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: cpcap: Use modern ASoC DAI format terminologyMark Brown1-9/+9
As part of moving to remove the old style defines for the bus clocks update the cpcap driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210921213034.31427-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: meson: aiu: Fix spelling mistake "Unsupport" -> "Unsupported"Colin Ian King1-1/+1
There is a spelling mistake in a dev_err error message. Fix it. Signed-off-by: Colin Ian King <colin.king@canonical.com> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Link: https://lore.kernel.org/r/20210924231242.144692-1-colin.king@canonical.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: dt-bindings: wlf,wm8978: Fix I2C address in exampleGeert Uytterhoeven1-2/+2
According to the WM8978 datasheet, the address of the device is fixed as 0011010 in 2-wire mode. Fixes: 5bd5699c494f42a3 ("ASoC: dt-bindings: Add WM8978 Binding") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/c99fc865e3fca6ea623661c52de7dc6a3c36c8b4.1632487554.git.geert+renesas@glider.be Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: codecs: Fix spelling mistake "Unsupport" -> "Unsupported"Colin Ian King18-20/+20
There are spelling mistakes in dev_err error messages. Fix them. Signed-off-by: Colin Ian King <colin.king@canonical.com> Link: https://lore.kernel.org/r/20210924231003.144502-1-colin.king@canonical.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ad193x: Update to modern clocking terminologyMark Brown1-5/+5
As part of moving to remove the old style defines for the bus clocks update the ad193x driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916142232.33914-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: tegra: Constify static snd_soc_dai_ops structsRikard Falkeborn5-9/+9
The only usage of these is to assign their address to the ops field in the snd_soc_dai_driver struct, which is a pointer to const. Make them const to allow the compiler to put them in read-only memory. Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com> Acked-by: Sameer Pujar <spujar@nvidia.com> Link: https://lore.kernel.org/r/20210922205438.34519-1-rikard.falkeborn@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: cs42l42: Use two thresholds and increased wait time for manual type ↵Stefan Binding2-23/+66
detection Some headsets require very different comparator thresholds for type detection, as well as longer settling times. In order to detect a larger number of headsets, use 2 thresholds to give maximum coverage (1.25V and 1.75V), as well as a longer settling time of 100ms. This will not affect default audotodetect mode and applies to manual mode type detection only. Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210927111437.18113-1-vitalyr@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adav80x: Update to modern clocking terminologyMark Brown1-3/+3
As part of moving to remove the old style defines for the bus clocks update the adav80x driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-6-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adau1977: Update to modern clocking terminologyMark Brown1-15/+16
As part of moving to remove the old style defines for the bus clocks update the adau1977 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-5-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adau17x1: Update to modern clocking terminologyMark Brown1-3/+3
As part of moving to remove the old style defines for the bus clocks update the adau17x1 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-4-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adau1701: Update to modern clocking terminologyMark Brown1-3/+3
As part of moving to remove the old style defines for the bus clocks update the adau1701 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-3-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adau1373: Update to modern clocking terminologyMark Brown1-7/+7
As part of moving to remove the old style defines for the bus clocks update the adau1373 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-2-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: adau1372: Update to modern clocking terminologyMark Brown1-7/+7
As part of moving to remove the old style defines for the bus clocks update the adau1372 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ad1836: Update to modern clocking terminologyMark Brown1-3/+3
As part of moving to remove the old style defines for the bus clocks update the ad1836 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916142125.7226-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ep93xx: Convert to modern clocking terminologyMark Brown3-7/+7
As part of the effort to remove our old APIs based on outdated terminology update the EP93xx drivers to use modern terminology. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916143828.36215-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: samsung: add missing "fallthrough;"Arnd Bergmann1-0/+2
With gcc, we get a warning in this file: In file included from include/linux/io.h:13, from sound/soc/samsung/s3c-i2s-v2.c:16: sound/soc/samsung/s3c-i2s-v2.c: In function 's3c2412_i2s_trigger': arch/arm/include/asm/io.h:92:22: error: this statement may fall through [-Werror=implicit-fallthrough=] #define __raw_writel __raw_writel ^ arch/arm/include/asm/io.h:299:29: note: in expansion of macro '__raw_writel' #define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c) ^~~~~~~~~~~~ arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed' #define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); }) ^~~~~~~~~~~~~~ sound/soc/samsung/s3c-i2s-v2.c:398:3: note: in expansion of macro 'writel' writel(0x0, i2s->regs + S3C2412_IISFIC); ^~~~~~ sound/soc/samsung/s3c-i2s-v2.c:400:2: note: here case SNDRV_PCM_TRIGGER_RESUME: ^~~~ From all I can tell, this was indeed meant to fall through, so add "fallthrough;" statement to avoid the warning. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Link: https://lore.kernel.org/r/20210927095449.1070639-1-arnd@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ak4642: Use modern ASoC DAI format terminologyMark Brown1-4/+4
As part of moving to remove the old style defines for the bus clocks update the ak4642 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920164042.16624-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wcd9335: Use correct version to initialize Class HYassine Oudjana1-1/+1
The versioning scheme was changed in an earlier patch, which caused the version being used to initialize WCD9335 to be interpreted as if it was WCD937X, which changed code paths causing broken headphones output. Pass WCD9335 instead of WCD9335_VERSION_2_0 to wcd_clsh_ctrl_alloc to fix it. Fixes: 19c5d1f6a0c3 ("ASoC: codecs: wcd-clsh: add new version support") Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20210925022339.786296-1-y.oudjana@protonmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: alc5632: Use modern ASoC DAI format terminologyMark Brown1-4/+4
As part of moving to remove the old style defines for the bus clocks update the alc5632 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210920165128.17224-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ak4104: Update to modern clocking terminologyMark Brown1-2/+2
As part of moving to remove the old style defines for the bus clocks update the ak4104 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916150922.20183-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: ak4118: Update to modern clocking terminologyMark Brown1-11/+9
As part of moving to remove the old style defines for the bus clocks update the ak4118 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916150804.20058-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: zl38060: Update to modern clocking terminologyMark Brown1-2/+2
As part of moving to remove the old style defines for the bus clocks update the zl38060 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210921205117.4393-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: q6afe: q6asm: Fix typos in qcom,q6afe.txt and qcom,q6asm.txtMasanari Iida2-2/+2
This patch fixes two spelling typos in qcom,q6afe.txt and qcom,q6asm.txt Signed-off-by: Masanari Iida <standby24x7@gmail.com> Link: https://lore.kernel.org/r/20210924070044.569541-1-standby24x7@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPsSimon Trimmer11-3006/+3409
wm_adsp originally provided firmware loading on some audio DSP and was implemented as an ASoC codec driver. However, the firmware loading now covers a wider range of DSP cores and peripherals containing them, beyond just audio. So it needs to be available to non-audio drivers. All the core firmware loading support has been moved into a new driver cs_dsp, leaving only the ASoC-specific parts in wm_adsp. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-17-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Separate wm_adsp specifics in cs_dsp_client_opsSimon Trimmer2-10/+48
This is preparation for moving the generic DSP support out of ASoC. The event callbacks let the client add custom handling of events. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-16-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Split out struct cs_dsp from struct wm_adspSimon Trimmer12-280/+310
In preparation for moving the generic DSP support out of ASoC split struct wm_adsp into two parts, one will form the structure for the new generic DSP code and embed that one into wm_adsp. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-15-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: move firmware loading to clientSimon Trimmer1-51/+112
This is preparation for moving the generic DSP support out of ASoC. Passing the firmware as parameters into the power_up functions simplifies the generic code that will be moved out of wm_adsp. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-14-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Pass firmware names as parameters when starting DSP coreSimon Trimmer2-17/+27
As preparation for moving the generic DSP support out of ASoC pass the firmware names used when loading files as parameters as the generic code can't refer directly to the array specific to wm_adsp. The code remaining in wm_adsp.c doesn't need to change, it can continue to use the string arrays directly. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-13-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Move check of dsp->running to better placeSimon Trimmer1-1/+4
In preparation for moving the generic DSP support out of ASoC, move the check of dsp->running to a more appropriate place that will move to the generic code. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-12-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Separate generic cs_dsp_coeff_ctl handlingSimon Trimmer2-127/+176
This is preparation for moving the generic DSP support out of ASoC. The majority of the handling of firmware controls is generic and this change separates the generic and ASoC specific details into separate structures and functions and renames the generic code named wm_* to cs_*. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-11-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Move sys_config_size to wm_adspCharles Keepax2-7/+7
sys_config_size is part of the compressed stream support, move it from what will become generic DSP code so that it remains in ASoC. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-10-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Split DSP power operations into helper functionsSimon Trimmer1-222/+273
This is preparation for moving the generic DSP support out of ASoC. This change separates the generic handling of power and state transitions from the DAPM API wrapper. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-9-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Separate some ASoC and generic functionsSimon Trimmer1-31/+74
Split some functions into ASoC and generic portions so that existing interfaces can be retained whilst allowing the implementation to be moved out of ASoC. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-8-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Introduce cs_dsp logging macrosSimon Trimmer1-227/+234
In preparation for moving the generic DSP support out of ASoC, add some new logging macros that will be used from the generic code. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-7-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Rename generic DSP supportSimon Trimmer11-473/+473
This rename is preparation for moving the generic DSP support out of ASoC, generic code named wm_* will be renamed to cs_*. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-6-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Cancel ongoing work when removing controlsSimon Trimmer1-25/+9
Removes wm_adsp_ctl_work and integrates the work_struct into wm_coeff_ctl so it may be referenced. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-5-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed buffersCharles Keepax1-17/+7
When parsing a compressed buffer from the firmware the driver currently open codes reading the firmware coefficient containing the buffer description. Improve this slightly by using the coefficient read functions already provided by the wm_adsp driver. It is worth noting this change requires the running variable to be set before wm_adsp_buffer_init is called, however this is safe, since its all still under the power lock and nothing in the compressed code gates itself on running. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-4-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Move check for control existenceCharles Keepax1-8/+13
Checking earlier in the function if a control already exists avoids superfluous string construction and also prepares for future refactoring. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-3-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-27ASoC: wm_adsp: Remove use of snd_ctl_elem_type_tSimon Trimmer2-16/+16
In preparation for moving the generic DSP support out of ASoC, remove the use of the ALSA specific types for the control type. The use of an ALSA type was unnecessary, the simplified code is easier to read and avoids Sparse warnings. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210913160057.103842-2-simont@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-09-22ASoC: pl1022_rdk: Update to modern clocking terminologyMark Brown1-1/+1
As part of moving to remove the old style defines for the bus clocks update the pl1022_rdk driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Reviewed-by: Fabio Estevam <festevam@gmail.com> Link: https://lore.kernel.org/r/20210921213542.31688-16-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>