aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-msm/devices-msm8x60-iommu.c
diff options
context:
space:
mode:
authorStepan Moskovchenko <stepanm@codeaurora.org>2010-11-12 22:29:50 -0500
committerDaniel Walker <dwalker@codeaurora.org>2010-11-30 16:56:17 -0500
commita5fcd5f59a2658a579533d6774e871aea7ab5e92 (patch)
treed6832772a4652e43ff63283a49fa573e280db559 /arch/arm/mach-msm/devices-msm8x60-iommu.c
parent12943325cda3be10819e047cd8b5032a4fef6080 (diff)
msm: iommu: Revise GFX3D IOMMU contexts and M2V mappings
Based on recommendations from chip designers, optimize the Machine ID to translation context mappings for the 3D core's IOMMU. Remove the the "gfx3d_smmu" context device, as it is no longer needed under the new mapping scheme. Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org> [dwalker@codeaurora.org: updated commit text] Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
Diffstat (limited to 'arch/arm/mach-msm/devices-msm8x60-iommu.c')
-rw-r--r--arch/arm/mach-msm/devices-msm8x60-iommu.c45
1 files changed, 15 insertions, 30 deletions
diff --git a/arch/arm/mach-msm/devices-msm8x60-iommu.c b/arch/arm/mach-msm/devices-msm8x60-iommu.c
index 9e657e0ee181..22d0c7cb71f6 100644
--- a/arch/arm/mach-msm/devices-msm8x60-iommu.c
+++ b/arch/arm/mach-msm/devices-msm8x60-iommu.c
@@ -519,22 +519,17 @@ static struct msm_iommu_ctx_dev vcodec_b_mm2_ctx = {
519 .mids = {0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1} 519 .mids = {0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1}
520}; 520};
521 521
522static struct msm_iommu_ctx_dev gfx3d_rbpa_ctx = { 522static struct msm_iommu_ctx_dev gfx3d_user_ctx = {
523 .name = "gfx3d_rbpa", 523 .name = "gfx3d_user",
524 .num = 0, 524 .num = 0,
525 .mids = {-1} 525 .mids = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1}
526}; 526};
527 527
528static struct msm_iommu_ctx_dev gfx3d_cpvgttc_ctx = { 528static struct msm_iommu_ctx_dev gfx3d_priv_ctx = {
529 .name = "gfx3d_cpvgttc", 529 .name = "gfx3d_priv",
530 .num = 1, 530 .num = 1,
531 .mids = {0, 1, 2, 3, 4, 5, 6, 7, -1} 531 .mids = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
532}; 532 31, -1}
533
534static struct msm_iommu_ctx_dev gfx3d_smmu_ctx = {
535 .name = "gfx3d_smmu",
536 .num = 2,
537 .mids = {8, 9, 10, 11, 12, -1}
538}; 533};
539 534
540static struct msm_iommu_ctx_dev gfx2d0_pixv1_ctx = { 535static struct msm_iommu_ctx_dev gfx2d0_pixv1_ctx = {
@@ -685,7 +680,7 @@ static struct platform_device msm_device_vcodec_b_mm2_ctx = {
685 }, 680 },
686}; 681};
687 682
688static struct platform_device msm_device_gfx3d_rbpa_ctx = { 683static struct platform_device msm_device_gfx3d_user_ctx = {
689 .name = "msm_iommu_ctx", 684 .name = "msm_iommu_ctx",
690 .id = 17, 685 .id = 17,
691 .dev = { 686 .dev = {
@@ -693,7 +688,7 @@ static struct platform_device msm_device_gfx3d_rbpa_ctx = {
693 }, 688 },
694}; 689};
695 690
696static struct platform_device msm_device_gfx3d_cpvgttc_ctx = { 691static struct platform_device msm_device_gfx3d_priv_ctx = {
697 .name = "msm_iommu_ctx", 692 .name = "msm_iommu_ctx",
698 .id = 18, 693 .id = 18,
699 .dev = { 694 .dev = {
@@ -701,17 +696,9 @@ static struct platform_device msm_device_gfx3d_cpvgttc_ctx = {
701 }, 696 },
702}; 697};
703 698
704static struct platform_device msm_device_gfx3d_smmu_ctx = {
705 .name = "msm_iommu_ctx",
706 .id = 19,
707 .dev = {
708 .parent = &msm_device_iommu_gfx3d.dev,
709 },
710};
711
712static struct platform_device msm_device_gfx2d0_pixv1_ctx = { 699static struct platform_device msm_device_gfx2d0_pixv1_ctx = {
713 .name = "msm_iommu_ctx", 700 .name = "msm_iommu_ctx",
714 .id = 20, 701 .id = 19,
715 .dev = { 702 .dev = {
716 .parent = &msm_device_iommu_gfx2d0.dev, 703 .parent = &msm_device_iommu_gfx2d0.dev,
717 }, 704 },
@@ -719,7 +706,7 @@ static struct platform_device msm_device_gfx2d0_pixv1_ctx = {
719 706
720static struct platform_device msm_device_gfx2d0_texv3_ctx = { 707static struct platform_device msm_device_gfx2d0_texv3_ctx = {
721 .name = "msm_iommu_ctx", 708 .name = "msm_iommu_ctx",
722 .id = 21, 709 .id = 20,
723 .dev = { 710 .dev = {
724 .parent = &msm_device_iommu_gfx2d0.dev, 711 .parent = &msm_device_iommu_gfx2d0.dev,
725 }, 712 },
@@ -771,9 +758,8 @@ static struct platform_device *msm_iommu_ctx_devs[] = {
771 &msm_device_vcodec_a_stream_ctx, 758 &msm_device_vcodec_a_stream_ctx,
772 &msm_device_vcodec_a_mm1_ctx, 759 &msm_device_vcodec_a_mm1_ctx,
773 &msm_device_vcodec_b_mm2_ctx, 760 &msm_device_vcodec_b_mm2_ctx,
774 &msm_device_gfx3d_rbpa_ctx, 761 &msm_device_gfx3d_user_ctx,
775 &msm_device_gfx3d_cpvgttc_ctx, 762 &msm_device_gfx3d_priv_ctx,
776 &msm_device_gfx3d_smmu_ctx,
777 &msm_device_gfx2d0_pixv1_ctx, 763 &msm_device_gfx2d0_pixv1_ctx,
778 &msm_device_gfx2d0_texv3_ctx, 764 &msm_device_gfx2d0_texv3_ctx,
779}; 765};
@@ -796,9 +782,8 @@ static struct msm_iommu_ctx_dev *msm_iommu_ctx_data[] = {
796 &vcodec_a_stream_ctx, 782 &vcodec_a_stream_ctx,
797 &vcodec_a_mm1_ctx, 783 &vcodec_a_mm1_ctx,
798 &vcodec_b_mm2_ctx, 784 &vcodec_b_mm2_ctx,
799 &gfx3d_rbpa_ctx, 785 &gfx3d_user_ctx,
800 &gfx3d_cpvgttc_ctx, 786 &gfx3d_priv_ctx,
801 &gfx3d_smmu_ctx,
802 &gfx2d0_pixv1_ctx, 787 &gfx2d0_pixv1_ctx,
803 &gfx2d0_texv3_ctx, 788 &gfx2d0_texv3_ctx,
804}; 789};