video: tegra: add GPU memory management driver (nvmap)
authorGary King <gking@nvidia.com>
Tue, 31 Aug 2010 21:04:37 +0000 (14:04 -0700)
committerRebecca Schultz Zavin <rebecca@android.com>
Fri, 8 Oct 2010 22:59:00 +0000 (15:59 -0700)
commitc4462d163bd4bec7c70478efd8b925ad75bc6834
tree19a17b1f254546ac69878d98ef977ad7625a1901
parent70d8295c1fad90555c3c7f00e881481451d17a60
video: tegra: add GPU memory management driver (nvmap)

nvmap provides an interface for user- and kernel-space clients to
allocate and access memory "handles" which can be pinned to enable
the memory to be shared with DMA devices on the system, and may
also be mapped (using caller-specified cache attributes) so that
they are directly accessible by the CPU.

the memory handle object gives clients a common API to allocate from
multiple types of memory: platform-reserved physically contiguous
"carveout" memory, physically contiguous (order > 0) OS pages,
or physically discontiguous order-0 OS pages that can be remapped
into a contiguous region of the DMA device's virtual address space
through the tegra IOVMM subsystem.

unpinned and unmapped memory handles are relocatable at run-time
by the nvmap system. handles may also be shared between multiple
clients, allowing (for example) a window manager and its client
applications to directly share framebuffers

Change-Id: Ie8ead17fe7ab64f1c27d922b1b494f2487a478b6
Signed-off-by: Gary King <gking@nvidia.com>
14 files changed:
arch/arm/mach-tegra/include/mach/nvmap.h [new file with mode: 0644]
drivers/video/tegra/Kconfig
drivers/video/tegra/Makefile
drivers/video/tegra/nvmap/Makefile [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap.h [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_dev.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_handle.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_heap.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_heap.h [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_ioctl.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_ioctl.h [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_mru.c [new file with mode: 0644]
drivers/video/tegra/nvmap/nvmap_mru.h [new file with mode: 0644]