msm: ocmem: Refactor the GPU MPU workaround to a stub
The GPU MPU workaround requires the OCMEM core clock.
So refactor the workaround as a stub that can be used
with clock management support.
Change-Id: I096cdf2bf61674795befb1fbb75d5ec3faa5ed23
Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org>
diff --git a/arch/arm/mach-msm/ocmem.c b/arch/arm/mach-msm/ocmem.c
index 8819bd2..b5754a7 100644
--- a/arch/arm/mach-msm/ocmem.c
+++ b/arch/arm/mach-msm/ocmem.c
@@ -526,10 +526,25 @@
return 0;
}
+/* Enable the ocmem graphics mpU as a workaround */
+/* This will be programmed by TZ after TZ support is integrated */
+static int ocmem_init_gfx_mpu(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ void __iomem *ocmem_region_vbase = NULL;
+
+ ocmem_region_vbase = devm_ioremap_nocache(dev, OCMEM_REGION_CTL_BASE,
+ OCMEM_REGION_CTL_SIZE);
+ if (!ocmem_region_vbase)
+ return -EBUSY;
+
+ writel_relaxed(GRAPHICS_REGION_CTL, ocmem_region_vbase + 0xFCC);
+ return 0;
+}
+
static int __devinit msm_ocmem_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- void *ocmem_region_vbase = NULL;
if (!pdev->dev.of_node) {
dev_info(dev, "Missing Configuration in Device Tree\n");
@@ -562,18 +577,14 @@
if (ocmem_sched_init())
return -EBUSY;
- ocmem_region_vbase = devm_ioremap_nocache(dev, OCMEM_REGION_CTL_BASE,
- OCMEM_REGION_CTL_SIZE);
- if (!ocmem_region_vbase)
- return -EBUSY;
-
- /* Enable the ocmem graphics mpU as a workaround in Virtio */
- /* This will be programmed by TZ after TZ support is integrated */
- writel_relaxed(GRAPHICS_REGION_CTL, ocmem_region_vbase + 0xFCC);
-
if (ocmem_rdm_init(pdev))
return -EBUSY;
+ if (ocmem_init_gfx_mpu(pdev)) {
+ dev_err(dev, "Unable to initialize Graphics mPU\n");
+ return -EBUSY;
+ }
+
dev_dbg(dev, "initialized successfully\n");
return 0;
}