summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/tlv320aic3x.c
diff options
context:
space:
mode:
authorJarkko Nikula <jhnikula@gmail.com>2010-08-23 10:38:40 +0300
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-08-23 12:03:09 +0100
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)
codec->hw_write = (hw_write_t) i2c_master_send;
codec->control_data = aic3x->control_data;
+ aic3x_init(codec);
+
if (aic3x->setup) {
/* setup GPIO functions */
aic3x_write(codec, AIC3X_GPIO1_REG,
@@ -1239,8 +1241,6 @@ static int aic3x_probe(struct snd_soc_codec *codec)
(aic3x->setup->gpio_func[1] & 0xf) << 4);
}
- aic3x_init(codec);
-
snd_soc_add_controls(codec, aic3x_snd_controls,
ARRAY_SIZE(aic3x_snd_controls));