linux/sound/soc/samsung
Marek Szyprowski 73f5dfc683 ASoC: samsung: get access to DMA engine early to defer probe properly
ASoC Samsung sub-drivers tried to get access to their DMA engine
controllers as a last step in driver probe. If a DMA engine was not
available yet, samsung_asoc_dma_platform_register() function ended in
-EPROBE_DEFER, but the driver already registered its component to ASoC
core. This patch moves samsung_asoc_dma_platform_register() call before
registering any components, to the common place, where driver was gathering
all needed resources.

In case of Samsung Exynos i2s driver the issue was even worse. The driver
managed already to register its secondary DAI platform device before
even getting the DMA engine access. That together with -EPROBE_DEFER error
code from samsung_i2s_probe() immediately triggered another round of
deferred probe retry and in turn endless loop of driver probing.

This patch fixes broken boot on Odroid XU3 and other Exynos5422-based
boards.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-10-28 18:21:13 +01:00
..
Kconfig ASoC: exynos: organize the asoc audio into a menu 2016-09-24 19:35:01 +01:00
Makefile ASoC: samsung: Remove unused Odroid x2/u3 machine driver 2016-05-30 16:20:03 +01:00
ac97.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
arndale_rt5631.c Merge remote-tracking branches 'asoc/topic/au1x', 'asoc/topic/bcm2835', 'asoc/topic/blackfin' and 'asoc/topic/card' into asoc-next 2015-08-30 15:52:41 +01:00
bells.c ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
dma.h ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
dmaengine.c ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
h1940_uda1380.c ASoC: h1940_uda1380: Constify rate constraints 2015-10-23 08:49:03 +09:00
i2s-regs.h ASoC: samsung: add support for exynos7 I2S controller 2014-11-07 10:41:22 +00:00
i2s.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
i2s.h ASoC: samsung: Allow setting OP_CLK of the IIS Multi Audio Interface 2014-05-20 23:20:57 +01:00
idma.c ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
idma.h ASoC: Fix __iomem annotation for IDMA registers 2011-11-29 17:28:16 +00:00
jive_wm8750.c ASoC: jive: Automatically disconnect non-connected pins 2015-01-16 16:59:08 +00:00
littlemill.c ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
ln2440sbc_alc650.c ASoC: Samsung: Do not register samsung audio dma device as pdev 2012-12-07 19:36:07 +09:00
lowland.c ASoC: lowland: Use card DAPM context to access widgets 2015-05-04 13:51:19 +01:00
neo1973_wm8753.c ASoC: neo1973_wm8753: Use static DAI format setup 2015-01-06 17:34:30 +00:00
pcm.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
pcm.h
regs-ac97.h ASoC: samsung: Trivial cleanups in header files 2013-12-30 12:05:56 +00:00
regs-i2s-v2.h
regs-iis.h ASoC: samsung: Trivial cleanups in header files 2013-12-30 12:05:56 +00:00
rx1950_uda1380.c ASoC: rx1950_uda1380: Constify rate constraints 2015-10-23 08:49:16 +09:00
s3c-i2s-v2.c ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
s3c-i2s-v2.h ASoC: samsung: Drop usage of struct s3c_dma_params from s3c2412-i2s.c 2016-08-08 11:55:20 +01:00
s3c24xx-i2s.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
s3c24xx-i2s.h
s3c24xx_simtec.c ASoC: s3c24xx_simtec: Use static DAI format setup 2015-01-06 17:34:30 +00:00
s3c24xx_simtec.h
s3c24xx_simtec_hermes.c ASoC: samsung: drop owner assignment from platform_drivers 2014-10-20 16:22:13 +02:00
s3c24xx_simtec_tlv320aic23.c ASoC: samsung: drop owner assignment from platform_drivers 2014-10-20 16:22:13 +02:00
s3c24xx_uda134x.c Merge remote-tracking branches 'asoc/topic/rt5659', 'asoc/topic/rt5660', 'asoc/topic/rt5677' and 'asoc/topic/samsung' into asoc-next 2016-09-29 12:44:37 -07:00
s3c2412-i2s.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
s3c2412-i2s.h
smartq_wm8987.c ASoC: samsung/smartq: use dynamic registration 2015-12-01 21:50:24 +01:00
smdk2443_wm9710.c ASoC: Samsung: Do not register samsung audio dma device as pdev 2012-12-07 19:36:07 +09:00
smdk_spdif.c ASoC: Samsung: Do not register samsung audio dma device as pdev 2012-12-07 19:36:07 +09:00
smdk_wm8580.c ASoC: smdk_wm8580: Pass card DAPM context to snd_soc_dapm_disable_pin() 2015-01-16 16:59:36 +00:00
smdk_wm8580pcm.c ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
smdk_wm8994.c ASoC: smdk_wm8994: Use card DAPM context to access widgets 2015-05-04 13:51:19 +01:00
smdk_wm8994pcm.c ASoC: samsung: Remove unused now unused struct s3c_dma_params 2016-08-08 11:55:20 +01:00
smdk_wm9713.c ASoC: Samsung: Do not register samsung audio dma device as pdev 2012-12-07 19:36:07 +09:00
snow.c ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
spdif.c ASoC: samsung: get access to DMA engine early to defer probe properly 2016-10-28 18:21:13 +01:00
spdif.h
speyside.c ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00
tobermory.c ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() 2015-11-18 18:32:24 +00:00