diff options
author | Stepan Moskovchenko <stepanm@codeaurora.org> | 2010-11-12 22:29:50 -0500 |
---|---|---|
committer | Daniel Walker <dwalker@codeaurora.org> | 2010-11-30 16:56:17 -0500 |
commit | a5fcd5f59a2658a579533d6774e871aea7ab5e92 (patch) | |
tree | d6832772a4652e43ff63283a49fa573e280db559 /arch/arm/mach-msm/devices-msm8x60-iommu.c | |
parent | 12943325cda3be10819e047cd8b5032a4fef6080 (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.c | 45 |
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 | ||
522 | static struct msm_iommu_ctx_dev gfx3d_rbpa_ctx = { | 522 | static 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 | ||
528 | static struct msm_iommu_ctx_dev gfx3d_cpvgttc_ctx = { | 528 | static 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 | |||
534 | static 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 | ||
540 | static struct msm_iommu_ctx_dev gfx2d0_pixv1_ctx = { | 535 | static 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 | ||
688 | static struct platform_device msm_device_gfx3d_rbpa_ctx = { | 683 | static 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 | ||
696 | static struct platform_device msm_device_gfx3d_cpvgttc_ctx = { | 691 | static 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 | ||
704 | static 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 | |||
712 | static struct platform_device msm_device_gfx2d0_pixv1_ctx = { | 699 | static 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 | ||
720 | static struct platform_device msm_device_gfx2d0_texv3_ctx = { | 707 | static 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 | }; |