Peter Ujfalusi
22c861fd7f
ASoC: SOF: Intel: hda-stream: Print stream name on STREAM_SD_OFFSET timeout
...
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-28 13:16:21 +01:00
Mark Brown
ca4c040d4a
Merge series "add driver to support firmware loading on Cirrus Logic DSPs" 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-27 18:32:10 +01:00
Mark Brown
93323666d2
ASoC: ak4458: Use modern ASoC DAI format terminology
...
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-27 13:01:15 +01:00
Mark Brown
b55f03436b
ASoC: ak5558: Use modern ASoC DAI format terminology
...
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-27 13:01:14 +01:00
Sugar Zhang
b0e3b0a707
ASoC: dmaengine: Introduce module option prealloc_buffer_size_kbytes
...
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-27 13:01:13 +01:00
Mark Brown
d090004252
ASoC: dwc-i2s: Update to modern clocking terminology
...
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-27 13:01:12 +01:00
Mark Brown
a35f2d4406
ASoC: ak4671: Use modern ASoC DAI format terminology
...
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-27 13:01:11 +01:00
Mark Brown
2a36bd83bf
ASoC: alc5623: Use modern ASoC DAI format terminology
...
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-27 13:01:10 +01:00
Mark Brown
a91b0e5b0b
ASoC: bcm: Convert to modern clocking terminology
...
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-27 13:01:09 +01:00
Mark Brown
99a26f2416
ASoC: cpcap: Use modern ASoC DAI format terminology
...
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-27 13:01:08 +01:00
Colin Ian King
9929265f2a
ASoC: meson: aiu: Fix spelling mistake "Unsupport" -> "Unsupported"
...
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-27 13:01:07 +01:00
Geert Uytterhoeven
9208d3ca8c
ASoC: dt-bindings: wlf,wm8978: Fix I2C address in example
...
According to the WM8978 datasheet, the address of the device is fixed as
0011010 in 2-wire mode.
Fixes: 5bd5699c49 ("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-27 13:01:06 +01:00
Colin Ian King
a4db95b282
ASoC: codecs: Fix spelling mistake "Unsupport" -> "Unsupported"
...
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-27 13:01:05 +01:00
Mark Brown
e3a0dbc5d6
ASoC: ad193x: Update to modern clocking terminology
...
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-27 13:01:04 +01:00
Rikard Falkeborn
313fab4820
ASoC: tegra: Constify static snd_soc_dai_ops structs
...
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-27 13:01:03 +01:00
Stefan Binding
edd6dffdc6
ASoC: cs42l42: Use two thresholds and increased wait time for manual type 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-27 13:01:02 +01:00
Mark Brown
9943ab72fd
ASoC: adav80x: Update to modern clocking terminology
...
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-27 13:01:01 +01:00
Mark Brown
21b686e0bf
ASoC: adau1977: Update to modern clocking terminology
...
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-27 13:01:00 +01:00
Mark Brown
a41a008fe8
ASoC: adau17x1: Update to modern clocking terminology
...
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-27 13:00:59 +01:00
Mark Brown
33ff453907
ASoC: adau1701: Update to modern clocking terminology
...
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-27 13:00:58 +01:00
Mark Brown
829fddb1f6
ASoC: adau1373: Update to modern clocking terminology
...
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-27 13:00:57 +01:00
Mark Brown
9c42dd7bfb
ASoC: adau1372: Update to modern clocking terminology
...
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-27 13:00:56 +01:00
Mark Brown
88e5cdddb5
ASoC: ad1836: Update to modern clocking terminology
...
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-27 13:00:55 +01:00
Mark Brown
c7801a3c68
ASoC: ep93xx: Convert to modern clocking terminology
...
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-27 13:00:54 +01:00
Arnd Bergmann
501849d97e
ASoC: samsung: add missing "fallthrough;"
...
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-27 13:00:53 +01:00
Mark Brown
3e8908fbfd
ASoC: ak4642: Use modern ASoC DAI format terminology
...
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-27 13:00:52 +01:00
Yassine Oudjana
a270bd9abd
ASoC: wcd9335: Use correct version to initialize Class H
...
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: 19c5d1f6a0 ("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-27 13:00:51 +01:00
Mark Brown
155acb01bf
ASoC: alc5632: Use modern ASoC DAI format terminology
...
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-27 13:00:50 +01:00
Mark Brown
8515f828c5
ASoC: ak4104: Update to modern clocking terminology
...
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-27 13:00:48 +01:00
Mark Brown
2b0a5d8d28
ASoC: ak4118: Update to modern clocking terminology
...
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-27 13:00:47 +01:00
Mark Brown
c5bc627511
ASoC: zl38060: Update to modern clocking terminology
...
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-27 13:00:46 +01:00
Masanari Iida
d24d3f7288
ASoC: q6afe: q6asm: Fix typos in qcom,q6afe.txt and qcom,q6asm.txt
...
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-27 13:00:45 +01:00
Simon Trimmer
f6bc909e76
firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPs
...
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-27 13:00:42 +01:00
Simon Trimmer
2dd044641e
ASoC: wm_adsp: Separate wm_adsp specifics in cs_dsp_client_ops
...
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-27 13:00:41 +01:00
Simon Trimmer
e146820215
ASoC: wm_adsp: Split out struct cs_dsp from struct wm_adsp
...
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-27 13:00:40 +01:00
Simon Trimmer
a828056fa1
ASoC: wm_adsp: move firmware loading to client
...
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-27 13:00:39 +01:00
Simon Trimmer
2169f2f151
ASoC: wm_adsp: Pass firmware names as parameters when starting DSP core
...
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-27 13:00:38 +01:00
Simon Trimmer
edb1d6d7f0
ASoC: wm_adsp: Move check of dsp->running to better place
...
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-27 13:00:37 +01:00
Simon Trimmer
0700bc2fb9
ASoC: wm_adsp: Separate generic cs_dsp_coeff_ctl handling
...
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-27 13:00:36 +01:00
Charles Keepax
6092be2d93
ASoC: wm_adsp: Move sys_config_size to wm_adsp
...
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-27 13:00:35 +01:00
Simon Trimmer
186152df4d
ASoC: wm_adsp: Split DSP power operations into helper functions
...
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-27 13:00:35 +01:00
Simon Trimmer
25ca837ba6
ASoC: wm_adsp: Separate some ASoC and generic functions
...
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-27 13:00:34 +01:00
Simon Trimmer
6ab1d0cc84
ASoC: wm_adsp: Introduce cs_dsp logging macros
...
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-27 13:00:33 +01:00
Simon Trimmer
5beb8eeade
ASoC: wm_adsp: Rename generic DSP support
...
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-27 13:00:31 +01:00
Simon Trimmer
df6c505c12
ASoC: wm_adsp: Cancel ongoing work when removing controls
...
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-27 13:00:31 +01:00
Charles Keepax
04ae085967
ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed buffers
...
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-27 13:00:30 +01:00
Charles Keepax
6477960755
ASoC: wm_adsp: Move check for control existence
...
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-27 13:00:29 +01:00
Simon Trimmer
d07a6d454f
ASoC: wm_adsp: Remove use of snd_ctl_elem_type_t
...
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-27 13:00:28 +01:00
Mark Brown
39e178a4cc
ASoC: pl1022_rdk: Update to modern clocking terminology
...
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 >
2021-09-22 13:23:31 +01:00
Mark Brown
fcd444bf6a
ASoC: pl1022_ds: Update to modern clocking terminology
...
As part of moving to remove the old style defines for the bus clocks update
the pl1022_ds 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-15-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-09-22 13:23:30 +01:00