android_kernel_oneplus_msm8998/sound/soc/samsung
Charles Keepax 079c4b43e1 ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call
commit 5faf071d08ddd1c1be66deaa93a09ccf43f5b538 upstream.

Unfortunately, I seem to have missed a case where an IRQ safe spinlock was
required, in samsung_i2s_dai_remove, when I fixed up the other calls in
this patch:

316fa9e09ad7 ("ASoC: samsung: Use IRQ safe spin lock calls")

This causes a lockdep warning when unbinding and rebinding the audio card:

[  104.357664]        CPU0                    CPU1
[  104.362174]        ----                    ----
[  104.366692]   lock(&(&pri_dai->spinlock)->rlock);
[  104.371372]                                local_irq_disable();
[  104.377283]                                lock(&(&substream->self_group.lock)->rlock);
[  104.385259]                                lock(&(&pri_dai->spinlock)->rlock);
[  104.392469]   <Interrupt>
[  104.395072]     lock(&(&substream->self_group.lock)->rlock);
[  104.400710]
[  104.400710]  *** DEADLOCK ***

Fixes: ce8bcdbb61 ("ASoC: samsung: i2s: Protect more registers with a spinlock")
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-12 11:22:49 +01:00
..
ac97.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07: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: samsung: drop owner assignment from platform_drivers 2014-10-20 16:22:13 +02:00
dma.h ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07:00
dmaengine.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07: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: i2s: Fixup last IRQ unsafe spin lock call 2017-01-12 11:22:49 +01:00
i2s.h
idma.c ASoC: samsung: drop owner assignment from platform_drivers 2014-10-20 16:22:13 +02:00
idma.h
jive_wm8750.c ASoC: jive: Automatically disconnect non-connected pins 2015-01-16 16:59:08 +00:00
Kconfig ASoC: samsung: wolfson: Improve compile test coverage 2015-05-04 13:51:19 +01:00
littlemill.c ASoC: littlemill: Register jacks at the card level 2015-03-04 17:10:44 +00:00
ln2440sbc_alc650.c
lowland.c ASoC: lowland: Use card DAPM context to access widgets 2015-05-04 13:51:19 +01:00
Makefile ASoC: samsung: Remove goni or aquila with the WM8994 2015-02-07 07:53:07 +08:00
neo1973_wm8753.c ASoC: neo1973_wm8753: Use static DAI format setup 2015-01-06 17:34:30 +00:00
odroidx2_max98090.c ASoC: samsung: odroidx2: Handle I2S CDCLK clock conditionally 2015-01-14 19:46:54 +00:00
pcm.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07:00
pcm.h
regs-ac97.h
regs-i2s-v2.h
regs-iis.h
rx1950_uda1380.c ASoC: rx1950_uda1380: Constify rate constraints 2015-10-23 08:49:16 +09:00
s3c-i2s-v2.c ASoC: s3c24xx: use const snd_soc_component_driver pointer 2016-05-04 14:48:48 -07:00
s3c-i2s-v2.h ASoC: s3c24xx: use const snd_soc_component_driver pointer 2016-05-04 14:48:48 -07:00
s3c24xx-i2s.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07: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 ASoC: s3c24xx_uda134x: Use static DAI format setup 2015-01-06 17:34:31 +00:00
s3c2412-i2s.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07:00
s3c2412-i2s.h
smartq_wm8987.c ASoC: smartq: Use card DAPM context to access widgets 2015-05-04 13:51:19 +01:00
smdk2443_wm9710.c
smdk_spdif.c
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: smdk_wm8570pcm: Use static DAI format setup 2015-01-06 17:34:32 +00: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: smdk_wm8994pcm: Use static DAI format setup 2015-01-06 17:34:32 +00:00
smdk_wm9713.c
snow.c ASoC: Set missing card owner field 2015-08-21 09:07:19 -07:00
spdif.c ASoC: samsung: pass DMA channels as pointers 2016-04-12 09:08:32 -07:00
spdif.h
speyside.c ASoC: speyside: Use snd_soc_codec_get_dapm() 2015-05-04 13:51:20 +01:00
tobermory.c ASoC: tobermory: Register jacks at the card level 2015-03-04 17:10:46 +00:00