summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiro Sugawara <hsugawara@nvidia.com>2011-08-26 10:21:45 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-09-27 12:01:28 -0700
commit3978d58140eb0678af7ffc0946266f08441bf127 (patch)
treefe00668a4155a445c41eb2fb401073b4b19ec96c
parentb16d84a0332998321f684bdbff5165072956dab8 (diff)
arm: tegra: nvmap: Remove dependency on CONFIG_TEGRA_IOVMM
Make kernel boot up with CONFIG_TEGRA_IOVMM=n (cherry picked from commit f10b613bbd27b8a5f25cbbaebecfe50fd9c0be3f) Change-Id: I980d762bd9feac3881e00015e6db753ae36e79f9 Reviewed-on: http://git-master/r/54509 Tested-by: Hiro Sugawara <hsugawara@nvidia.com> Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com>
-rw-r--r--drivers/video/tegra/nvmap/nvmap_dev.c4
-rw-r--r--drivers/video/tegra/nvmap/nvmap_handle.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap_dev.c b/drivers/video/tegra/nvmap/nvmap_dev.c
index b830fd3a6688..256c07fc3f3a 100644
--- a/drivers/video/tegra/nvmap/nvmap_dev.c
+++ b/drivers/video/tegra/nvmap/nvmap_dev.c
@@ -1185,11 +1185,13 @@ static int nvmap_probe(struct platform_device *pdev)
dev->iovmm_master.iovmm =
tegra_iovmm_alloc_client(dev_name(&pdev->dev), NULL,
&(dev->dev_user));
- if (IS_ERR(dev->iovmm_master.iovmm)) {
+#ifdef CONFIG_TEGRA_IOVMM
+ if (!dev->iovmm_master.iovmm) {
e = PTR_ERR(dev->iovmm_master.iovmm);
dev_err(&pdev->dev, "couldn't create iovmm client\n");
goto fail;
}
+#endif
dev->vm_rgn = alloc_vm_area(NVMAP_NUM_PTES * PAGE_SIZE);
if (!dev->vm_rgn) {
e = -ENOMEM;
diff --git a/drivers/video/tegra/nvmap/nvmap_handle.c b/drivers/video/tegra/nvmap/nvmap_handle.c
index e536867f1c56..c2085051ba1c 100644
--- a/drivers/video/tegra/nvmap/nvmap_handle.c
+++ b/drivers/video/tegra/nvmap/nvmap_handle.c
@@ -348,6 +348,12 @@ int nvmap_alloc_handle_id(struct nvmap_client *client,
h->flags = (flags & NVMAP_HANDLE_CACHE_FLAG);
h->align = max_t(size_t, align, L1_CACHE_BYTES);
+#ifndef CONFIG_TEGRA_IOVMM
+ if (heap_mask & NVMAP_HEAP_IOVMM) {
+ heap_mask &= NVMAP_HEAP_IOVMM;
+ heap_mask |= NVMAP_HEAP_CARVEOUT_GENERIC;
+ }
+#endif
#ifndef CONFIG_NVMAP_CONVERT_CARVEOUT_TO_IOVMM
#ifdef CONFIG_NVMAP_ALLOW_SYSMEM
/* Allow single pages allocations in system memory to save