msm: qdsp6v2: Move away from the subsystem map apis
The subsystem map APIs are no longer the prefered method for
mapping into the kernel address space. Use ioremap directly for
physical memory to be accessed for debugging.
Change-Id: Ib7c2277f284f4a2a274e318f4b6e873027c179a5
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
diff --git a/arch/arm/mach-msm/qdsp6v2/dsp_debug.c b/arch/arm/mach-msm/qdsp6v2/dsp_debug.c
index 1d8195e..1fa0876 100644
--- a/arch/arm/mach-msm/qdsp6v2/dsp_debug.c
+++ b/arch/arm/mach-msm/qdsp6v2/dsp_debug.c
@@ -27,7 +27,6 @@
#include "../proc_comm.h"
#include <mach/debug_mm.h>
-#include <mach/msm_subsystem_map.h>
#include <mach/qdsp6v2/dsp_debug.h>
static wait_queue_head_t dsp_wait;
@@ -72,8 +71,7 @@
{
char cmd[32];
void __iomem *ptr;
- unsigned int flags = MSM_SUBSYSTEM_MAP_KADDR | MSM_SUBSYSTEM_MAP_CACHED;
- struct msm_mapped_buffer *mem_buffer;
+ void *mem_buffer;
if (count >= sizeof(cmd))
return -EINVAL;
@@ -96,21 +94,19 @@
}
}
/* assert DSP NMI */
- mem_buffer = msm_subsystem_map_buffer(DSP_NMI_ADDR, 0x16, flags,
- NULL, 0);
+ mem_buffer = ioremap(DSP_NMI_ADDR, 0x16);
if (IS_ERR((void *)mem_buffer)) {
pr_err("%s:map_buffer failed, error = %ld\n", __func__,
PTR_ERR((void *)mem_buffer));
return -ENOMEM;
}
- ptr = mem_buffer->vaddr;
+ ptr = mem_buffer;
if (!ptr) {
pr_err("Unable to map DSP NMI\n");
return -EFAULT;
}
writel(0x1, (void *)ptr);
- if (msm_subsystem_unmap_buffer(mem_buffer) < 0)
- pr_err("%s:unmap buffer failed\n", __func__);
+ iounmap(mem_buffer);
} else if (!strcmp(cmd, "boom")) {
q6audio_dsp_not_responding();
} else if (!strcmp(cmd, "continue-crash")) {
@@ -135,8 +131,7 @@
size_t mapsize = PAGE_SIZE;
unsigned addr;
void __iomem *ptr;
- unsigned int flags = MSM_SUBSYSTEM_MAP_KADDR | MSM_SUBSYSTEM_MAP_CACHED;
- struct msm_mapped_buffer *mem_buffer;
+ void *mem_buffer;
if ((dsp_ram_base == 0) || (dsp_ram_size == 0)) {
pr_err("[%s:%s] Memory Invalid or not initialized, Base = 0x%x,"
@@ -158,29 +153,26 @@
mapsize *= 2;
while (count >= PAGE_SIZE) {
- mem_buffer = msm_subsystem_map_buffer(addr, mapsize, flags,
- NULL, 0);
+ mem_buffer = ioremap(addr, mapsize);
if (IS_ERR((void *)mem_buffer)) {
pr_err("%s:map_buffer failed, error = %ld\n",
__func__, PTR_ERR((void *)mem_buffer));
return -ENOMEM;
}
- ptr = mem_buffer->vaddr;
+ ptr = mem_buffer;
if (!ptr) {
pr_err("[%s:%s] map error @ %x\n", __MM_FILE__,
__func__, addr);
return -EFAULT;
}
if (copy_to_user(buf, ptr, PAGE_SIZE)) {
- if (msm_subsystem_unmap_buffer(mem_buffer) < 0)
- pr_err("%s: unmap buffer failed\n", __func__);
+ iounmap(mem_buffer);
pr_err("[%s:%s] copy error @ %p\n", __MM_FILE__,
__func__, buf);
return -EFAULT;
}
copy_ok_count += PAGE_SIZE;
- if (msm_subsystem_unmap_buffer(mem_buffer) < 0)
- pr_err("%s: unmap buffer failed\n", __func__);
+ iounmap(mem_buffer);
addr += PAGE_SIZE;
buf += PAGE_SIZE;
actual += PAGE_SIZE;
diff --git a/include/sound/q6asm.h b/include/sound/q6asm.h
index 968d46e..54a9187 100644
--- a/include/sound/q6asm.h
+++ b/include/sound/q6asm.h
@@ -13,7 +13,6 @@
#define __Q6_ASM_H__
#include <mach/qdsp6v2/apr.h>
-#include <mach/msm_subsystem_map.h>
#include <sound/apr_audio.h>
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
#include <linux/ion.h>
@@ -110,7 +109,7 @@
struct ion_handle *handle;
struct ion_client *client;
#else
- struct msm_mapped_buffer *mem_buffer;
+ void *mem_buffer;
#endif
};
diff --git a/sound/soc/msm/qdsp6/q6asm.c b/sound/soc/msm/qdsp6/q6asm.c
index ba5c79d..fc08febf 100644
--- a/sound/soc/msm/qdsp6/q6asm.c
+++ b/sound/soc/msm/qdsp6/q6asm.c
@@ -38,7 +38,6 @@
#include <mach/peripheral-loader.h>
#include <mach/qdsp6v2/audio_acdb.h>
#include <mach/qdsp6v2/rtac.h>
-#include <mach/msm_subsystem_map.h>
#include <sound/apr_audio.h>
#include <sound/q6asm.h>
@@ -258,7 +257,7 @@
"%ld\n", __func__,
PTR_ERR((void *)port->buf[cnt].mem_buffer));
else {
- if (msm_subsystem_unmap_buffer(
+ if (iounmap(
port->buf[cnt].mem_buffer) < 0)
pr_err("%s: unmap buffer"
" failed\n", __func__);
@@ -328,7 +327,7 @@
"%ld\n", __func__,
PTR_ERR((void *)port->buf[0].mem_buffer));
else {
- if (msm_subsystem_unmap_buffer(
+ if (iounmap(
port->buf[0].mem_buffer) < 0)
pr_err("%s: unmap buffer"
" failed\n", __func__);
@@ -574,11 +573,8 @@
mutex_unlock(&ac->cmd_lock);
goto fail;
}
- flags = MSM_SUBSYSTEM_MAP_KADDR |
- MSM_SUBSYSTEM_MAP_CACHED;
buf[cnt].mem_buffer =
- msm_subsystem_map_buffer(buf[cnt].phys,
- bufsz, flags, NULL, 0);
+ ioremap(buf[cnt].phys, bufsz);
if (IS_ERR(
(void *)buf[cnt].mem_buffer)) {
pr_err("%s:map_buffer failed,"
@@ -588,7 +584,7 @@
goto fail;
}
buf[cnt].data =
- buf[cnt].mem_buffer->vaddr;
+ buf[cnt].mem_buffer;
if (!buf[cnt].data) {
pr_err("%s:invalid vaddr,"
" iomap failed\n", __func__);
@@ -700,9 +696,7 @@
goto fail;
}
- flags = MSM_SUBSYSTEM_MAP_KADDR | MSM_SUBSYSTEM_MAP_CACHED;
- buf[0].mem_buffer = msm_subsystem_map_buffer(buf[0].phys,
- bufsz * bufcnt, flags, NULL, 0);
+ buf[0].mem_buffer = ioremap(buf[0].phys, bufsz * bufcnt);
if (IS_ERR((void *)buf[cnt].mem_buffer)) {
pr_err("%s:map_buffer failed,"
"error = %ld\n",
@@ -711,7 +705,7 @@
mutex_unlock(&ac->cmd_lock);
goto fail;
}
- buf[0].data = buf[0].mem_buffer->vaddr;
+ buf[0].data = buf[0].mem_buffer;
#endif
if (!buf[0].data) {
pr_err("%s:invalid vaddr,"