linux/sound/soc
Lars-Peter Clausen 07d74a4b2f ASoC: dapm: Don't add prefix to widget stream name
commit a798c24a69 upstream.

Commit fdb6eb0a12 ("ASoC: dapm: Modify widget stream name according to
prefix") fixed the case where a DAPM route between a DAI widget and a
DAC/ADC/AIF widget with a matching stream name was not created when the
DAPM context was using a prefix.

Unfortunately the patch introduced a few issues on its own like leaking the
dynamically allocated stream name memory and also not checking whether the
allocation succeeded in the first place.

It is also incomplete in that it still does not handle the case where
stream name of the widget is a substring of the stream name of the DAI,
which is explicitly allowed and works fine if no DAPM prefix is used.

Revert the commit and take a slightly different approach to solving the
issue. Instead of comparing the widget's stream name to the name of the DAI
widget compare it to the stream name of the DAI widget. The stream name of
the DAI widget is identical to the name of the DAI widget except that it
wont have the DAPM prefix added. So this approach behaves identical
regardless to whether the DAPM context uses a prefix or not.

We don't have to worry about potentially matching with a widget with the
same stream name, but from a different DAPM context with a different
prefix, since the code already makes sure that both the DAI widget and the
matched widget are from the same DAPM context.

Fixes: fdb6eb0a12 ("ASoC: dapm: Modify widget stream name according to prefix")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-08-16 20:52:18 -07:00
..
adi ASoC: adi: Add missing return statement. 2015-01-05 20:16:20 +00:00
atmel Merge remote-tracking branches 'asoc/topic/4554', 'asoc/topic/ab8500', 'asoc/topic/ak4642', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next 2015-04-12 19:48:51 +01:00
au1x Merge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic/davinci' into asoc-next 2015-02-09 15:10:14 +08:00
bcm ASoC: bcm: drop owner assignment from platform_drivers 2014-10-20 16:22:04 +02:00
blackfin Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
cirrus ASoC: cirrus: tlv320aic23 needs I2C 2015-02-21 18:36:27 +09:00
codecs ASoC: pcm1681: Fix setting de-emphasis sampling rate selection 2015-08-16 20:52:18 -07:00
davinci ASoC: davinci-mcasp: Correct pm status check in suspend callback 2015-04-30 21:08:56 +01:00
dwc Merge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/fsl-asrc' into asoc-next 2015-02-09 15:10:17 +08:00
fsl ASoC: imx-wm8962: Add a missing error check 2015-08-03 09:29:03 -07:00
generic Merge remote-tracking branches 'asoc/topic/rt5641', 'asoc/topic/rt5677' and 'asoc/topic/sh-cleanup' into asoc-next 2015-04-12 19:49:17 +01:00
intel ASoC: Intel: Get correct usage_count value to load firmware 2015-08-16 20:52:17 -07:00
jz4740 ASoC: jz4740: Add jz4780 support 2015-03-09 18:10:17 +00:00
kirkwood Merge remote-tracking branches 'asoc/topic/jack', 'asoc/topic/jz4740' and 'asoc/topic/kirkwood' into asoc-next 2015-04-12 19:49:03 +01:00
mxs Merge remote-tracking branches 'asoc/topic/mxs-saif' and 'asoc/topic/nuc900' into asoc-next 2015-02-09 15:10:23 +08:00
nuc900 ASoC: nuc900: No need to track the dma buffer in the driver state struct 2015-03-16 11:40:52 +00:00
omap ASoC: omap: fix up SND_OMAP_SOC_OMAP_ABE_TWL6040 dependency, again 2015-08-03 09:29:03 -07:00
pxa ASoC: z2: Register jacks at the card level 2015-03-04 17:10:43 +00:00
qcom ASoC: qcom: remove incorrect dependencies 2015-08-03 09:29:03 -07:00
rockchip ASoC: Updates for v3.20 2015-02-09 15:09:48 +08:00
samsung Merge remote-tracking branches 'asoc/fix/rt5677', 'asoc/fix/samsung' and 'asoc/fix/tfa9879' into asoc-linus 2015-04-29 13:37:31 +01:00
sh Merge remote-tracking branches 'asoc/fix/email', 'asoc/fix/fsl-ssi', 'asoc/fix/pm', 'asoc/fix/qcom' and 'asoc/fix/rcar' into asoc-linus 2015-04-29 13:37:28 +01:00
sirf ASoC: sirf: drop owner assignment from platform_drivers 2014-10-20 16:22:14 +02:00
spear ASoC: spear: drop owner assignment from platform_drivers 2014-10-20 16:22:14 +02:00
tegra ASoC: tegra_wm9712: Use card DAPM context to access widgets 2015-04-08 21:10:01 +01:00
txx9 ASoC: txx9: Remove unnecessary snd_pcm_lib_preallocate_free_for_all() 2015-01-05 21:30:20 +00:00
ux500 ASoC: mop500_ab8500: Use card DAPM context to access widgets 2015-04-12 12:43:58 +01:00
xtensa ASoC: add xtensa xtfpga I2S interface and platform 2015-01-08 19:52:11 +00:00
Kconfig ASoC: Allow for building QCOM drivers 2015-03-16 11:24:47 +00:00
Makefile ASoC: Allow for building QCOM drivers 2015-03-16 11:24:47 +00:00
soc-ac97.c ASoC: Add support for allocating AC'97 device before registering it 2015-01-26 19:14:20 +00:00
soc-cache.c ASoC: Remove snd_soc_cache_sync() implementation 2014-11-09 09:06:30 +00:00
soc-compress.c ASoC: soc-compress.c: fix NULL dereference 2015-01-15 15:54:04 +00:00
soc-core.c sound updates for 4.1-rc1 2015-04-15 15:41:41 -07:00
soc-dapm.c ASoC: dapm: Don't add prefix to widget stream name 2015-08-16 20:52:18 -07:00
soc-devres.c ASoC: Fix warning with make xmldocs caused by soc-devres.c 2015-01-28 11:36:03 +00:00
soc-generic-dmaengine-pcm.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-02-18 08:49:20 -08:00
soc-io.c ASoC: Automatically initialize regmap for all components 2014-08-19 10:59:47 -05:00
soc-jack.c ASoC: Allow to register jacks at the card level 2015-03-04 17:09:51 +00:00
soc-ops.c ASoC: core: Split ops out of soc-core.c 2014-10-29 11:15:10 +00:00
soc-pcm.c Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-04-12 19:48:30 +01:00
soc-utils.c ASoC: : drop owner assignment from platform_drivers 2014-10-20 16:22:02 +02:00