From: Jarkko Nikula Date: Mon, 23 Aug 2010 07:38:40 +0000 (+0300) Subject: ASoC: Fix tlv320aic3x GPIO initialization X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=37b47656baa3e4e78d539db2531a75590652327b;p=linux-beck.git 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 Acked-by: Mark Brown Signed-off-by: Liam Girdwood --- 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));