summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorKrishna Reddy <vdumpa@nvidia.com>2011-09-06 23:34:42 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-10-06 23:49:55 -0700
commitd649a9c9800714d6c74cf1e7ab1fb4340ac52c8d (patch)
tree13c808657e57f367c18a50ba427d6c7431af353d /drivers
parent0a752daa7f1e9a80a5a9a473a32803efcab329f8 (diff)
video: tegra: nvmap: Add VPR heap support.
Reviewed-on: http://git-master/r/51026 Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Tested-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> (cherry picked from commit 060055eea2082adb6da4cf27462ff699fdf2b4e9) Change-Id: I9244dff21e9cd62b14f97bfb5a5349eb46f73847 Reviewed-on: http://git-master/r/56107 Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Tested-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/Kconfig8
-rw-r--r--drivers/video/tegra/nvmap/nvmap_dev.c4
-rw-r--r--drivers/video/tegra/nvmap/nvmap_handle.c7
3 files changed, 15 insertions, 4 deletions
diff --git a/drivers/video/tegra/Kconfig b/drivers/video/tegra/Kconfig
index e3bc62980499..16c5c605bf94 100644
--- a/drivers/video/tegra/Kconfig
+++ b/drivers/video/tegra/Kconfig
@@ -93,6 +93,14 @@ config NVMAP_CARVEOUT_COMPACTOR
Say Y here to let nvmap to keep carveout fragmentation under control.
+config NVMAP_VPR
+ bool "Enable VPR Heap."
+ depends on TEGRA_NVMAP
+ default n
+ help
+ Say Y here to enable Video Protection Region(VPR) heap.
+ if unsure, say N.
+
config TEGRA_DSI
bool "Enable DSI panel."
default n
diff --git a/drivers/video/tegra/nvmap/nvmap_dev.c b/drivers/video/tegra/nvmap/nvmap_dev.c
index c98c0bb3bea8..c3a5f7f0de36 100644
--- a/drivers/video/tegra/nvmap/nvmap_dev.c
+++ b/drivers/video/tegra/nvmap/nvmap_dev.c
@@ -1265,7 +1265,7 @@ static int nvmap_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "couldn't create debug files\n");
for (i = 0; i < plat->nr_carveouts; i++) {
- struct nvmap_carveout_node *node = &dev->heaps[i];
+ struct nvmap_carveout_node *node = &dev->heaps[dev->nr_carveouts];
const struct nvmap_platform_carveout *co = &plat->carveouts[i];
if (!co->size)
continue;
@@ -1277,9 +1277,9 @@ static int nvmap_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "couldn't create %s\n", co->name);
goto fail_heaps;
}
+ node->index = dev->nr_carveouts;
dev->nr_carveouts++;
spin_lock_init(&node->clients_lock);
- node->index = i;
INIT_LIST_HEAD(&node->clients);
node->heap_bit = co->usage_mask;
if (nvmap_heap_create_group(node->carveout,
diff --git a/drivers/video/tegra/nvmap/nvmap_handle.c b/drivers/video/tegra/nvmap/nvmap_handle.c
index dd3003b85180..a1c5b956efc9 100644
--- a/drivers/video/tegra/nvmap/nvmap_handle.c
+++ b/drivers/video/tegra/nvmap/nvmap_handle.c
@@ -50,7 +50,8 @@
#define PR_INFO(...)
#endif
-#define NVMAP_SECURE_HEAPS (NVMAP_HEAP_CARVEOUT_IRAM | NVMAP_HEAP_IOVMM)
+#define NVMAP_SECURE_HEAPS (NVMAP_HEAP_CARVEOUT_IRAM | NVMAP_HEAP_IOVMM | \
+ NVMAP_HEAP_CARVEOUT_VPR)
#ifdef CONFIG_NVMAP_HIGHMEM_ONLY
#define GFP_NVMAP (__GFP_HIGHMEM | __GFP_NOWARN)
#else
@@ -220,7 +221,7 @@ static void alloc_handle(struct nvmap_client *client,
BUG_ON(type & (type - 1));
#ifdef CONFIG_NVMAP_CONVERT_CARVEOUT_TO_IOVMM
-#define __NVMAP_HEAP_CARVEOUT NVMAP_HEAP_CARVEOUT_IRAM
+#define __NVMAP_HEAP_CARVEOUT (NVMAP_HEAP_CARVEOUT_IRAM | NVMAP_HEAP_CARVEOUT_VPR)
#define __NVMAP_HEAP_IOVMM (NVMAP_HEAP_IOVMM | NVMAP_HEAP_CARVEOUT_GENERIC)
if (type & NVMAP_HEAP_CARVEOUT_GENERIC) {
#ifdef CONFIG_NVMAP_ALLOW_SYSMEM
@@ -301,6 +302,7 @@ sysheap:
* allocations, and to reduce fragmentation of the graphics heaps with
* sub-page splinters */
static const unsigned int heap_policy_small[] = {
+ NVMAP_HEAP_CARVEOUT_VPR,
NVMAP_HEAP_CARVEOUT_IRAM,
#ifdef CONFIG_NVMAP_ALLOW_SYSMEM
NVMAP_HEAP_SYSMEM,
@@ -311,6 +313,7 @@ static const unsigned int heap_policy_small[] = {
};
static const unsigned int heap_policy_large[] = {
+ NVMAP_HEAP_CARVEOUT_VPR,
NVMAP_HEAP_CARVEOUT_IRAM,
NVMAP_HEAP_IOVMM,
NVMAP_HEAP_CARVEOUT_MASK,