diff options
author | Nikesh Oswal <noswal@nvidia.com> | 2011-12-28 14:26:51 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-30 10:48:00 +0530 |
commit | 440d5168436588fd72b74092cfd4aef0740c079f (patch) | |
tree | 06baa4dac4716a06ff5a4b3df15e4e709b97a28f /sound/soc | |
parent | 891fb3bb263ca324e2324153dcf8d566120ae834 (diff) |
asoc: tegra: handling of i2s capture in voice call recording
stop the enabling/disabling of i2s capture from i2s dai in
voice call recording usecase because this would be handled
by the voice call management functions and also add parameters
for voice call record usecase in i2s structures.
Bug: 912897
Change-Id: I9df117300121218fe7f258fd8c79092ab3e1f8e1
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/72352
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/tegra/tegra30_i2s.c | 12 | ||||
-rw-r--r-- | sound/soc/tegra/tegra30_i2s.h | 2 |
2 files changed, 10 insertions, 4 deletions
diff --git a/sound/soc/tegra/tegra30_i2s.c b/sound/soc/tegra/tegra30_i2s.c index f540e4bb11d3..c1de635765a5 100644 --- a/sound/soc/tegra/tegra30_i2s.c +++ b/sound/soc/tegra/tegra30_i2s.c @@ -432,15 +432,19 @@ static void tegra30_i2s_stop_playback(struct tegra30_i2s *i2s) static void tegra30_i2s_start_capture(struct tegra30_i2s *i2s) { tegra30_ahub_enable_rx_fifo(i2s->rxcif); - i2s->reg_ctrl |= TEGRA30_I2S_CTRL_XFER_EN_RX; - tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl); + if (!i2s->is_call_mode_rec) { + i2s->reg_ctrl |= TEGRA30_I2S_CTRL_XFER_EN_RX; + tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl); + } } static void tegra30_i2s_stop_capture(struct tegra30_i2s *i2s) { tegra30_ahub_disable_rx_fifo(i2s->rxcif); - i2s->reg_ctrl &= ~TEGRA30_I2S_CTRL_XFER_EN_RX; - tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl); + if (!i2s->is_call_mode_rec) { + i2s->reg_ctrl &= ~TEGRA30_I2S_CTRL_XFER_EN_RX; + tegra30_i2s_write(i2s, TEGRA30_I2S_CTRL, i2s->reg_ctrl); + } } static int tegra30_i2s_trigger(struct snd_pcm_substream *substream, int cmd, diff --git a/sound/soc/tegra/tegra30_i2s.h b/sound/soc/tegra/tegra30_i2s.h index 1240cc65d1fb..b9baddd5db8e 100644 --- a/sound/soc/tegra/tegra30_i2s.h +++ b/sound/soc/tegra/tegra30_i2s.h @@ -252,6 +252,8 @@ struct tegra30_i2s { #ifdef CONFIG_PM u32 reg_cache[(TEGRA30_I2S_CIF_TX_CTRL >> 2) + 1]; #endif + int call_record_dam_ifc; + int is_call_mode_rec; }; struct codec_config { |