summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorNikesh Oswal <noswal@nvidia.com>2011-12-28 14:26:51 +0530
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-30 10:48:00 +0530
commit440d5168436588fd72b74092cfd4aef0740c079f (patch)
tree06baa4dac4716a06ff5a4b3df15e4e709b97a28f /sound/soc
parent891fb3bb263ca324e2324153dcf8d566120ae834 (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.c12
-rw-r--r--sound/soc/tegra/tegra30_i2s.h2
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 {