diff options
author | Selma Bensaid <selma.bensaid@intel.com> | 2012-06-04 11:15:14 +0200 |
---|---|---|
committer | buildbot <buildbot@intel.com> | 2012-06-05 11:55:05 -0700 |
commit | e39c2b74821ca6b6756abc24a49f8f76c816b30b (patch) | |
tree | de3b6a58a1dde08d31e6c5af4b5369519d7902e9 | |
parent | d0afdf600fa516206f8c447ad6ef26a09803b43a (diff) | |
download | kernel-mfld-blackbay-e39c2b74821ca6b6756abc24a49f8f76c816b30b.tar.gz kernel-mfld-blackbay-e39c2b74821ca6b6756abc24a49f8f76c816b30b.tar.bz2 kernel-mfld-blackbay-e39c2b74821ca6b6756abc24a49f8f76c816b30b.zip |
[AUDIO] Intel MID I2S: Set the SSP in SLAVE MODE when closing the device
BZ: 38025
IN BT SCO Normal Mode the SSP1 is used in MASTER MODE. The SSP1 should be
configured in SLAVE MODE when closed to avoid any impact on Modem-MSIC and
Modem-BT connection and avoid audio glitches.
Change-Id: I6628e82623c6d28e1aa60fa376e305de7c481a2c
Signed-off-by: Selma Bensaid <selma.bensaid@intel.com>
Reviewed-on: http://android.intel.com:8080/51394
Reviewed-by: De Chivre, Renaud <renaud.de.chivre@intel.com>
Reviewed-by: Le Gall, Louis <louis.le.gall@intel.com>
Reviewed-by: Di Folco, NeilX <neilx.di.folco@intel.com>
Tested-by: Mendi, EduardoX <eduardox.mendi@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
-rw-r--r-- | sound/pci/intel_mid_i2s/intel_mid_i2s.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/intel_mid_i2s/intel_mid_i2s.c b/sound/pci/intel_mid_i2s/intel_mid_i2s.c index ea6e8942cd6..365967c61a7 100644 --- a/sound/pci/intel_mid_i2s/intel_mid_i2s.c +++ b/sound/pci/intel_mid_i2s/intel_mid_i2s.c @@ -986,6 +986,16 @@ void intel_mid_i2s_close(struct intel_mid_i2s_hdl *drv_data) i2s_disable(drv_data); put_device(&drv_data->pdev->dev); write_SSCR0(0, reg); + /* + * Set the SSP in SLAVE Mode and Enable TX tristate + * to ensure that when leaving D0i3 the SSP does + * not drive the FS and TX pins. + * + */ + write_SSCR1((SSCR1_SFRMDIR_MASK << SSCR1_SFRMDIR_SHIFT) + | (SSCR1_SCLKDIR_MASK << SSCR1_SCLKDIR_SHIFT) + | (SSCR1_TTE_MASK << SSCR1_TTE_SHIFT), + reg); dev_dbg(&(drv_data->pdev->dev), "SSP Stopped.\n"); clear_bit(I2S_PORT_CLOSING, &drv_data->flags); |