msm: kgsl: Allocate setstate memory when no MMU is used

Setstate memory should be allocated even when no MMU is used
because it is used when submitting workaround commands.

Change-Id: Ia8217cec9507bff82680e737b4328c2611f5f917
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
diff --git a/drivers/gpu/msm/kgsl_mmu.c b/drivers/gpu/msm/kgsl_mmu.c
index 2c63bb6..234841d 100644
--- a/drivers/gpu/msm/kgsl_mmu.c
+++ b/drivers/gpu/msm/kgsl_mmu.c
@@ -340,9 +340,15 @@
 	mmu->device = device;
 
 	if (KGSL_MMU_TYPE_NONE == kgsl_mmu_type) {
-		dev_info(device->dev, "|%s| MMU type set for device is "
-			"NOMMU\n", __func__);
-		return 0;
+		int status = 0;
+		status = kgsl_allocate_contiguous(&mmu->setstate_memory, 64);
+		if (!status) {
+			kgsl_sharedmem_set(&mmu->setstate_memory, 0, 0,
+					mmu->setstate_memory.size);
+			dev_info(device->dev, "|%s| MMU type set for device is "
+				"NOMMU\n", __func__);
+		}
+		return status;
 	} else if (KGSL_MMU_TYPE_GPU == kgsl_mmu_type)
 		mmu->mmu_ops = &gpummu_ops;
 	else if (KGSL_MMU_TYPE_IOMMU == kgsl_mmu_type)
@@ -748,9 +754,10 @@
 {
 	struct kgsl_mmu *mmu = &device->mmu;
 
-	if (kgsl_mmu_type == KGSL_MMU_TYPE_NONE)
+	if (kgsl_mmu_type == KGSL_MMU_TYPE_NONE) {
+		kgsl_sharedmem_free(&mmu->setstate_memory);
 		return 0;
-	else
+	} else
 		return mmu->mmu_ops->mmu_close(device);
 }
 EXPORT_SYMBOL(kgsl_mmu_close);