summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/nvmap/nvmap_dev.c
diff options
context:
space:
mode:
authorKrishna Reddy <vdumpa@nvidia.com>2012-03-22 15:25:19 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-03-30 09:18:52 -0700
commitfbf900574906f9f721b40381ae6fae9e65517161 (patch)
tree477b005c606c151ff70630e48097747035902e7f /drivers/video/tegra/nvmap/nvmap_dev.c
parent18493b066ff8484fc3a928ddb95e1e51777d600f (diff)
video: tegra: nvmap: Refactor page pool code.
Refactor page pool code. Add page pool support for all memory types. Add support to enable/disable page pools. Add support to allow configuring page pool size. Change-Id: I07c79004542efdd5909547928b3aa5d470e38909 Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-on: http://git-master/r/91914 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/nvmap/nvmap_dev.c')
-rw-r--r--drivers/video/tegra/nvmap/nvmap_dev.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap_dev.c b/drivers/video/tegra/nvmap/nvmap_dev.c
index 7f7dcc9bfda2..f84f38c93aad 100644
--- a/drivers/video/tegra/nvmap/nvmap_dev.c
+++ b/drivers/video/tegra/nvmap/nvmap_dev.c
@@ -1182,10 +1182,8 @@ static int nvmap_probe(struct platform_device *pdev)
init_waitqueue_head(&dev->iovmm_master.pin_wait);
mutex_init(&dev->iovmm_master.pin_lock);
- nvmap_page_pool_init(&dev->iovmm_master.uc_pool,
- NVMAP_HANDLE_UNCACHEABLE);
- nvmap_page_pool_init(&dev->iovmm_master.wc_pool,
- NVMAP_HANDLE_WRITE_COMBINE);
+ for (i = 0; i < NVMAP_NUM_POOLS; i++)
+ nvmap_page_pool_init(&dev->iovmm_master.pools[i], i);
dev->iovmm_master.iovmm =
tegra_iovmm_alloc_client(dev_name(&pdev->dev), NULL,
@@ -1313,12 +1311,16 @@ static int nvmap_probe(struct platform_device *pdev)
dev, &debug_iovmm_clients_fops);
debugfs_create_file("allocations", 0664, iovmm_root,
dev, &debug_iovmm_allocations_fops);
- debugfs_create_u32("uc_page_pool_npages",
- S_IRUGO|S_IWUSR, iovmm_root,
- &dev->iovmm_master.uc_pool.npages);
- debugfs_create_u32("wc_page_pool_npages",
- S_IRUGO|S_IWUSR, iovmm_root,
- &dev->iovmm_master.wc_pool.npages);
+ for (i = 0; i < NVMAP_NUM_POOLS; i++) {
+ char name[40];
+ char *memtype_string[] = {"uc", "wc",
+ "iwb", "wb"};
+ sprintf(name, "%s_page_pool_available_pages",
+ memtype_string[i]);
+ debugfs_create_u32(name, S_IRUGO|S_IWUSR,
+ iovmm_root,
+ &dev->iovmm_master.pools[i].npages);
+ }
}
}