diff options
author | Krishna Reddy <vdumpa@nvidia.com> | 2011-09-06 23:34:42 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-10-06 23:49:55 -0700 |
commit | d649a9c9800714d6c74cf1e7ab1fb4340ac52c8d (patch) | |
tree | 13c808657e57f367c18a50ba427d6c7431af353d /drivers | |
parent | 0a752daa7f1e9a80a5a9a473a32803efcab329f8 (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/Kconfig | 8 | ||||
-rw-r--r-- | drivers/video/tegra/nvmap/nvmap_dev.c | 4 | ||||
-rw-r--r-- | drivers/video/tegra/nvmap/nvmap_handle.c | 7 |
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, |