summaryrefslogtreecommitdiff
path: root/sound/soc/tegra/tegra_pcm.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-03-16 17:38:41 +0100
committerTakashi Iwai <tiwai@suse.de>2011-03-16 17:38:41 +0100
commit27b92d4ff2be2359a21ff4acde5b63563ff720e2 (patch)
tree49691b22fe1318aa68d5ebdff74795f004f0cf8f /sound/soc/tegra/tegra_pcm.h
parent5de0ee574be8f6922a6c33f2fbc7e9b130a2f626 (diff)
parente58a8947b0264ec1f43ce5deef563b72acf1284f (diff)
Merge branch 'topic/asoc' into for-linus
Diffstat (limited to 'sound/soc/tegra/tegra_pcm.h')
-rw-r--r--sound/soc/tegra/tegra_pcm.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/sound/soc/tegra/tegra_pcm.h b/sound/soc/tegra/tegra_pcm.h
new file mode 100644
index 000000000000..dbb90339fe0d
--- /dev/null
+++ b/sound/soc/tegra/tegra_pcm.h
@@ -0,0 +1,55 @@
+/*
+ * tegra_pcm.h - Definitions for Tegra PCM driver
+ *
+ * Author: Stephen Warren <swarren@nvidia.com>
+ * Copyright (C) 2010 - NVIDIA, Inc.
+ *
+ * Based on code copyright/by:
+ *
+ * Copyright (c) 2009-2010, NVIDIA Corporation.
+ * Scott Peterson <speterson@nvidia.com>
+ *
+ * Copyright (C) 2010 Google, Inc.
+ * Iliyan Malchev <malchev@google.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef __TEGRA_PCM_H__
+#define __TEGRA_PCM_H__
+
+#include <mach/dma.h>
+
+struct tegra_pcm_dma_params {
+ unsigned long addr;
+ unsigned long wrap;
+ unsigned long width;
+ unsigned long req_sel;
+};
+
+struct tegra_runtime_data {
+ struct snd_pcm_substream *substream;
+ spinlock_t lock;
+ int running;
+ int dma_pos;
+ int dma_pos_end;
+ int period_index;
+ int dma_req_idx;
+ struct tegra_dma_req dma_req[2];
+ struct tegra_dma_channel *dma_chan;
+};
+
+#endif