video: tegra: host1x driver
authorGary King <gking@nvidia.com>
Tue, 31 Aug 2010 22:51:55 +0000 (15:51 -0700)
committerRebecca Schultz Zavin <rebecca@android.com>
Fri, 8 Oct 2010 22:59:01 +0000 (15:59 -0700)
commite5bc8c86174f909e5323167bbe9605c667d31b1a
treedead8de5a5cd52535c5f5f58459c722bc5941898
parent10c751b8f5bb78f674d4939b47be933934bb23dd
video: tegra: host1x driver

the graphics and display hardware on tegra SoCs is accessed
through a command DMA front-end called host1x

host driver clients place commands into memory objects called
streams, and submit a stream on one of 8 channels: the assignment
of streams-to-channels depends on the hardware module(s) programmed
by the stream: for example, all streams which program the 3D
hardware are submitted on channel 1.

the host1x hardware includes two synchronization primitives to
allow command streams to synchronize access to memory or to
hardware engines shared across channels (e.g. the 2D blitter):
sync points and module mutexes. both primitives can also be
used to synchronize with the CPU.

the host1x driver performs power management for all modules
behind the host block: once a module is idle (i.e., the
last stream which accesses it has completed, indicated by
a syncpoint) and has remained idle for an extended period
of time, the module's clock (and power gate island, if the
module is uniquely power-gated) is disabled, and will be
automatically re-enabled when a new stream is submitted for
that module.

includes channel debugging support originally implemented
by Erik Gilling <konkers@google.com>

Original Author: Antti Hatala <ahatala@nvidia.com>
Signed-off-by: Gary King <gking@nvidia.com>
Change-Id: Idf0ecc8e7710f3839903a9fbfbe5650990a96b2c
21 files changed:
arch/arm/mach-tegra/include/mach/nvhost.h
drivers/video/tegra/host/Makefile
drivers/video/tegra/host/debug.c [new file with mode: 0644]
drivers/video/tegra/host/dev.c
drivers/video/tegra/host/dev.h
drivers/video/tegra/host/nvhost_3dctx.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_acm.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_acm.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_cdma.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_cdma.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_channel.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_channel.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_cpuaccess.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_cpuaccess.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_hardware.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_hwctx.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_intr.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_intr.h [new file with mode: 0644]
drivers/video/tegra/host/nvhost_mpectx.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_syncpt.c [new file with mode: 0644]
drivers/video/tegra/host/nvhost_syncpt.h [new file with mode: 0644]