[REBASED on main (r3branch)from r2-stable branch]audio:configure pcm1 to slave during...
authorRamesh Babu K V <ramesh.babu@intel.com>
Sat, 10 Dec 2011 08:49:13 +0000 (14:19 +0530)
committerbuildbot <buildbot@intel.com>
Fri, 23 Dec 2011 13:39:40 +0000 (05:39 -0800)
BZ: 17975

MSIC PCM1 must be configured to slave and short/long sync
mode in order to tristate the PCM1 bus.

Configure the PCM1 to slave mode before disabling
the PCM1.

Change-Id: I572805e07ae14a62de31b533d68b4258ac18094e
Old-Change-Id: Ia80fedc45c44d983335f4887af1480cc9405fbea
Signed-off-by: Ramesh Babu K V <ramesh.babu@intel.com>
Reviewed-on: http://android.intel.com:8080/29539
Reviewed-by: M, Arulselvan <arulselvan.m@intel.com>
Tested-by: M, Arulselvan <arulselvan.m@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
sound/soc/codecs/sn95031.c

index 24e4f70..b83aa44 100644 (file)
@@ -1025,8 +1025,9 @@ static int sn95031_voice_hw_free(struct snd_pcm_substream *substream,
 {
        pr_debug("inside hw_free");
        snd_soc_update_bits(dai->codec, SN95031_PCM1C3, BIT(0), 0);
-       /* PCM1 should be in short or long sync mode for Tx line
-               to be in Hi-Z state */
+       /* PCM1 should be in slave, short or long sync mode for
+               Tx line to be in Hi-Z state */
+       snd_soc_update_bits(dai->codec, SN95031_PCM1C3, BIT(7), 0);
        snd_soc_write(dai->codec, SN95031_PCM1C2, 0x00);
        return 0;
 }