diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> | 2012-02-26 19:21:53 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-03-04 15:34:44 +0100 |
commit | ad20ff920c1fd217578e2c637dd50c1878a21c06 (patch) | |
tree | dec06db7b77a4b0737f82f40b3342bfab2c8c426 /sound | |
parent | ASoC: core: Split the union for CODEC/platform in the DAI (diff) | |
download | linux-ad20ff920c1fd217578e2c637dd50c1878a21c06.tar.xz linux-ad20ff920c1fd217578e2c637dd50c1878a21c06.zip |
ASoC: wm8753: fix initialization
Without that fix the wm8753 SPI initialization fails, and then produces
a kernel panic during boot with the following call trace:
Unable to handle kernel paging request at virtual address 37386d9b
[<c01ccafc>] (regmap_get_val_bytes+0x0/0x14) from [<c0243dfc>] (snd_soc_codec_set_cache_io+0x9c/0xcc)
[<c0243dfc>] (snd_soc_codec_set_cache_io+0x9c/0xcc) from [<c0244a4c>] (wm8753_probe+0x5c/0x1c4)
[<c0244a4c>] (wm8753_probe+0x5c/0x1c4) from [<c023bb24>] (soc_probe_codec+0x174/0x284)
[<c023bb24>] (soc_probe_codec+0x174/0x284) from [<c023c2c0>] (snd_soc_instantiate_cards+0x68c/0xe28)
[<c023c2c0>] (snd_soc_instantiate_cards+0x68c/0xe28) from [<c023d278>] (snd_soc_register_card+0x240/0x2d4)
[<c023d278>] (snd_soc_register_card+0x240/0x2d4) from [<c023d330>] (soc_probe+0x24/0x40)
[<c023d330>] (soc_probe+0x24/0x40) from [<c01c3900>] (platform_drv_probe+0x14/0x18)
[...]
The commit d3398ff05907167f463e119421b053ce043741d1
( ASoC: Convert WM8753 to direct regmap API usage ) introduced
the problem.
Thanks to Lars-Peter Clausen for helping me a bit during the debugging.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm8753.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index 59c28dbc5fc9..e27e7b62b365 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c @@ -1578,6 +1578,9 @@ static int __devinit wm8753_spi_probe(struct spi_device *spi) dev_err(&spi->dev, "Failed to register CODEC: %d\n", ret); goto err_regmap; } + + return 0; + err_regmap: regmap_exit(wm8753->regmap); err: @@ -1634,6 +1637,8 @@ static __devinit int wm8753_i2c_probe(struct i2c_client *i2c, goto err_regmap; } + return 0; + err_regmap: regmap_exit(wm8753->regmap); err: |