linux/sound/soc/fsl
Nicolin Chen 86a570c577 ASoC: fsl_asrc: Add reg_defaults for regmap to fix kernel dump
Kernel dump (WARN_ON) ocurred during system boot-up inside regmap_write():

------------[ cut here ]------------
WARNING: CPU: 0 PID: 47 at kernel/locking/lockdep.c:2744 lockdep_trace_alloc+0xe8/0x108()
DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
Modules linked in:
CPU: 0 PID: 47 Comm: kworker/u2:2 Not tainted 3.18.0-rc1-10245-gb75d289-dirty #56
Workqueue: deferwq deferred_probe_work_func
Backtrace:
[<80012294>] (dump_backtrace) from [<80012578>] (show_stack+0x18/0x1c)
 r6:8097c73c r5:8097c73c r4:00000000 r3:be33ba80
[<80012560>] (show_stack) from [<806aac48>] (dump_stack+0x8c/0xa4)
[<806aabbc>] (dump_stack) from [<8002a694>] (warn_slowpath_common+0x70/0x94)
 r6:80062838 r5:00000009 r4:bd827b30 r3:be33ba80
[<8002a624>] (warn_slowpath_common) from [<8002a6f0>] (warn_slowpath_fmt+0x38/0x40)
 r8:00000004 r7:00000001 r6:000080d0 r5:60000193 r4:bd826010
[<8002a6bc>] (warn_slowpath_fmt) from [<80062838>] (lockdep_trace_alloc+0xe8/0x108)
 r3:80831590 r2:8082e160
[<80062750>] (lockdep_trace_alloc) from [<800ea5dc>] (kmem_cache_alloc+0x28/0x134)
 r5:000080d0 r4:be001f00
[<800ea5b4>] (kmem_cache_alloc) from [<8038d72c>] (regcache_rbtree_write+0x15c/0x648)
 r10:00000000 r9:0000001c r8:00000004 r7:00000001 r6:00000000 r5:bd819a00
 r4:00000000 r3:811aea88
[<8038d5d0>] (regcache_rbtree_write) from [<8038c4d8>] (regcache_write+0x5c/0x64)
 r10:be3f9f88 r9:00000000 r8:00000004 r7:00000001 r6:00000000 r5:00000001
 r4:bd819a00
[<8038c47c>] (regcache_write) from [<8038b0dc>] (_regmap_raw_write+0x134/0x5f4)
 r6:be3f9f84 r5:00000001 r4:bd819a00 r3:00000001
[<8038afa8>] (_regmap_raw_write) from [<8038b610>] (_regmap_bus_raw_write+0x74/0x94)
 r10:00000000 r9:00000001 r8:be3fb080 r7:bd819a00 r6:00000001 r5:00000000
 r4:bd819a00
[<8038b59c>] (_regmap_bus_raw_write) from [<8038a8b4>] (_regmap_write+0x60/0x9c)
 r6:00000001 r5:00000000 r4:bd819a00 r3:8038b59c
[<8038a854>] (_regmap_write) from [<8038ba24>] (regmap_write+0x48/0x68)
 r7:bd81ad80 r6:00000001 r5:00000000 r4:bd819a00
[<8038b9dc>] (regmap_write) from [<80528f30>] (fsl_asrc_dai_probe+0x34/0x104)
 r6:bd888628 r5:be3fb080 r4:be3b4410 r3:be3b442c
------------[ dump end ]------------

=============================================================================
2741         /*
2742          * Oi! Can't be having __GFP_FS allocations with IRQs disabled.
2743          */
2744         if (DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags)))
2745                 return;
=============================================================================

By looking at 2744 line, we can get that it's because regcache_rbtree_write()
would call kmalloc() with GFP flag if it couldn't find an existing block to
insert nodes while this kmalloc() call is inside a spin_lock_irq_save pair,
i.e. IRQs disabled.

Even though this may be a bug that should be fixed, I still try to send this
patch as a quick fix (work around) since it does no harm to assign default
values of every registers when using regcache.

Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-28 00:17:02 +00:00
..
efika-audio-fabric.c ASoC: fsl: Add .owner to struct snd_soc_card 2011-12-22 17:34:32 +00:00
eukrea-tlv320.c ASoC: eukrea-tlv320: Add DT support. 2014-03-03 12:27:52 +08:00
fsl_asrc_dma.c ASoC: fsl_sarc_dma: Check pair before using it 2014-08-04 15:48:41 +01:00
fsl_asrc.c ASoC: fsl_asrc: Add reg_defaults for regmap to fix kernel dump 2014-10-28 00:17:02 +00:00
fsl_asrc.h ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers 2014-07-29 19:22:49 +01:00
fsl_dma.c ASoC: fsl: Fix build problem 2014-06-12 00:34:16 +01:00
fsl_dma.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
fsl_esai.c Merge branch 'topic/fsl' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fsl-esai 2014-09-01 10:49:32 +01:00
fsl_esai.h ASoC: fsl_esai: refine esai for TDM support 2014-08-16 17:06:15 -05:00
fsl_sai.c ASoC: fsl-sai: using 'lsb-first' property instead of 'big-endian-data'. 2014-09-01 16:36:42 +01:00
fsl_sai.h ASoC: fsl-sai: using 'lsb-first' property instead of 'big-endian-data'. 2014-09-01 16:36:42 +01:00
fsl_spdif.c Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/sirf', 'asoc/topic/spdif', 'asoc/topic/ssm2602' and 'asoc/topic/ssm4567' into asoc-next 2014-10-06 12:49:05 +01:00
fsl_spdif.h ASoC: fsl_spdif: Add support for output sample rates 96kHz and 192kHz 2014-06-17 15:36:54 +01:00
fsl_ssi_dbg.c ASoC: fsl-ssi: Move debugging to seperate file 2014-05-20 23:02:26 +01:00
fsl_ssi.c Merge remote-tracking branches 'asoc/topic/fsl-easi', 'asoc/topic/fsl-sai', 'asoc/topic/fsl-ssi' and 'asoc/topic/intel' into asoc-next 2014-10-06 12:48:59 +01:00
fsl_ssi.h ASoC: fsl-ssi: Use regmap 2014-06-01 11:55:08 +01:00
fsl_utils.c ASoC: fsl-utils: Add fsl_asoc_xlate_tdm_slot_mask() support. 2014-03-25 13:06:43 +00:00
fsl_utils.h ASoC: fsl-utils: Add fsl_asoc_xlate_tdm_slot_mask() support. 2014-03-25 13:06:43 +00:00
fsl-asoc-card.c ASoC: fsl-asoc-card: Fix build warning for maybe-uninitialized 2014-08-18 09:52:51 -05:00
imx-audmux.c ASoC: imx-audmux: Use uintptr_t for port numbers 2014-08-04 16:30:24 +01:00
imx-audmux.h ASoC: imx-audmux: Move definitions to dt-bindings 2013-08-16 11:05:17 +01:00
imx-es8328.c Merge remote-tracking branches 'asoc/fix/88pm860x', 'asoc/fix/fsl', 'asoc/fix/imx', 'asoc/fix/mc13783', 'asoc/fix/rockchip' and 'asoc/fix/simple' into asoc-linus 2014-10-08 16:44:50 +01:00
imx-mc13783.c ASoC: fsl: fix pm support of machine drivers 2014-02-10 13:18:37 +00:00
imx-pcm-dma.c Update imx-sdma cyclic handling to report residue 2014-07-01 12:23:42 +05:30
imx-pcm-fiq.c ASoC: fsl: imx-pcm-fiq: Remove unneeded 'out' label 2014-02-24 14:41:15 +09:00
imx-pcm.h ASoC: fsl: Use devm_snd_dmaengine_pcm_register() 2013-12-02 11:48:54 +00:00
imx-sgtl5000.c ASoC: fsl: fix pm support of machine drivers 2014-02-10 13:18:37 +00:00
imx-spdif.c Merge remote-tracking branches 'asoc/topic/ad1836', 'asoc/topic/ad193x', 'asoc/topic/adav80x', 'asoc/topic/adsp', 'asoc/topic/ak4641', 'asoc/topic/ak4642', 'asoc/topic/arizona', 'asoc/topic/atmel', 'asoc/topic/au1x', 'asoc/topic/axi', 'asoc/topic/bcm2835', 'asoc/topic/blackfin', 'asoc/topic/cs4271', 'asoc/topic/cs42l52', 'asoc/topic/da7210', 'asoc/topic/davinci', 'asoc/topic/ep93xx', 'asoc/topic/fsl', 'asoc/topic/fsl-mxs', 'asoc/topic/generic', 'asoc/topic/hdmi', 'asoc/topic/jack', 'asoc/topic/jz4740', 'asoc/topic/max98090', 'asoc/topic/mxs', 'asoc/topic/omap', 'asoc/topic/pxa', 'asoc/topic/rcar', 'asoc/topic/s6000', 'asoc/topic/sai', 'asoc/topic/samsung', 'asoc/topic/sgtl5000', 'asoc/topic/spear', 'asoc/topic/ssm2518', 'asoc/topic/ssm2602', 'asoc/topic/tegra', 'asoc/topic/tlv320aic3x', 'asoc/topic/twl6040', 'asoc/topic/txx9', 'asoc/topic/uda1380', 'asoc/topic/width', 'asoc/topic/wm8510', 'asoc/topic/wm8523', 'asoc/topic/wm8580', 'asoc/topic/wm8711', 'asoc/topic/wm8728', 'asoc/topic/wm8731', 'asoc/topic/wm8741', 'asoc/topic/wm8750', 'asoc/topic/wm8753', 'asoc/topic/wm8776', 'asoc/topic/wm8804', 'asoc/topic/wm8900', 'asoc/topic/wm8901', 'asoc/topic/wm8940', 'asoc/topic/wm8962', 'asoc/topic/wm8974', 'asoc/topic/wm8985', 'asoc/topic/wm8988', 'asoc/topic/wm8990', 'asoc/topic/wm8991', 'asoc/topic/wm8994', 'asoc/topic/wm8995', 'asoc/topic/wm9081' and 'asoc/topic/x86' into asoc-next 2014-01-02 13:01:55 +00:00
imx-ssi.c ASoC: imx-ssi: Add .xlate_tdm_slot_mask() support. 2014-03-25 13:06:43 +00:00
imx-ssi.h ASoC: fsl: imx-ssi: omit ssi counter to avoid harm in unbalanced situation 2013-12-02 11:57:02 +00:00
imx-wm8962.c ASoC: fsl: fix pm support of machine drivers 2014-02-10 13:18:37 +00:00
Kconfig Merge remote-tracking branches 'asoc/topic/davinci', 'asoc/topic/dmic', 'asoc/topic/drivers', 'asoc/topic/es8328' and 'asoc/topic/fsl' into asoc-next 2014-10-06 12:48:57 +01:00
Makefile ASoC: fsl: add imx-es8328 machine driver 2014-08-16 17:18:07 -05:00
mpc5200_dma.c ASoC: fsl: Don't set unused struct snd_pcm_hardware fields 2014-01-07 11:40:24 +00:00
mpc5200_dma.h ASoC: fsl: mpc5200 combine psc_dma platform data 2012-09-18 23:03:42 -04:00
mpc5200_psc_ac97.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
mpc5200_psc_ac97.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
mpc5200_psc_i2s.c ASoC: fsl: Don't mix SNDRV_PCM_RATE_CONTINUOUS with specific rates 2014-01-14 20:42:26 +00:00
mpc8610_hpcd.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
mx27vis-aic32x4.c ASoC: fsl: remove use of imx-pcm-audio from imx-ssi 2013-05-15 09:27:27 +04:00
p1022_ds.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
p1022_rdk.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
pcm030-audio-fabric.c ASoC: fsl: set correct platform drvdata in pcm030_fabric_probe() 2013-12-02 11:13:19 +00:00
phycore-ac97.c ASoC: fsl: remove use of imx-fiq-pcm-audio from imx-ssi 2013-05-15 09:27:27 +04:00
wm1133-ev1.c ASoC: wm1133-ev1: Convert to table based DAPM setup 2014-03-03 16:06:20 +08:00