17605eb5bSStephen Warren /* 27605eb5bSStephen Warren * tegra_pcm.h - Definitions for Tegra PCM driver 37605eb5bSStephen Warren * 47605eb5bSStephen Warren * Author: Stephen Warren <swarren@nvidia.com> 57605eb5bSStephen Warren * Copyright (C) 2010 - NVIDIA, Inc. 67605eb5bSStephen Warren * 77605eb5bSStephen Warren * Based on code copyright/by: 87605eb5bSStephen Warren * 97605eb5bSStephen Warren * Copyright (c) 2009-2010, NVIDIA Corporation. 107605eb5bSStephen Warren * Scott Peterson <speterson@nvidia.com> 117605eb5bSStephen Warren * 127605eb5bSStephen Warren * Copyright (C) 2010 Google, Inc. 137605eb5bSStephen Warren * Iliyan Malchev <malchev@google.com> 147605eb5bSStephen Warren * 157605eb5bSStephen Warren * This program is free software; you can redistribute it and/or 167605eb5bSStephen Warren * modify it under the terms of the GNU General Public License 177605eb5bSStephen Warren * version 2 as published by the Free Software Foundation. 187605eb5bSStephen Warren * 197605eb5bSStephen Warren * This program is distributed in the hope that it will be useful, but 207605eb5bSStephen Warren * WITHOUT ANY WARRANTY; without even the implied warranty of 217605eb5bSStephen Warren * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 227605eb5bSStephen Warren * General Public License for more details. 237605eb5bSStephen Warren * 247605eb5bSStephen Warren * You should have received a copy of the GNU General Public License 257605eb5bSStephen Warren * along with this program; if not, write to the Free Software 267605eb5bSStephen Warren * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 277605eb5bSStephen Warren * 02110-1301 USA 287605eb5bSStephen Warren * 297605eb5bSStephen Warren */ 307605eb5bSStephen Warren 317605eb5bSStephen Warren #ifndef __TEGRA_PCM_H__ 327605eb5bSStephen Warren #define __TEGRA_PCM_H__ 337605eb5bSStephen Warren 347605eb5bSStephen Warren #include <mach/dma.h> 357605eb5bSStephen Warren 367605eb5bSStephen Warren struct tegra_pcm_dma_params { 377605eb5bSStephen Warren unsigned long addr; 387605eb5bSStephen Warren unsigned long wrap; 397605eb5bSStephen Warren unsigned long width; 407605eb5bSStephen Warren unsigned long req_sel; 417605eb5bSStephen Warren }; 427605eb5bSStephen Warren 437605eb5bSStephen Warren struct tegra_runtime_data { 447605eb5bSStephen Warren struct snd_pcm_substream *substream; 457605eb5bSStephen Warren spinlock_t lock; 467605eb5bSStephen Warren int running; 477605eb5bSStephen Warren int dma_pos; 487605eb5bSStephen Warren int dma_pos_end; 497605eb5bSStephen Warren int period_index; 507605eb5bSStephen Warren int dma_req_idx; 517605eb5bSStephen Warren struct tegra_dma_req dma_req[2]; 527605eb5bSStephen Warren struct tegra_dma_channel *dma_chan; 537605eb5bSStephen Warren }; 547605eb5bSStephen Warren 557605eb5bSStephen Warren #endif 56