Revert "msm: iommu: Split rotator/mdp iommu domains"
This reverts commit 9ae9beaf0a79f929c4f9928b8daed5a9ed131d6a.
Change-Id: Ie93cbb23eaa1e35bfbacc53cd18f05b345acea4b
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-8064.c b/arch/arm/mach-msm/devices-8064.c
index cf415d8..4e01899 100644
--- a/arch/arm/mach-msm/devices-8064.c
+++ b/arch/arm/mach-msm/devices-8064.c
@@ -2588,15 +2588,15 @@
.name = "jpegd_dst",
.domain = CAMERA_DOMAIN,
},
- /* Rotator src*/
+ /* Rotator */
{
.name = "rot_src",
- .domain = ROTATOR_SRC_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
- /* Rotator dst */
+ /* Rotator */
{
.name = "rot_dst",
- .domain = ROTATOR_DST_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
/* Video */
{
@@ -2652,36 +2652,18 @@
},
};
-static struct mem_pool apq8064_display_read_pools[] = {
+static struct mem_pool apq8064_display_pools[] = {
[GEN_POOL] =
- /* One address space for display reads */
+ /* One address space for display */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
},
};
-static struct mem_pool apq8064_display_write_pools[] = {
+static struct mem_pool apq8064_rotator_pools[] = {
[GEN_POOL] =
- /* One address space for display writes */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool apq8064_rotator_src_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator src */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool apq8064_rotator_dst_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator dst */
+ /* One address space for rotator */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
@@ -2697,21 +2679,13 @@
.iova_pools = apq8064_camera_pools,
.npools = ARRAY_SIZE(apq8064_camera_pools),
},
- [DISPLAY_READ_DOMAIN] = {
- .iova_pools = apq8064_display_read_pools,
- .npools = ARRAY_SIZE(apq8064_display_read_pools),
+ [DISPLAY_DOMAIN] = {
+ .iova_pools = apq8064_display_pools,
+ .npools = ARRAY_SIZE(apq8064_display_pools),
},
- [DISPLAY_WRITE_DOMAIN] = {
- .iova_pools = apq8064_display_write_pools,
- .npools = ARRAY_SIZE(apq8064_display_write_pools),
- },
- [ROTATOR_SRC_DOMAIN] = {
- .iova_pools = apq8064_rotator_src_pools,
- .npools = ARRAY_SIZE(apq8064_rotator_src_pools),
- },
- [ROTATOR_DST_DOMAIN] = {
- .iova_pools = apq8064_rotator_dst_pools,
- .npools = ARRAY_SIZE(apq8064_rotator_dst_pools),
+ [ROTATOR_DOMAIN] = {
+ .iova_pools = apq8064_rotator_pools,
+ .npools = ARRAY_SIZE(apq8064_rotator_pools),
},
};
diff --git a/arch/arm/mach-msm/devices-8930.c b/arch/arm/mach-msm/devices-8930.c
index 03685da..c480bba 100644
--- a/arch/arm/mach-msm/devices-8930.c
+++ b/arch/arm/mach-msm/devices-8930.c
@@ -765,12 +765,12 @@
/* Rotator */
{
.name = "rot_src",
- .domain = ROTATOR_SRC_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
/* Rotator */
{
.name = "rot_dst",
- .domain = ROTATOR_DST_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
/* Video */
{
@@ -826,36 +826,18 @@
},
};
-static struct mem_pool msm8930_display_read_pools[] = {
+static struct mem_pool msm8930_display_pools[] = {
[GEN_POOL] =
- /* One address space for display reads */
+ /* One address space for display */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
},
};
-static struct mem_pool msm8930_display_write_pools[] = {
+static struct mem_pool msm8930_rotator_pools[] = {
[GEN_POOL] =
- /* One address space for display writes */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool msm8930_rotator_src_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator src */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool msm8930_rotator_dst_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator dst */
+ /* One address space for rotator */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
@@ -871,21 +853,13 @@
.iova_pools = msm8930_camera_pools,
.npools = ARRAY_SIZE(msm8930_camera_pools),
},
- [DISPLAY_READ_DOMAIN] = {
- .iova_pools = msm8930_display_read_pools,
- .npools = ARRAY_SIZE(msm8930_display_read_pools),
+ [DISPLAY_DOMAIN] = {
+ .iova_pools = msm8930_display_pools,
+ .npools = ARRAY_SIZE(msm8930_display_pools),
},
- [DISPLAY_WRITE_DOMAIN] = {
- .iova_pools = msm8930_display_write_pools,
- .npools = ARRAY_SIZE(msm8930_display_write_pools),
- },
- [ROTATOR_SRC_DOMAIN] = {
- .iova_pools = msm8930_rotator_src_pools,
- .npools = ARRAY_SIZE(msm8930_rotator_src_pools),
- },
- [ROTATOR_DST_DOMAIN] = {
- .iova_pools = msm8930_rotator_dst_pools,
- .npools = ARRAY_SIZE(msm8930_rotator_dst_pools),
+ [ROTATOR_DOMAIN] = {
+ .iova_pools = msm8930_rotator_pools,
+ .npools = ARRAY_SIZE(msm8930_rotator_pools),
},
};
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index 0d417bd..550a283 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -3639,15 +3639,15 @@
.name = "jpegd_dst",
.domain = CAMERA_DOMAIN,
},
- /* Rotator src*/
+ /* Rotator */
{
.name = "rot_src",
- .domain = ROTATOR_SRC_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
- /* Rotator dst */
+ /* Rotator */
{
.name = "rot_dst",
- .domain = ROTATOR_DST_DOMAIN,
+ .domain = ROTATOR_DOMAIN,
},
/* Video */
{
@@ -3703,36 +3703,18 @@
},
};
-static struct mem_pool msm8960_display_read_pools[] = {
+static struct mem_pool msm8960_display_pools[] = {
[GEN_POOL] =
- /* One address space for display reads */
+ /* One address space for display */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
},
};
-static struct mem_pool msm8960_display_write_pools[] = {
+static struct mem_pool msm8960_rotator_pools[] = {
[GEN_POOL] =
- /* One address space for display writes */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool msm8960_rotator_src_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator src */
- {
- .paddr = SZ_128K,
- .size = SZ_2G - SZ_128K,
- },
-};
-
-static struct mem_pool msm8960_rotator_dst_pools[] = {
- [GEN_POOL] =
- /* One address space for rotator dst */
+ /* One address space for rotator */
{
.paddr = SZ_128K,
.size = SZ_2G - SZ_128K,
@@ -3748,21 +3730,13 @@
.iova_pools = msm8960_camera_pools,
.npools = ARRAY_SIZE(msm8960_camera_pools),
},
- [DISPLAY_READ_DOMAIN] = {
- .iova_pools = msm8960_display_read_pools,
- .npools = ARRAY_SIZE(msm8960_display_read_pools),
+ [DISPLAY_DOMAIN] = {
+ .iova_pools = msm8960_display_pools,
+ .npools = ARRAY_SIZE(msm8960_display_pools),
},
- [DISPLAY_WRITE_DOMAIN] = {
- .iova_pools = msm8960_display_write_pools,
- .npools = ARRAY_SIZE(msm8960_display_write_pools),
- },
- [ROTATOR_SRC_DOMAIN] = {
- .iova_pools = msm8960_rotator_src_pools,
- .npools = ARRAY_SIZE(msm8960_rotator_src_pools),
- },
- [ROTATOR_DST_DOMAIN] = {
- .iova_pools = msm8960_rotator_dst_pools,
- .npools = ARRAY_SIZE(msm8960_rotator_dst_pools),
+ [ROTATOR_DOMAIN] = {
+ .iova_pools = msm8960_rotator_pools,
+ .npools = ARRAY_SIZE(msm8960_rotator_pools),
},
};
diff --git a/arch/arm/mach-msm/include/mach/iommu_domains.h b/arch/arm/mach-msm/include/mach/iommu_domains.h
index 1d538f2..1a3a022 100644
--- a/arch/arm/mach-msm/include/mach/iommu_domains.h
+++ b/arch/arm/mach-msm/include/mach/iommu_domains.h
@@ -18,10 +18,8 @@
enum {
VIDEO_DOMAIN,
CAMERA_DOMAIN,
- DISPLAY_READ_DOMAIN,
- DISPLAY_WRITE_DOMAIN,
- ROTATOR_SRC_DOMAIN,
- ROTATOR_DST_DOMAIN,
+ DISPLAY_DOMAIN,
+ ROTATOR_DOMAIN,
MAX_DOMAINS
};
diff --git a/arch/arm/mach-msm/subsystem_map.c b/arch/arm/mach-msm/subsystem_map.c
index 5f5a02b..fcb8517 100644
--- a/arch/arm/mach-msm/subsystem_map.c
+++ b/arch/arm/mach-msm/subsystem_map.c
@@ -38,10 +38,8 @@
VIDEO_DOMAIN,
VIDEO_DOMAIN,
CAMERA_DOMAIN,
- DISPLAY_READ_DOMAIN,
- DISPLAY_WRITE_DOMAIN,
- ROTATOR_SRC_DOMAIN,
- ROTATOR_DST_DOMAIN,
+ DISPLAY_DOMAIN,
+ ROTATOR_DOMAIN,
0xFFFFFFFF
};
diff --git a/drivers/char/msm_rotator.c b/drivers/char/msm_rotator.c
index dae64cb..6cd1806 100644
--- a/drivers/char/msm_rotator.c
+++ b/drivers/char/msm_rotator.c
@@ -174,7 +174,6 @@
unsigned long *start, unsigned long *len,
struct ion_handle **pihdl)
{
- int domain;
if (!msm_rotator_dev->client)
return -EINVAL;
@@ -186,9 +185,8 @@
pr_debug("%s(): ion_hdl %p, ion_buf %p\n", __func__, *pihdl,
ion_share(msm_rotator_dev->client, *pihdl));
- domain = src ? ROTATOR_SRC_DOMAIN : ROTATOR_DST_DOMAIN;
if (ion_map_iommu(msm_rotator_dev->client,
- *pihdl, domain, GEN_POOL,
+ *pihdl, ROTATOR_DOMAIN, GEN_POOL,
SZ_4K, 0, start, len, 0, ION_IOMMU_UNMAP_DELAYED)) {
pr_err("ion_map_iommu() failed\n");
return -EINVAL;
@@ -864,21 +862,17 @@
}
-static void put_img(struct file *p_file, struct ion_handle *p_ihdl,
- unsigned char src)
+static void put_img(struct file *p_file, struct ion_handle *p_ihdl)
{
#ifdef CONFIG_ANDROID_PMEM
if (p_file != NULL)
put_pmem_file(p_file);
#endif
-
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
if (!IS_ERR_OR_NULL(p_ihdl)) {
- int domain = src ? ROTATOR_SRC_DOMAIN : \
- ROTATOR_DST_DOMAIN;
pr_debug("%s(): p_ihdl %p\n", __func__, p_ihdl);
ion_unmap_iommu(msm_rotator_dev->client,
- p_ihdl, domain, GEN_POOL);
+ p_ihdl, ROTATOR_DOMAIN, GEN_POOL);
ion_free(msm_rotator_dev->client, p_ihdl);
}
@@ -1168,15 +1162,15 @@
#endif
schedule_delayed_work(&msm_rotator_dev->rot_clk_work, HZ);
do_rotate_unlock_mutex:
- put_img(dstp1_file, dstp1_ihdl, 0);
- put_img(srcp1_file, srcp1_ihdl, 1);
- put_img(dstp0_file, dstp0_ihdl, 0);
+ put_img(dstp1_file, dstp1_ihdl);
+ put_img(srcp1_file, srcp1_ihdl);
+ put_img(dstp0_file, dstp0_ihdl);
/* only source may use frame buffer */
if (info.src.flags & MDP_MEMORY_ID_TYPE_FB)
fput_light(srcp0_file, ps0_need);
else
- put_img(srcp0_file, srcp0_ihdl, 1);
+ put_img(srcp0_file, srcp0_ihdl);
mutex_unlock(&msm_rotator_dev->rotator_lock);
dev_dbg(msm_rotator_dev->device, "%s() returning rc = %d\n",
__func__, rc);
diff --git a/drivers/media/video/msm/wfd/wfd-ioctl.c b/drivers/media/video/msm/wfd/wfd-ioctl.c
index 68a8a7d..c198815 100644
--- a/drivers/media/video/msm/wfd/wfd-ioctl.c
+++ b/drivers/media/video/msm/wfd/wfd-ioctl.c
@@ -288,7 +288,7 @@
mdp_mregion->ion_handle = enc_mregion->ion_handle;
rc = ion_map_iommu(wfd_dev->ion_client, mdp_mregion->ion_handle,
- DISPLAY_WRITE_DOMAIN, GEN_POOL, SZ_4K,
+ DISPLAY_DOMAIN, GEN_POOL, SZ_4K,
0, (unsigned long *)&mdp_mregion->paddr,
(unsigned long *)&mdp_mregion->size, 0, 0);
if (rc) {
@@ -363,7 +363,7 @@
if (mpair->mdp->paddr)
ion_unmap_iommu(wfd_dev->ion_client,
mpair->mdp->ion_handle,
- DISPLAY_WRITE_DOMAIN, GEN_POOL);
+ DISPLAY_DOMAIN, GEN_POOL);
if (mpair->enc->paddr)
ion_unmap_iommu(wfd_dev->ion_client,
diff --git a/drivers/video/msm/mdp4_overlay.c b/drivers/video/msm/mdp4_overlay.c
index b3ec39e..2a15506 100644
--- a/drivers/video/msm/mdp4_overlay.c
+++ b/drivers/video/msm/mdp4_overlay.c
@@ -126,7 +126,7 @@
pr_debug("mixer %u, pipe %u, plane %u\n", pipe->mixer_num,
pipe->pipe_ndx, plane);
if (ion_map_iommu(display_iclient, *srcp_ihdl,
- DISPLAY_READ_DOMAIN, GEN_POOL, SZ_4K, 0, start,
+ DISPLAY_DOMAIN, GEN_POOL, SZ_4K, 0, start,
len, 0, ION_IOMMU_UNMAP_DELAYED)) {
ion_free(display_iclient, *srcp_ihdl);
pr_err("ion_map_iommu() failed\n");
@@ -140,7 +140,7 @@
if (iom_pipe_info->prev_ihdl[plane]) {
ion_unmap_iommu(display_iclient,
iom_pipe_info->prev_ihdl[plane],
- DISPLAY_READ_DOMAIN, GEN_POOL);
+ DISPLAY_DOMAIN, GEN_POOL);
ion_free(display_iclient,
iom_pipe_info->prev_ihdl[plane]);
pr_debug("Previous: mixer %u, pipe %u, plane %u, "
@@ -175,7 +175,7 @@
iom_pipe_info->prev_ihdl[i]);
ion_unmap_iommu(display_iclient,
iom_pipe_info->prev_ihdl[i],
- DISPLAY_READ_DOMAIN, GEN_POOL);
+ DISPLAY_DOMAIN, GEN_POOL);
ion_free(display_iclient,
iom_pipe_info->prev_ihdl[i]);
iom_pipe_info->prev_ihdl[i] = NULL;
@@ -191,7 +191,7 @@
iom_pipe_info->ihdl[i]);
ion_unmap_iommu(display_iclient,
iom_pipe_info->ihdl[i],
- DISPLAY_READ_DOMAIN, GEN_POOL);
+ DISPLAY_DOMAIN, GEN_POOL);
ion_free(display_iclient,
iom_pipe_info->ihdl[i]);
iom_pipe_info->ihdl[i] = NULL;
@@ -3180,25 +3180,25 @@
char *name;
int domain;
} msm_iommu_ctx_names[] = {
- /* Display read*/
+ /* Display */
{
.name = "mdp_port0_cb0",
- .domain = DISPLAY_READ_DOMAIN,
+ .domain = DISPLAY_DOMAIN,
},
- /* Display read*/
+ /* Display */
{
.name = "mdp_port0_cb1",
- .domain = DISPLAY_WRITE_DOMAIN,
+ .domain = DISPLAY_DOMAIN,
},
- /* Display write */
+ /* Display */
{
.name = "mdp_port1_cb0",
- .domain = DISPLAY_READ_DOMAIN,
+ .domain = DISPLAY_DOMAIN,
},
- /* Display write */
+ /* Display */
{
.name = "mdp_port1_cb1",
- .domain = DISPLAY_WRITE_DOMAIN,
+ .domain = DISPLAY_DOMAIN,
},
};
diff --git a/drivers/video/msm/mdp4_util.c b/drivers/video/msm/mdp4_util.c
index cce8ea4..f192b12 100644
--- a/drivers/video/msm/mdp4_util.c
+++ b/drivers/video/msm/mdp4_util.c
@@ -2591,20 +2591,11 @@
buf->ihdl = ion_alloc(mfd->iclient, buffer_size, SZ_4K,
mfd->mem_hid);
if (!IS_ERR_OR_NULL(buf->ihdl)) {
- if (mfd->mem_hid & ION_SECURE) {
- if (ion_phys(mfd->iclient, buf->ihdl,
- &addr, (unsigned *)&len)) {
- pr_err("%s:%d: ion_phys map failed\n",
- __func__, __LINE__);
- return -ENOMEM;
- }
- } else {
- if (ion_map_iommu(mfd->iclient, buf->ihdl,
- DISPLAY_WRITE_DOMAIN, GEN_POOL, SZ_4K,
- 0, &addr, &len, 0, 0)) {
- pr_err("ion_map_iommu() failed\n");
- return -ENOMEM;
- }
+ if (ion_map_iommu(mfd->iclient, buf->ihdl,
+ DISPLAY_DOMAIN, GEN_POOL, SZ_4K, 0, &addr,
+ &len, 0, 0)) {
+ pr_err("ion_map_iommu() failed\n");
+ return -ENOMEM;
}
} else {
pr_err("%s:%d: ion_alloc failed\n", __func__,
@@ -2638,9 +2629,8 @@
if (!IS_ERR_OR_NULL(mfd->iclient)) {
if (!IS_ERR_OR_NULL(buf->ihdl)) {
- if (!(mfd->mem_hid & ION_SECURE))
- ion_unmap_iommu(mfd->iclient, buf->ihdl,
- DISPLAY_WRITE_DOMAIN, GEN_POOL);
+ ion_unmap_iommu(mfd->iclient, buf->ihdl,
+ DISPLAY_DOMAIN, GEN_POOL);
ion_free(mfd->iclient, buf->ihdl);
pr_debug("%s:%d free writeback imem\n", __func__,
__LINE__);
diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c
index 18ee3e6..81a6e50 100644
--- a/drivers/video/msm/msm_fb.c
+++ b/drivers/video/msm/msm_fb.c
@@ -1326,7 +1326,7 @@
fbi->fix.smem_start = (unsigned long)fbram_phys;
msm_iommu_map_contig_buffer(fbi->fix.smem_start,
- DISPLAY_READ_DOMAIN,
+ DISPLAY_DOMAIN,
GEN_POOL,
fbi->fix.smem_len,
SZ_4K,
@@ -1334,7 +1334,7 @@
&(mfd->display_iova));
msm_iommu_map_contig_buffer(fbi->fix.smem_start,
- ROTATOR_SRC_DOMAIN,
+ ROTATOR_DOMAIN,
GEN_POOL,
fbi->fix.smem_len,
SZ_4K,