[ARM] tegra: tegra_i2s_audio: configure in/out buffer sizes from user space
authorIliyan Malchev <malchev@google.com>
Tue, 17 Aug 2010 18:34:39 +0000 (11:34 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Thu, 1 Dec 2011 05:35:13 +0000 (21:35 -0800)
commitefea6a1ee6b0dbdc3bdf87ccf39eb2c473f57dba
tree5f0ce17d083731a7de4374431c64eb17cc2f682c
parent8f5120c386e37ddeb0313f9373a51af5f6809e8d
[ARM] tegra: tegra_i2s_audio: configure in/out buffer sizes from user space

-- Add ioctls for configuring buffer, threshold, and DMA-transaction sizes from
   user space.
-- Buffer sizes are provided in orders of magnitude.
-- Allocate max-sized buffers during probe, and allow the user to resize them
   only within the original allocation, to avoid the risk from kmalloc failing
   due to kernel-heap fragmentation, and also to avoid race conditions on DMA
   shut-down.
-- In tegra_audio_write(), moved the call to start_playback_if_necessary()
   immediately after writing to the fifo.  Otherwise, when the fifo size is
   smaller than what the user is trying to write, the user will block before
   playback is started.
-- Silenced printk spew on spinning on i2s registers after transactions are
   completed.
-- Cleaned up a 80-col style violation in downsample()

Signed-off-by: Iliyan Malchev <malchev@google.com>
arch/arm/mach-tegra/tegra_i2s_audio.c
include/linux/tegra_audio.h