linux/sound/soc
Nicolin Chen 14c3aa9839 ASoC: imx-spdif: Use snd-soc-dummy CODEC driver to link card
This is a quick fix for the below two issues when building spdif as modules.

1) If modprobing modules in order: (Step 1) snd-soc-fsl-spdif -> (Step 2)
snd-soc-imx-spdif -> (Step 3) snd-soc-spdif-tx/rx, we will fail to create
imx-spdif card and dai link unless we rmmod snd-soc-imx-spdif and modprobe
it again due to the execution platform_driver_unregister() in probe() when
meeting -EPROBE_DEFER at Step 2.

2) After "imx-spdif sound-spdif.17: dit-hifi <-> 2004000.spdif mapping ok",
'rmmod snd-soc-imx-spdif' would cause kernel dump with warning:
WARNING: CPU: 0 PID: 1301 at /home/rmk/git/linux-rmk/fs/sysfs/dir.c:915 sysfs_hash_and_remove+0x84/0x90()
sysfs: can not remove 'dapm_widget', no directory
This should be caused by disordered resourse releasing of the whole link.
And trying to unregister the card and then CODEC dev can't fix this issue.

Thus this patch just provides a simple fix to these two bugs by using the
snd-soc-dummy in the core instead of seperate snd-soc-spdif-tx/rx so that
there's no need to handle the registering and unregistering of CODEC or
CODEC dai any more.

Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-31 16:32:37 +00:00
..
atmel Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
au1x Merge remote-tracking branch 'asoc/topic/au1x' into asoc-next 2013-08-22 14:28:29 +01:00
blackfin sound fixes for 3.13-rc1 2013-11-16 12:50:53 -08:00
cirrus Merge remote-tracking branch 'asoc/topic/ep93xx' into asoc-next 2013-11-08 10:43:28 +00:00
codecs sound fixes #2 for 3.13-rc1 2013-11-22 10:57:31 -08:00
davinci Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-11-20 13:20:24 -08:00
dwc ASoC: designware_i2s: Remove unnecessary dev_set_drvdata() 2013-08-29 13:18:32 +01:00
fsl ASoC: imx-spdif: Use snd-soc-dummy CODEC driver to link card 2013-12-31 16:32:37 +00:00
generic ASoC: simple-card: un-implemented set_fmt is not error 2013-10-20 17:28:02 +01:00
jz4740 DMA-API: sound: fix dma mask handling in a lot of drivers 2013-10-31 14:48:47 +00:00
kirkwood Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
mid-x86 Merge remote-tracking branch 'asoc/topic/warn' into asoc-next 2013-11-08 10:43:41 +00:00
mxs Merge remote-tracking branch 'asoc/topic/mxs' into asoc-next 2013-11-08 10:43:32 +00:00
nuc900 DMA-API: sound: fix dma mask handling in a lot of drivers 2013-10-31 14:48:47 +00:00
omap Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
pxa Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
s6000 Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
samsung tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
sh ASoC: Fixes for v3.13 2013-11-21 15:07:44 +01:00
spear ASoC: SPEAr spdif_out: Remove redundant variable 2013-09-19 12:56:26 +01:00
tegra Merge remote-tracking branch 'asoc/topic/tegra' into asoc-next 2013-11-08 10:43:37 +00:00
txx9 ASoC: txx9: Use WARN_ON() instead of BUG_ON() 2013-11-07 19:55:17 +00:00
ux500 ASoC: mop500: add .owner to struct snd_soc_card 2013-07-15 11:12:24 +01:00
Kconfig ALSA: move dmaengine implementation from ASoC to ALSA core 2013-08-15 11:18:09 +01:00
Makefile ASoC: core: Implement devm_snd_soc_register_component() 2013-09-17 00:49:57 +01:00
soc-cache.c Merge remote-tracking branch 'asoc/topic/warn' into asoc-next 2013-11-08 10:43:41 +00:00
soc-compress.c ASoC: compress: Use power efficient workqueue 2013-08-12 11:04:54 +01:00
soc-core.c Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2013-11-08 10:43:25 +00:00
soc-dapm.c Merge remote-tracking branch 'asoc/fix/ab8500' into asoc-linus 2013-11-20 15:20:24 +00:00
soc-devres.c ASoC: core: Add devm_snd_soc_register_card() 2013-09-17 00:50:06 +01:00
soc-generic-dmaengine-pcm.c ASoC: Updates for v3.13 2013-11-08 16:45:38 +01:00
soc-io.c ASoC: Remove snd_soc_bulk_write_raw() 2013-09-17 00:37:03 +01:00
soc-jack.c ASoC: dont call dapm_sync while reporting jack always 2013-10-22 09:29:02 +01:00
soc-pcm.c ASoC: Add pinctrl PM to components of active DAIs 2013-11-04 09:08:59 -08:00
soc-utils.c ASoC: core utils: Dont set DMA params for BE substreams 2013-09-17 00:37:03 +01:00