aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/tlv320aic3x.c
diff options
context:
space:
mode:
authorJarkko Nikula <jhnikula@gmail.com>2010-08-23 03:38:40 -0400
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-08-23 07:03:09 -0400
commit37b47656baa3e4e78d539db2531a75590652327b (patch)
tree4a96333bc90dbae6491bbcfd765309d8bca954b8 /sound/soc/codecs/tlv320aic3x.c
parent3fabe089ad8b8f238bc9de3e7586ae8d2a81f57c (diff)
ASoC: Fix tlv320aic3x GPIO initialization
aic3x_init does a soft reset first and thus TLV320AIC3x GPIO setup must be done after doing the basic init. Before multi-component the init was done at i2c probe time and GPIO setup at soc probe time. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound/soc/codecs/tlv320aic3x.c')
-rw-r--r--sound/soc/codecs/tlv320aic3x.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 43fd9c171742..0b80e242a66d 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -1231,6 +1231,8 @@ static int aic3x_probe(struct snd_soc_codec *codec)
1231 codec->hw_write = (hw_write_t) i2c_master_send; 1231 codec->hw_write = (hw_write_t) i2c_master_send;
1232 codec->control_data = aic3x->control_data; 1232 codec->control_data = aic3x->control_data;
1233 1233
1234 aic3x_init(codec);
1235
1234 if (aic3x->setup) { 1236 if (aic3x->setup) {
1235 /* setup GPIO functions */ 1237 /* setup GPIO functions */
1236 aic3x_write(codec, AIC3X_GPIO1_REG, 1238 aic3x_write(codec, AIC3X_GPIO1_REG,
@@ -1239,8 +1241,6 @@ static int aic3x_probe(struct snd_soc_codec *codec)
1239 (aic3x->setup->gpio_func[1] & 0xf) << 4); 1241 (aic3x->setup->gpio_func[1] & 0xf) << 4);
1240 } 1242 }
1241 1243
1242 aic3x_init(codec);
1243
1244 snd_soc_add_controls(codec, aic3x_snd_controls, 1244 snd_soc_add_controls(codec, aic3x_snd_controls,
1245 ARRAY_SIZE(aic3x_snd_controls)); 1245 ARRAY_SIZE(aic3x_snd_controls));
1246 1246