diff options
| author | Lokesh Batra <lbatra@codeaurora.org> | 2013-09-17 16:27:45 -0700 |
|---|---|---|
| committer | Lokesh Batra <lbatra@codeaurora.org> | 2013-09-23 17:07:08 -0700 |
| commit | 75c5cb0a2f90035c757531afcd3722288857c965 (patch) | |
| tree | def698cfbe2939110d028bb75cf5ad422b786fd0 | |
| parent | 9f8f4c98cddf50cc7c367e0758506ef0fb377952 (diff) | |
msm: kgsl: Force KGSL Per Process Page Table to be False for A310
KGSL Per Process Page Table is not working for A310. So we disable
it for now.
Change-Id: I74f8034b3240a9c1f686cb1f87b961d7f41ffbb1
Signed-off-by: Lokesh Batra <lbatra@codeaurora.org>
| -rw-r--r-- | drivers/gpu/msm/adreno.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/msm/kgsl_iommu.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c index 84f30e89442..7960ae52982 100644 --- a/drivers/gpu/msm/adreno.c +++ b/drivers/gpu/msm/adreno.c @@ -1601,6 +1601,9 @@ adreno_probe(struct platform_device *pdev) if (status != 0) goto error; + /* Identify the specific GPU */ + adreno_identify_gpu(adreno_dev); + status = kgsl_device_platform_probe(device); if (status) goto error_close_rb; @@ -1675,9 +1678,6 @@ static int adreno_init(struct kgsl_device *device) /* Power up the device */ kgsl_pwrctrl_enable(device); - /* Identify the specific GPU */ - adreno_identify_gpu(adreno_dev); - if (adreno_ringbuffer_read_pm4_ucode(device)) { KGSL_DRV_ERR(device, "Reading pm4 microcode failed %s\n", adreno_dev->pm4_fwfile); diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index a359d8743b5..a15fed1a0ae 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -1349,6 +1349,8 @@ static int kgsl_iommu_init(struct kgsl_mmu *mmu) */ int status = 0; struct kgsl_iommu *iommu; + struct kgsl_device *device = mmu->device; + struct adreno_device *adreno_dev = ADRENO_DEVICE(device); atomic_set(&mmu->fault, 0); iommu = kzalloc(sizeof(struct kgsl_iommu), GFP_KERNEL); @@ -1375,6 +1377,10 @@ static int kgsl_iommu_init(struct kgsl_mmu *mmu) (msm_soc_version_supports_iommu_v0() || iommu->iommu_units[0].iommu_halt_enable); + /* KGSL Per Process Page Table is broken for A310*/ + if (adreno_is_a310(adreno_dev)) + mmu->pt_per_process = 0; + /* * For IOMMU per-process pagetables, the allocatable range * and the kernel global range must both be outside |
