summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorVinod G <vinodg@nvidia.com>2011-04-04 18:20:52 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-04-26 15:55:06 -0700
commit3c4c1b153f3625999b2c57a417645e89357e2bf8 (patch)
tree15ee83088ab9e72b312af49eff5456a7b739e273 /sound
parenta5eddb5e742ab0216defc5a3f149028e349485ca (diff)
arm: tegra: Clock cleanup
Code cleanup to remove unused clock Add the base frame to support audio manager. Original-Change-Id: I5d241402d003370ea5f23202647d9a0a0619cfdd Reviewed-on: http://git-master/r/26656 Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Tested-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com> Change-Id: Idd960fa3942fcde79f1a1b9949b6cbe5140c4f38
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/tegra/tegra_i2s.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/sound/soc/tegra/tegra_i2s.c b/sound/soc/tegra/tegra_i2s.c
index 33a2c4a1ff1e..53e32fb81083 100644
--- a/sound/soc/tegra/tegra_i2s.c
+++ b/sound/soc/tegra/tegra_i2s.c
@@ -36,9 +36,8 @@ struct tegra_i2s_info {
/* Control for whole I2S (Data format, etc.) */
unsigned int bit_format;
bool i2s_master;
+ int fifo_attn[AUDIO_FIFO_CNT];
int ref_count;
- int fifo_tx_attn;
- int fifo_rx_attn;
struct i2s_runtime_data i2s_regs;
struct das_regs_cache das_regs;
};
@@ -120,9 +119,9 @@ void set_fifo_attention(struct snd_pcm_substream *substream,
#endif
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
- info->fifo_tx_attn = fifoattn;
+ info->fifo_attn[I2S_FIFO_TX] = fifoattn;
else
- info->fifo_rx_attn = fifoattn;
+ info->fifo_attn[I2S_FIFO_RX] = fifoattn;
}
/* playback */
@@ -131,7 +130,7 @@ static inline void start_i2s_playback(struct snd_soc_dai *cpu_dai)
struct tegra_i2s_info *info = cpu_dai->private_data;
i2s_fifo_set_attention_level(cpu_dai->id, I2S_FIFO_TX,
- info->fifo_tx_attn);
+ info->fifo_attn[I2S_FIFO_TX]);
i2s_fifo_enable(cpu_dai->id, I2S_FIFO_TX, 1);
}
@@ -149,7 +148,7 @@ static inline void start_i2s_capture(struct snd_soc_dai *cpu_dai)
struct tegra_i2s_info *info = cpu_dai->private_data;
i2s_fifo_set_attention_level(cpu_dai->id, I2S_FIFO_RX,
- info->fifo_rx_attn);
+ info->fifo_attn[I2S_FIFO_RX]);
i2s_fifo_enable(cpu_dai->id, I2S_FIFO_RX, 1);
}
@@ -550,6 +549,12 @@ static int tegra_i2s_driver_probe(struct platform_device *pdev)
goto fail_unmap_mem;
}
}
+ return 0;
+
+fail_clock:
+
+ if (info->dap_mclk)
+ clk_disable(info->dap_mclk);
/* Disable i2s clk to save power */
clk_disable(info->i2s_clk);