From 3978d58140eb0678af7ffc0946266f08441bf127 Mon Sep 17 00:00:00 2001 From: Hiro Sugawara Date: Fri, 26 Aug 2011 10:21:45 -0700 Subject: 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 Reviewed-by: Dan Willemsen --- drivers/video/tegra/nvmap/nvmap_dev.c | 4 +++- drivers/video/tegra/nvmap/nvmap_handle.c | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3