Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7358cf20 authored by David Brown's avatar David Brown
Browse files

Merge branch 'msm-core' into for-next

* msm-core:
  msm: iommu: Enable IOMMU support for MSM8960
  msm: iommu: Generalize platform data for multiple targets
  msm: iommu: Create a Kconfig item for the IOMMU driver
parents 2ff9870c 6499f0a8
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ config ARCH_MSM8X60
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select IOMMU_API
	select MSM_SCM if SMP

config ARCH_MSM8960
@@ -149,6 +148,18 @@ config MACH_MSM8960_RUMI3

endmenu

config MSM_IOMMU
	bool "MSM IOMMU Support"
	depends on ARCH_MSM8X60 || ARCH_MSM8960
	select IOMMU_API
	default n
	help
	  Support for the IOMMUs found on certain Qualcomm SOCs.
	  These IOMMUs allow virtualization of the address space used by most
	  cores within the multimedia subsystem.

	  If unsure, say N here.

config IOMMU_PGTABLES_L2
	def_bool y
	depends on ARCH_MSM8X60 && MMU && SMP && CPU_DCACHE_DISABLE=n
+2 −1
Original line number Diff line number Diff line
@@ -4,11 +4,12 @@ obj-$(CONFIG_DEBUG_FS) += clock-debug.o
endif

obj-$(CONFIG_MSM_VIC) += irq-vic.o
obj-$(CONFIG_MSM_IOMMU) += iommu.o iommu_dev.o devices-iommu.o

obj-$(CONFIG_ARCH_MSM7X00A) += dma.o irq.o acpuclock-arm11.o
obj-$(CONFIG_ARCH_MSM7X30) += dma.o
obj-$(CONFIG_ARCH_QSD8X50) += dma.o sirc.o
obj-$(CONFIG_ARCH_MSM8X60) += clock-dummy.o iommu.o iommu_dev.o devices-msm8x60-iommu.o
obj-$(CONFIG_ARCH_MSM8X60) += clock-dummy.o
obj-$(CONFIG_ARCH_MSM8960) += clock-dummy.o

obj-$(CONFIG_MSM_PROC_COMM) += proc_comm.o clock-pcom.o vreg.o
+26 −28
Original line number Diff line number Diff line
/* Copyright (c) 2010, Code Aurora Forum. All rights reserved.
/* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -18,15 +18,13 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/bootmem.h>

#include <mach/msm_iomap-8x60.h>
#include <mach/irqs-8x60.h>
#include <mach/irqs.h>
#include <mach/iommu.h>

static struct resource msm_iommu_jpegd_resources[] = {
	{
		.start = MSM_IOMMU_JPEGD_PHYS,
		.end   = MSM_IOMMU_JPEGD_PHYS + MSM_IOMMU_JPEGD_SIZE - 1,
		.start = 0x07300000,
		.end   = 0x07300000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -46,8 +44,8 @@ static struct resource msm_iommu_jpegd_resources[] = {

static struct resource msm_iommu_vpe_resources[] = {
	{
		.start = MSM_IOMMU_VPE_PHYS,
		.end   = MSM_IOMMU_VPE_PHYS + MSM_IOMMU_VPE_SIZE - 1,
		.start = 0x07400000,
		.end   = 0x07400000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -67,8 +65,8 @@ static struct resource msm_iommu_vpe_resources[] = {

static struct resource msm_iommu_mdp0_resources[] = {
	{
		.start = MSM_IOMMU_MDP0_PHYS,
		.end   = MSM_IOMMU_MDP0_PHYS + MSM_IOMMU_MDP0_SIZE - 1,
		.start = 0x07500000,
		.end   = 0x07500000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -88,8 +86,8 @@ static struct resource msm_iommu_mdp0_resources[] = {

static struct resource msm_iommu_mdp1_resources[] = {
	{
		.start = MSM_IOMMU_MDP1_PHYS,
		.end   = MSM_IOMMU_MDP1_PHYS + MSM_IOMMU_MDP1_SIZE - 1,
		.start = 0x07600000,
		.end   = 0x07600000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -109,8 +107,8 @@ static struct resource msm_iommu_mdp1_resources[] = {

static struct resource msm_iommu_rot_resources[] = {
	{
		.start = MSM_IOMMU_ROT_PHYS,
		.end   = MSM_IOMMU_ROT_PHYS + MSM_IOMMU_ROT_SIZE - 1,
		.start = 0x07700000,
		.end   = 0x07700000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -130,8 +128,8 @@ static struct resource msm_iommu_rot_resources[] = {

static struct resource msm_iommu_ijpeg_resources[] = {
	{
		.start = MSM_IOMMU_IJPEG_PHYS,
		.end   = MSM_IOMMU_IJPEG_PHYS + MSM_IOMMU_IJPEG_SIZE - 1,
		.start = 0x07800000,
		.end   = 0x07800000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -151,8 +149,8 @@ static struct resource msm_iommu_ijpeg_resources[] = {

static struct resource msm_iommu_vfe_resources[] = {
	{
		.start = MSM_IOMMU_VFE_PHYS,
		.end   = MSM_IOMMU_VFE_PHYS + MSM_IOMMU_VFE_SIZE - 1,
		.start = 0x07900000,
		.end   = 0x07900000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -172,8 +170,8 @@ static struct resource msm_iommu_vfe_resources[] = {

static struct resource msm_iommu_vcodec_a_resources[] = {
	{
		.start = MSM_IOMMU_VCODEC_A_PHYS,
		.end   = MSM_IOMMU_VCODEC_A_PHYS + MSM_IOMMU_VCODEC_A_SIZE - 1,
		.start = 0x07A00000,
		.end   = 0x07A00000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -193,8 +191,8 @@ static struct resource msm_iommu_vcodec_a_resources[] = {

static struct resource msm_iommu_vcodec_b_resources[] = {
	{
		.start = MSM_IOMMU_VCODEC_B_PHYS,
		.end   = MSM_IOMMU_VCODEC_B_PHYS + MSM_IOMMU_VCODEC_B_SIZE - 1,
		.start = 0x07B00000,
		.end   = 0x07B00000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -214,8 +212,8 @@ static struct resource msm_iommu_vcodec_b_resources[] = {

static struct resource msm_iommu_gfx3d_resources[] = {
	{
		.start = MSM_IOMMU_GFX3D_PHYS,
		.end   = MSM_IOMMU_GFX3D_PHYS + MSM_IOMMU_GFX3D_SIZE - 1,
		.start = 0x07C00000,
		.end   = 0x07C00000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -235,8 +233,8 @@ static struct resource msm_iommu_gfx3d_resources[] = {

static struct resource msm_iommu_gfx2d0_resources[] = {
	{
		.start = MSM_IOMMU_GFX2D0_PHYS,
		.end   = MSM_IOMMU_GFX2D0_PHYS + MSM_IOMMU_GFX2D0_SIZE - 1,
		.start = 0x07D00000,
		.end   = 0x07D00000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
@@ -256,8 +254,8 @@ static struct resource msm_iommu_gfx2d0_resources[] = {

static struct resource msm_iommu_gfx2d1_resources[] = {
	{
		.start = MSM_IOMMU_GFX2D1_PHYS,
		.end   = MSM_IOMMU_GFX2D1_PHYS + MSM_IOMMU_GFX2D1_SIZE - 1,
		.start = 0x07E00000,
		.end   = 0x07E00000 + SZ_1M - 1,
		.name  = "physbase",
		.flags = IORESOURCE_MEM,
	},
+0 −36
Original line number Diff line number Diff line
@@ -62,40 +62,4 @@
#define MSM8X60_TMR0_PHYS	0x02040000
#define MSM8X60_TMR0_SIZE	SZ_4K

#define MSM_IOMMU_JPEGD_PHYS	0x07300000
#define MSM_IOMMU_JPEGD_SIZE	SZ_1M

#define MSM_IOMMU_VPE_PHYS	0x07400000
#define MSM_IOMMU_VPE_SIZE	SZ_1M

#define MSM_IOMMU_MDP0_PHYS	0x07500000
#define MSM_IOMMU_MDP0_SIZE	SZ_1M

#define MSM_IOMMU_MDP1_PHYS	0x07600000
#define MSM_IOMMU_MDP1_SIZE	SZ_1M

#define MSM_IOMMU_ROT_PHYS	0x07700000
#define MSM_IOMMU_ROT_SIZE	SZ_1M

#define MSM_IOMMU_IJPEG_PHYS	0x07800000
#define MSM_IOMMU_IJPEG_SIZE	SZ_1M

#define MSM_IOMMU_VFE_PHYS	0x07900000
#define MSM_IOMMU_VFE_SIZE	SZ_1M

#define MSM_IOMMU_VCODEC_A_PHYS	0x07A00000
#define MSM_IOMMU_VCODEC_A_SIZE	SZ_1M

#define MSM_IOMMU_VCODEC_B_PHYS	0x07B00000
#define MSM_IOMMU_VCODEC_B_SIZE	SZ_1M

#define MSM_IOMMU_GFX3D_PHYS	0x07C00000
#define MSM_IOMMU_GFX3D_SIZE	SZ_1M

#define MSM_IOMMU_GFX2D0_PHYS	0x07D00000
#define MSM_IOMMU_GFX2D0_SIZE	SZ_1M

#define MSM_IOMMU_GFX2D1_PHYS	0x07E00000
#define MSM_IOMMU_GFX2D1_SIZE	SZ_1M

#endif