diff options
author | Krishna Reddy <vdumpa@nvidia.com> | 2012-03-22 15:25:19 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-03-30 09:18:52 -0700 |
commit | fbf900574906f9f721b40381ae6fae9e65517161 (patch) | |
tree | 477b005c606c151ff70630e48097747035902e7f /drivers/video/tegra/nvmap/nvmap_dev.c | |
parent | 18493b066ff8484fc3a928ddb95e1e51777d600f (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.c | 22 |
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); + } } } |