linux/sound/soc
Stephan Gerhold a4877a6fb2
ASoC: soc-pcm: fix regression in soc_new_pcm()
Commit af4bac1153 ("ASoC: soc-pcm: crash in snd_soc_dapm_new_dai")
swapped the SNDRV_PCM_STREAM_* parameter in the
snd_soc_dai_stream_valid(cpu_dai, ...) checks. But that works only
for codec2codec links. For normal links it breaks registration of
playback/capture-only PCM devices.

E.g. on qcom/apq8016_sbc there is usually one playback-only and one
capture-only PCM device, but they disappeared after the commit.

The codec2codec case was added in commit a342031cdd
("ASoC: create pcm for codec2codec links as well") as an extra check
(e.g. `playback = playback && cpu_playback->channels_min`).

We should be able to simplify the code by checking directly for
the correct stream type in the loop.
This also fixes the regression because we check for PLAYBACK for
both codec and cpu dai again when codec2codec is not used.

Fixes: af4bac1153 ("ASoC: soc-pcm: crash in snd_soc_dapm_new_dai")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/20200218103824.26708-1-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-02-18 20:58:42 +00:00
..
adi
amd ASoC: amd: Fix simultaneous playback and capture 2020-01-29 17:48:47 +00:00
atmel ASoC: atmel: fix atmel_ssc_set_audio link failure 2020-02-10 11:59:09 +00:00
au1x sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
bcm ASoC: bcm: cygnus-ssp: move .suspend/.resume to component 2020-01-21 17:02:56 +00:00
cirrus ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
codecs ASoC: rt1015: fix typo for bypass boost control 2020-02-17 16:03:56 +00:00
dwc ASoC: dwc: dwc-i2s: move .suspend/.resume to component 2020-01-21 17:05:35 +00:00
fsl ASoC: fsl_sai: Fix exiting path on probing failure 2020-02-06 15:52:50 +00:00
generic ASoC: simple-card: Don't create separate link when platform is present 2019-12-10 13:10:40 +00:00
hisilicon
img
intel ASoC: Intel: mrfld: return error codes when an error occurs 2020-02-11 11:25:05 +00:00
jz4740 ASoC: jz4740: jz4740-i2s: move .suspend/.resume to component 2020-01-21 17:03:32 +00:00
kirkwood ASoC: kirkwood: Drop superfluous ioctl PCM ops 2019-12-11 15:57:19 +00:00
mediatek ASoC: mediatek: mt8183-da7219: apply some refactors 2020-02-13 12:36:50 +00:00
meson ASoC: meson: aiu: simplify component addition 2020-02-17 18:22:21 +00:00
mxs
pxa ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
qcom ASoC: qdsp6: q6asm-dai: constify copied structure 2020-01-01 21:38:48 +00:00
rockchip ASoC: Fixes for v5.4 2019-11-07 13:52:17 +01:00
samsung ASoC: samsung: i2s: move .suspend/.resume to component 2020-01-21 17:05:54 +00:00
sh ASoC: sh: fsi: Restore devm_ioremap() alignment 2020-02-12 18:42:47 +00:00
sirf
sof Merge branch 'for-5.6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.7 2020-02-11 16:18:04 +00:00
spear
sprd ASoC: sprd: Drop superfluous ioctl PCM ops 2019-12-11 15:59:40 +00:00
sti ASoC: sti: sti_uniperif: move .suspend/.resume to component 2020-01-21 17:04:37 +00:00
stm ASoC: stm32: i2s: improve error management on probe deferral 2020-02-11 11:24:43 +00:00
sunxi treewide: remove redundant IS_ERR() before error code check 2020-02-04 03:05:27 +00:00
tegra ASoC: tegra: Revert 24 and 32 bit support 2020-02-02 12:07:47 +00:00
ti ASoC: ti: davinci-mcasp: remove redundant assignment to variable ret 2020-02-11 11:47:59 +00:00
txx9 ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
uniphier ASoC: uniphier: move .suspend/.resume to component 2020-01-21 17:05:16 +00:00
ux500 ASoC: ux500: ux500_msp_dai: remove unused DAI .suspend/.resume 2020-01-21 17:06:13 +00:00
xilinx ASoC: xilinx: Use managed buffer allocation 2019-12-11 16:43:25 +00:00
xtensa ASoC: xtensa: Use managed buffer allocation 2019-12-11 16:43:26 +00:00
zte sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-component.c ASoC: soc-pcm: call snd_soc_component_open/close() once 2020-02-12 23:51:36 +00:00
soc-compress.c ASoC: soc-pcm/soc-compress: use snd_soc_dapm_stream_stop() for SND_SOC_DAPM_STREAM_STOP 2020-01-10 13:34:19 +00:00
soc-core.c ASoC: core: ensure component names are unique 2020-02-14 17:15:57 +00:00
soc-dai.c ASoC: soc-pcm: call snd_soc_dai_startup()/shutdown() once 2020-02-11 15:42:03 +00:00
soc-dapm.c ASoC: soc-pcm: add for_each_dapm_widgets() macro 2020-02-11 15:41:16 +00:00
soc-devres.c
soc-generic-dmaengine-pcm.c Merge branch 'asoc-5.6' into asoc-next 2020-01-23 12:36:45 +00:00
soc-io.c
soc-jack.c ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report 2019-11-12 17:12:56 +00:00
soc-ops.c ASoC: soc-ops: use snd_soc_card_get_kcontrol() at snd_soc_limit_volume() 2019-10-03 14:37:20 +01:00
soc-pcm.c ASoC: soc-pcm: fix regression in soc_new_pcm() 2020-02-18 20:58:42 +00:00
soc-topology.c Merge branch 'asoc-5.6' into asoc-next 2020-01-23 12:36:45 +00:00
soc-utils.c ASoC: utils: Drop superfluous ioctl PCM ops 2019-12-11 16:00:48 +00:00