From e39c2b74821ca6b6756abc24a49f8f76c816b30b Mon Sep 17 00:00:00 2001 From: Selma Bensaid Date: Mon, 4 Jun 2012 11:15:14 +0200 Subject: [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 Reviewed-on: http://android.intel.com:8080/51394 Reviewed-by: De Chivre, Renaud Reviewed-by: Le Gall, Louis Reviewed-by: Di Folco, NeilX Tested-by: Mendi, EduardoX Reviewed-by: buildbot Tested-by: buildbot --- sound/pci/intel_mid_i2s/intel_mid_i2s.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'sound') 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); -- cgit v1.2.3