asoc:tegra: Enable I2S tx in voice call
Nikesh Oswal [Fri, 11 May 2012 14:23:27 +0000 (19:23 +0530)]
Associated with I2S there is a playback ref count, when
we open the I2S for plyabck it is incremented and during
voice call we check if its not zero then enable the tX.
This logic fails if the start-trigger is not called for the prior
playback stream. Hence we unconditionally enable the tx,
which is harmless

Bug: 981806

Change-Id: I66aafda596e2b2b03745e93f3e851dedc3b8ef5d
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/101996
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Scott Peterson <speterson@nvidia.com>

sound/soc/tegra/tegra30_i2s.c

index 02d1038..aba9642 100644 (file)
@@ -726,10 +726,7 @@ int tegra30_make_voice_call_connections(struct codec_config *codec_info,
        tegra30_dam_enable(bb_i2s->dam_ifc, TEGRA30_DAM_ENABLE,
                TEGRA30_DAM_CHIN0_SRC);
 
-       /* if this is the only user of i2s tx then enable it*/
-       if (codec_i2s->playback_ref_count == 1)
-               codec_i2s->reg_ctrl |= TEGRA30_I2S_CTRL_XFER_EN_TX;
-
+       codec_i2s->reg_ctrl |= TEGRA30_I2S_CTRL_XFER_EN_TX;
        codec_i2s->reg_ctrl |= TEGRA30_I2S_CTRL_XFER_EN_RX;
        tegra30_i2s_write(codec_i2s, TEGRA30_I2S_CTRL,
                codec_i2s->reg_ctrl);