msm: kgsl: Map ebi memory to kernel

Implement the function to map ebi memory to the kernel.
This function is used when from postmortem or snapshot
when there is a hang and we are allocating memory from
kernel ebi space

Change-Id: I4f3e8b3fcb8c0107599ce3d3636c0ed33ace725a
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
This commit is contained in:
Shubhraprakash Das
2012-08-11 18:26:29 -07:00
committed by Stephen Boyd
parent 1764bf5940
commit 04f620de39

View File

@@ -438,6 +438,20 @@ static void kgsl_ebimem_free(struct kgsl_memdesc *memdesc)
free_contiguous_memory_by_paddr(memdesc->physaddr);
}
static int kgsl_ebimem_map_kernel(struct kgsl_memdesc *memdesc)
{
if (!memdesc->hostptr) {
memdesc->hostptr = ioremap(memdesc->physaddr, memdesc->size);
if (!memdesc->hostptr) {
KGSL_CORE_ERR("ioremap failed, addr:0x%p, size:0x%x\n",
memdesc->hostptr, memdesc->size);
return -ENOMEM;
}
}
return 0;
}
static void kgsl_coherent_free(struct kgsl_memdesc *memdesc)
{
kgsl_driver.stats.coherent -= memdesc->size;
@@ -458,6 +472,7 @@ static struct kgsl_memdesc_ops kgsl_ebimem_ops = {
.free = kgsl_ebimem_free,
.vmflags = kgsl_contiguous_vmflags,
.vmfault = kgsl_contiguous_vmfault,
.map_kernel_mem = kgsl_ebimem_map_kernel,
};
static struct kgsl_memdesc_ops kgsl_coherent_ops = {