linux/sound/soc
Cezary Rojewski 84b71067ea
ASoC: Intel: Skylake: Make MCPS and CPS params obsolete
As per FW Interface Modules Configuration, init instance IPC request
requires base initial module configuration. This configuration structure
is made of:
- cpc (chunks per cycle)
- ibs (input buffer size)
- obs (output buffer size)
- is_pages (memory pages required)
- audio_fmt (self explanatory)

Skylake topology accepts following tokens: MCPS, CPS and CPC. All of
these are directly connected. Moreover, assigning one of these allows
to calculate the remaining two. In simplest scenario and assuming 1ms
scheduling, following is true:

CPS = CPC times 1000
MCPS = CPS times 1000 000
Note: these calculations vary depending on scenario and scheduling
requirements.

Given the current implementation, userspace is allowed to provide
different values for all three causing informational chaos. On top of
that, struct skl_base_cfg which represents base module configuration,
incorrectly takes CPS param instead of CPC.

This ambiguity may lead to user unintentionally providing improper
values to DSP firmware and thus impacting module scheduling in
unexpected fashion. Fix by making MCPS and CPS topology params obsolete
and relying solely on CPC value.

Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20190723145854.8527-7-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-07-24 19:43:03 +01:00
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
atmel ASoC: atmel: tse850-pcm5142: consider CPU-Platform possibility 2019-06-28 15:10:51 +01:00
au1x ASoC: au1x: psc-i2s.c: use devm_snd_soc_register_component() 2019-07-02 13:48:29 +01:00
bcm ASoC: bcm: cygnus-pcm: Unneeded variable: "ret". 2019-07-22 13:26:00 +01:00
cirrus ASoC: cirrus: ep93xx-i2s.c: use devm_snd_soc_register_component() 2019-07-02 13:48:39 +01:00
codecs ASoC: wm8955: Fix a typo in 'wm8995_pll_factors()' function name 2019-07-24 17:02:44 +01:00
dwc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fsl ASoC: fsl_esai: recover the channel swap after xrun 2019-07-23 12:25:05 +01:00
generic Merge branch 'asoc-5.3' into asoc-next 2019-07-06 12:25:26 +01:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
intel ASoC: Intel: Skylake: Make MCPS and CPS params obsolete 2019-07-24 19:43:03 +01:00
jz4740 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
kirkwood ASoC: kirkwood: armada-370-db: consider CPU-Platform possibility 2019-06-28 15:12:59 +01:00
mediatek ASoC: mediatek: mt8183: make headset codec optional 2019-07-22 13:26:12 +01:00
meson Merge branch 'asoc-5.3' into asoc-next 2019-07-06 12:25:26 +01:00
mxs ASoC: mxs: mxs-sgtl5000: consider CPU-Platform possibility 2019-06-28 15:13:19 +01:00
nuc900 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
pxa ASoC: pxa: pxa2xx-ac97.c: use devm_snd_soc_register_component() 2019-07-02 13:52:08 +01:00
qcom kernel: fix typos and some coding style in comments 2019-07-16 19:23:21 -07:00
rockchip ASoC: rockchip-max98090: Remove MICBIAS as supply of input pin IN34 2019-07-22 13:26:19 +01:00
samsung ASoC: samsung: tm2_wm5110: consider CPU-Platform possibility 2019-06-28 15:16:22 +01:00
sh ASoC: rsnd: Support hw_free() callback at DAI level 2019-07-23 18:14:13 +01:00
sirf ASoC: sirf: sirf-audio: consider CPU-Platform possibility 2019-06-28 15:16:43 +01:00
sof ASoC: SOF: Intel: hda: fix stream id setting 2019-07-23 12:25:31 +01:00
spear treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
sprd treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
sti treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
stm Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
sunxi ASoC: sunxi: sun50i-codec-analog: Add earpiece 2019-07-05 17:58:31 +01:00
tegra ASoC: tegra: trimslice: consider CPU-Platform possibility 2019-06-28 15:18:45 +01:00
ti Merge branch 'asoc-5.3' into asoc-next 2019-07-06 12:25:26 +01:00
txx9 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
uniphier ASoC: uniphier: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:39 +01:00
ux500 ASoC: ux500: mop500: consider CPU-Platform possibility 2019-06-28 15:19:55 +01:00
xilinx treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
xtensa treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
zte treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile ASoC: add soc-dai.c 2019-07-23 18:14:14 +01:00
soc-ac97.c
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-compress.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-core.c ASoC: soc-core: use existing snd_soc_dai_digital_mute() 2019-07-23 18:14:26 +01:00
soc-dai.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-dapm.c ASoC: soc-dai: add snd_soc_dai_shutdown() 2019-07-23 18:14:17 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: More changes for v5.1 2019-02-28 13:30:55 +01:00
soc-io.c
soc-jack.c
soc-ops.c
soc-pcm.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-topology.c ASoC: topology: fix memory leaks on sm, se and sbe 2019-06-28 15:08:49 +01:00
soc-utils.c ASoC: soc-utils: respawn dummy Platform 2019-06-28 15:21:04 +01:00