summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Nikula2010-08-23 09:38:40 +0200
committerLiam Girdwood2010-08-23 13:03:09 +0200
commit37b47656baa3e4e78d539db2531a75590652327b (patch)
tree4a96333bc90dbae6491bbcfd765309d8bca954b8
parentASoC: TI WL1273 FM Radio Codec. (diff)
downloadkernel-qcow2-linux-37b47656baa3e4e78d539db2531a75590652327b.tar.gz
kernel-qcow2-linux-37b47656baa3e4e78d539db2531a75590652327b.tar.xz
kernel-qcow2-linux-37b47656baa3e4e78d539db2531a75590652327b.zip
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>
-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));