All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] omap iommu: updates for 2.6.35-rc1
@ 2010-05-31  9:36 Hiroshi DOYU
  2010-05-31 12:27 ` Tony Lindgren
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-05-31  9:36 UTC (permalink / raw)
  To: tony; +Cc: linux-omap, h-kanigeri2, x0124230

Hi Tony,

Here are the latest updates for omap iommu module.

The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:

  Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)

are available in the git repository at:
  git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu

Hiroshi DOYU (4):
      omap iommu: Introduce iopgd_is_table MACRO
      omap iommu: Rename iopte_[p,v]addr -> iopte_page_[p,v]addr
      omap iommu: move iommu_disable at fault to the above layer
      omap iommu: Make omap-iommu.o built-in

Kanigeri, Hari (3):
      omap iommu: update ducati mmu irq define name
      omap iommu: update irq mask to be specific about twl and tlb
      omap iommu: add functionality to get TLB miss interrupt

Satish (1):
      omap iommu: Fix Memory leak

 arch/arm/mach-omap2/Makefile            |    5 +++-
 arch/arm/mach-omap2/iommu2.c            |   44 ++++++++++++++++++++++++------
 arch/arm/mach-omap2/omap-iommu.c        |    2 +-
 arch/arm/plat-omap/include/plat/iommu.h |    2 +
 arch/arm/plat-omap/iommu.c              |   27 ++++++++++++++++---
 arch/arm/plat-omap/iopgtable.h          |    8 +++--
 arch/arm/plat-omap/iovmm.c              |    4 ++-
 7 files changed, 73 insertions(+), 19 deletions(-)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [GIT PULL] omap iommu: updates for 2.6.35-rc1
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-05-31 12:27 ` Tony Lindgren
  2010-06-02  7:50   ` [GIT PULL] omap iommu: fixes " Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Tony Lindgren @ 2010-05-31 12:27 UTC (permalink / raw)
  To: Hiroshi DOYU; +Cc: linux-omap, h-kanigeri2, x0124230

* Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100531 12:32]:
> Hi Tony,
> 
> Here are the latest updates for omap iommu module.
> 
> The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:
> 
>   Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)
> 
> are available in the git repository at:
>   git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu
> 
> Hiroshi DOYU (4):
>       omap iommu: Introduce iopgd_is_table MACRO
>       omap iommu: Rename iopte_[p,v]addr -> iopte_page_[p,v]addr
>       omap iommu: move iommu_disable at fault to the above layer
>       omap iommu: Make omap-iommu.o built-in
> 
> Kanigeri, Hari (3):
>       omap iommu: update ducati mmu irq define name
>       omap iommu: update irq mask to be specific about twl and tlb
>       omap iommu: add functionality to get TLB miss interrupt
> 
> Satish (1):
>       omap iommu: Fix Memory leak

This would be into for-next then. During the -rc cycle we can only
merge real fixes and regressions as requested by Linus:

http://lwn.net/Articles/389982/

Do you want to merge some of these as fixes? Maybe both
"omap iommu: update ducati mmu irq define name" and
"omap iommu: Fix Memory leak" patches should be merged as fixes?
If so, then maybe put together another branch for the fixes.

Also, have all these patches been reviewed also on the
linux-arm-kernel list? I don't want to pull them until that's
done.

BTW, I've put together a quick checklist for merging patches
via git:

http://www.elinux.org/OMAP_patch_merging_process

Cheers,

Tony

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 1/8] omap iommu: update ducati mmu irq define name
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Kanigeri, Hari, Hiroshi DOYU

From: Kanigeri, Hari <h-kanigeri2@ti.com>

2.6.34-rc6 kernel has the Ducati mmu irq define name changed, which is
resulting in compilation error.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/omap-iommu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/omap-iommu.c b/arch/arm/mach-omap2/omap-iommu.c
index eb9bee7..f5a1aad 100644
--- a/arch/arm/mach-omap2/omap-iommu.c
+++ b/arch/arm/mach-omap2/omap-iommu.c
@@ -59,7 +59,7 @@ static struct platform_device *omap3_iommu_pdev[NR_OMAP3_IOMMU_DEVICES];
 static struct iommu_device omap4_devices[] = {
 	{
 		.base = OMAP4_MMU1_BASE,
-		.irq = INT_44XX_DUCATI_MMU_IRQ,
+		.irq = OMAP44XX_IRQ_DUCATI_MMU,
 		.pdata = {
 			.name = "ducati",
 			.nr_tlb_entries = 32,
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 1/8] omap iommu: update ducati mmu irq define name
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kanigeri, Hari <h-kanigeri2@ti.com>

2.6.34-rc6 kernel has the Ducati mmu irq define name changed, which is
resulting in compilation error.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/omap-iommu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/omap-iommu.c b/arch/arm/mach-omap2/omap-iommu.c
index eb9bee7..f5a1aad 100644
--- a/arch/arm/mach-omap2/omap-iommu.c
+++ b/arch/arm/mach-omap2/omap-iommu.c
@@ -59,7 +59,7 @@ static struct platform_device *omap3_iommu_pdev[NR_OMAP3_IOMMU_DEVICES];
 static struct iommu_device omap4_devices[] = {
 	{
 		.base = OMAP4_MMU1_BASE,
-		.irq = INT_44XX_DUCATI_MMU_IRQ,
+		.irq = OMAP44XX_IRQ_DUCATI_MMU,
 		.pdata = {
 			.name = "ducati",
 			.nr_tlb_entries = 32,
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 2/8] omap iommu: Introduce iopgd_is_table MACRO
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Hiroshi DOYU

A bit more strict comparison.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iommu.c     |    8 ++++----
 arch/arm/plat-omap/iopgtable.h |    2 ++
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index bc094db..341c481 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -653,7 +653,7 @@ void iopgtable_lookup_entry(struct iommu *obj, u32 da, u32 **ppgd, u32 **ppte)
 	if (!*iopgd)
 		goto out;
 
-	if (*iopgd & IOPGD_TABLE)
+	if (iopgd_is_table(*iopgd))
 		iopte = iopte_offset(iopgd, da);
 out:
 	*ppgd = iopgd;
@@ -670,7 +670,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da)
 	if (!*iopgd)
 		return 0;
 
-	if (*iopgd & IOPGD_TABLE) {
+	if (iopgd_is_table(*iopgd)) {
 		int i;
 		u32 *iopte = iopte_offset(iopgd, da);
 
@@ -745,7 +745,7 @@ static void iopgtable_clear_entry_all(struct iommu *obj)
 		if (!*iopgd)
 			continue;
 
-		if (*iopgd & IOPGD_TABLE)
+		if (iopgd_is_table(*iopgd))
 			iopte_free(iopte_offset(iopgd, 0));
 
 		*iopgd = 0;
@@ -785,7 +785,7 @@ static irqreturn_t iommu_fault_handler(int irq, void *data)
 
 	iopgd = iopgd_offset(obj, da);
 
-	if (!(*iopgd & IOPGD_TABLE)) {
+	if (!iopgd_is_table(*iopgd)) {
 		dev_err(obj->dev, "%s: da:%08x pgd:%p *pgd:%08x\n", __func__,
 			da, iopgd, *iopgd);
 		return IRQ_NONE;
diff --git a/arch/arm/plat-omap/iopgtable.h b/arch/arm/plat-omap/iopgtable.h
index ab23b6a..f2e6b64 100644
--- a/arch/arm/plat-omap/iopgtable.h
+++ b/arch/arm/plat-omap/iopgtable.h
@@ -63,6 +63,8 @@
 #define IOPGD_SECTION		(2 << 0)
 #define IOPGD_SUPER		(1 << 18 | 2 << 0)
 
+#define iopgd_is_table(x)	(((x) & 3) == IOPGD_TABLE)
+
 #define IOPTE_SMALL		(2 << 0)
 #define IOPTE_LARGE		(1 << 0)
 
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 2/8] omap iommu: Introduce iopgd_is_table MACRO
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

A bit more strict comparison.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iommu.c     |    8 ++++----
 arch/arm/plat-omap/iopgtable.h |    2 ++
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index bc094db..341c481 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -653,7 +653,7 @@ void iopgtable_lookup_entry(struct iommu *obj, u32 da, u32 **ppgd, u32 **ppte)
 	if (!*iopgd)
 		goto out;
 
-	if (*iopgd & IOPGD_TABLE)
+	if (iopgd_is_table(*iopgd))
 		iopte = iopte_offset(iopgd, da);
 out:
 	*ppgd = iopgd;
@@ -670,7 +670,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da)
 	if (!*iopgd)
 		return 0;
 
-	if (*iopgd & IOPGD_TABLE) {
+	if (iopgd_is_table(*iopgd)) {
 		int i;
 		u32 *iopte = iopte_offset(iopgd, da);
 
@@ -745,7 +745,7 @@ static void iopgtable_clear_entry_all(struct iommu *obj)
 		if (!*iopgd)
 			continue;
 
-		if (*iopgd & IOPGD_TABLE)
+		if (iopgd_is_table(*iopgd))
 			iopte_free(iopte_offset(iopgd, 0));
 
 		*iopgd = 0;
@@ -785,7 +785,7 @@ static irqreturn_t iommu_fault_handler(int irq, void *data)
 
 	iopgd = iopgd_offset(obj, da);
 
-	if (!(*iopgd & IOPGD_TABLE)) {
+	if (!iopgd_is_table(*iopgd)) {
 		dev_err(obj->dev, "%s: da:%08x pgd:%p *pgd:%08x\n", __func__,
 			da, iopgd, *iopgd);
 		return IRQ_NONE;
diff --git a/arch/arm/plat-omap/iopgtable.h b/arch/arm/plat-omap/iopgtable.h
index ab23b6a..f2e6b64 100644
--- a/arch/arm/plat-omap/iopgtable.h
+++ b/arch/arm/plat-omap/iopgtable.h
@@ -63,6 +63,8 @@
 #define IOPGD_SECTION		(2 << 0)
 #define IOPGD_SUPER		(1 << 18 | 2 << 0)
 
+#define iopgd_is_table(x)	(((x) & 3) == IOPGD_TABLE)
+
 #define IOPTE_SMALL		(2 << 0)
 #define IOPTE_LARGE		(1 << 0)
 
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 3/8] omap iommu: Rename iopte_[p,v]addr -> iopte_page_[p,v]addr
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Hiroshi DOYU

Follow Linux pagetable accessor name convention.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iopgtable.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/iopgtable.h b/arch/arm/plat-omap/iopgtable.h
index f2e6b64..c3e93bb 100644
--- a/arch/arm/plat-omap/iopgtable.h
+++ b/arch/arm/plat-omap/iopgtable.h
@@ -72,12 +72,12 @@
 #define iopgd_index(da)		(((da) >> IOPGD_SHIFT) & (PTRS_PER_IOPGD - 1))
 #define iopgd_offset(obj, da)	((obj)->iopgd + iopgd_index(da))
 
-#define iopte_paddr(iopgd)	(*iopgd & ~((1 << 10) - 1))
-#define iopte_vaddr(iopgd)	((u32 *)phys_to_virt(iopte_paddr(iopgd)))
+#define iopgd_page_paddr(iopgd)	(*iopgd & ~((1 << 10) - 1))
+#define iopgd_page_vaddr(iopgd)	((u32 *)phys_to_virt(iopgd_page_paddr(iopgd)))
 
 /* to find an entry in the second-level page table. */
 #define iopte_index(da)		(((da) >> IOPTE_SHIFT) & (PTRS_PER_IOPTE - 1))
-#define iopte_offset(iopgd, da)	(iopte_vaddr(iopgd) + iopte_index(da))
+#define iopte_offset(iopgd, da)	(iopgd_page_vaddr(iopgd) + iopte_index(da))
 
 static inline u32 iotlb_init_entry(struct iotlb_entry *e, u32 da, u32 pa,
 				   u32 flags)
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 3/8] omap iommu: Rename iopte_[p, v]addr -> iopte_page_[p, v]addr
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

Follow Linux pagetable accessor name convention.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iopgtable.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/iopgtable.h b/arch/arm/plat-omap/iopgtable.h
index f2e6b64..c3e93bb 100644
--- a/arch/arm/plat-omap/iopgtable.h
+++ b/arch/arm/plat-omap/iopgtable.h
@@ -72,12 +72,12 @@
 #define iopgd_index(da)		(((da) >> IOPGD_SHIFT) & (PTRS_PER_IOPGD - 1))
 #define iopgd_offset(obj, da)	((obj)->iopgd + iopgd_index(da))
 
-#define iopte_paddr(iopgd)	(*iopgd & ~((1 << 10) - 1))
-#define iopte_vaddr(iopgd)	((u32 *)phys_to_virt(iopte_paddr(iopgd)))
+#define iopgd_page_paddr(iopgd)	(*iopgd & ~((1 << 10) - 1))
+#define iopgd_page_vaddr(iopgd)	((u32 *)phys_to_virt(iopgd_page_paddr(iopgd)))
 
 /* to find an entry in the second-level page table. */
 #define iopte_index(da)		(((da) >> IOPTE_SHIFT) & (PTRS_PER_IOPTE - 1))
-#define iopte_offset(iopgd, da)	(iopte_vaddr(iopgd) + iopte_index(da))
+#define iopte_offset(iopgd, da)	(iopgd_page_vaddr(iopgd) + iopte_index(da))
 
 static inline u32 iotlb_init_entry(struct iotlb_entry *e, u32 da, u32 pa,
 				   u32 flags)
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 4/8] omap iommu: Fix Memory leak
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel
  Cc: Satish, Manjunatha GK, Tony Lindgren, vimal singh, Hiroshi DOYU

From: Satish <x0124230@ti.com>

The memory allocated for sgt structure is not freed on error
when sg_alloc_table is called in sgtable_alloc().

Signed-off-by: Satish Kumar <x0124230@ti.com>
Signed-off-by: Manjunatha GK <manjugk@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: vimal singh <vimal.newwork@gmail.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iovmm.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c
index e43983b..8ce0de2 100644
--- a/arch/arm/plat-omap/iovmm.c
+++ b/arch/arm/plat-omap/iovmm.c
@@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags)
 		return ERR_PTR(-ENOMEM);
 
 	err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL);
-	if (err)
+	if (err) {
+		kfree(sgt);
 		return ERR_PTR(err);
+	}
 
 	pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries);
 
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 4/8] omap iommu: Fix Memory leak
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

From: Satish <x0124230@ti.com>

The memory allocated for sgt structure is not freed on error
when sg_alloc_table is called in sgtable_alloc().

Signed-off-by: Satish Kumar <x0124230@ti.com>
Signed-off-by: Manjunatha GK <manjugk@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: vimal singh <vimal.newwork@gmail.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/plat-omap/iovmm.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c
index e43983b..8ce0de2 100644
--- a/arch/arm/plat-omap/iovmm.c
+++ b/arch/arm/plat-omap/iovmm.c
@@ -140,8 +140,10 @@ static struct sg_table *sgtable_alloc(const size_t bytes, u32 flags)
 		return ERR_PTR(-ENOMEM);
 
 	err = sg_alloc_table(sgt, nr_entries, GFP_KERNEL);
-	if (err)
+	if (err) {
+		kfree(sgt);
 		return ERR_PTR(err);
+	}
 
 	pr_debug("%s: sgt:%p(%d entries)\n", __func__, sgt, nr_entries);
 
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 5/8] omap iommu: update irq mask to be specific about twl and tlb
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Kanigeri, Hari, Hiroshi DOYU

From: Kanigeri, Hari <h-kanigeri2@ti.com>

Revise the IRQ mask definitions to handle the  MMU faults related
to TWL fault as well as TLB miss fault.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index e82da68..ebbdae2 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -44,9 +44,13 @@
 #define MMU_IRQ_EMUMISS		(1 << 2)
 #define MMU_IRQ_TRANSLATIONFAULT	(1 << 1)
 #define MMU_IRQ_TLBMISS		(1 << 0)
-#define MMU_IRQ_MASK	\
-	(MMU_IRQ_MULTIHITFAULT | MMU_IRQ_TABLEWALKFAULT | MMU_IRQ_EMUMISS | \
-	 MMU_IRQ_TRANSLATIONFAULT)
+
+#define __MMU_IRQ_FAULT		\
+	(MMU_IRQ_MULTIHITFAULT | MMU_IRQ_EMUMISS | MMU_IRQ_TRANSLATIONFAULT)
+#define MMU_IRQ_MASK		\
+	(__MMU_IRQ_FAULT | MMU_IRQ_TABLEWALKFAULT | MMU_IRQ_TLBMISS)
+#define MMU_IRQ_TWL_MASK	(__MMU_IRQ_FAULT | MMU_IRQ_TABLEWALKFAULT)
+#define MMU_IRQ_TLB_MISS_MASK	(__MMU_IRQ_FAULT | MMU_IRQ_TLBMISS)
 
 /* MMU_CNTL */
 #define MMU_CNTL_SHIFT		1
@@ -96,7 +100,7 @@ static int omap2_iommu_enable(struct iommu *obj)
 	l |= (MMU_SYS_IDLE_SMART | MMU_SYS_AUTOIDLE);
 	iommu_write_reg(obj, l, MMU_SYSCONFIG);
 
-	iommu_write_reg(obj, MMU_IRQ_MASK, MMU_IRQENABLE);
+	iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
 	iommu_write_reg(obj, pa, MMU_TTB);
 
 	l = iommu_read_reg(obj, MMU_CNTL);
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 5/8] omap iommu: update irq mask to be specific about twl and tlb
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kanigeri, Hari <h-kanigeri2@ti.com>

Revise the IRQ mask definitions to handle the  MMU faults related
to TWL fault as well as TLB miss fault.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index e82da68..ebbdae2 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -44,9 +44,13 @@
 #define MMU_IRQ_EMUMISS		(1 << 2)
 #define MMU_IRQ_TRANSLATIONFAULT	(1 << 1)
 #define MMU_IRQ_TLBMISS		(1 << 0)
-#define MMU_IRQ_MASK	\
-	(MMU_IRQ_MULTIHITFAULT | MMU_IRQ_TABLEWALKFAULT | MMU_IRQ_EMUMISS | \
-	 MMU_IRQ_TRANSLATIONFAULT)
+
+#define __MMU_IRQ_FAULT		\
+	(MMU_IRQ_MULTIHITFAULT | MMU_IRQ_EMUMISS | MMU_IRQ_TRANSLATIONFAULT)
+#define MMU_IRQ_MASK		\
+	(__MMU_IRQ_FAULT | MMU_IRQ_TABLEWALKFAULT | MMU_IRQ_TLBMISS)
+#define MMU_IRQ_TWL_MASK	(__MMU_IRQ_FAULT | MMU_IRQ_TABLEWALKFAULT)
+#define MMU_IRQ_TLB_MISS_MASK	(__MMU_IRQ_FAULT | MMU_IRQ_TLBMISS)
 
 /* MMU_CNTL */
 #define MMU_CNTL_SHIFT		1
@@ -96,7 +100,7 @@ static int omap2_iommu_enable(struct iommu *obj)
 	l |= (MMU_SYS_IDLE_SMART | MMU_SYS_AUTOIDLE);
 	iommu_write_reg(obj, l, MMU_SYSCONFIG);
 
-	iommu_write_reg(obj, MMU_IRQ_MASK, MMU_IRQENABLE);
+	iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
 	iommu_write_reg(obj, pa, MMU_TTB);
 
 	l = iommu_read_reg(obj, MMU_CNTL);
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 6/8] omap iommu: add functionality to get TLB miss interrupt
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Kanigeri, Hari, Ramesh Gupta, Hiroshi DOYU

From: Kanigeri, Hari <h-kanigeri2@ti.com>

In order to enable TLB miss interrupt, the TWL should be
disabled. This patch provides the functionality to get the
MMU fault interrupt for a TLB miss in the cases where the
users are working with the locked TLB entries and with TWL
disabled.
New interface is added to select twl and to enable TLB miss
interrupt.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Ramesh Gupta <grgupta@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c            |   32 ++++++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/iommu.h |    2 +
 arch/arm/plat-omap/iommu.c              |   17 ++++++++++++++++
 3 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index ebbdae2..edf7cd4 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -65,6 +65,26 @@
 	 ((pgsz) == MMU_CAM_PGSZ_64K) ? 0xffff0000 :	\
 	 ((pgsz) == MMU_CAM_PGSZ_4K)  ? 0xfffff000 : 0)
 
+
+static void __iommu_set_twl(struct iommu *obj, bool on)
+{
+	u32 l = iommu_read_reg(obj, MMU_CNTL);
+
+	if (on)
+		iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
+	else
+		iommu_write_reg(obj, MMU_IRQ_TLB_MISS_MASK, MMU_IRQENABLE);
+
+	l &= ~MMU_CNTL_MASK;
+	if (on)
+		l |= (MMU_CNTL_MMU_EN | MMU_CNTL_TWL_EN);
+	else
+		l |= (MMU_CNTL_MMU_EN);
+
+	iommu_write_reg(obj, l, MMU_CNTL);
+}
+
+
 static int omap2_iommu_enable(struct iommu *obj)
 {
 	u32 l, pa;
@@ -100,13 +120,9 @@ static int omap2_iommu_enable(struct iommu *obj)
 	l |= (MMU_SYS_IDLE_SMART | MMU_SYS_AUTOIDLE);
 	iommu_write_reg(obj, l, MMU_SYSCONFIG);
 
-	iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
 	iommu_write_reg(obj, pa, MMU_TTB);
 
-	l = iommu_read_reg(obj, MMU_CNTL);
-	l &= ~MMU_CNTL_MASK;
-	l |= (MMU_CNTL_MMU_EN | MMU_CNTL_TWL_EN);
-	iommu_write_reg(obj, l, MMU_CNTL);
+	__iommu_set_twl(obj, true);
 
 	return 0;
 }
@@ -122,6 +138,11 @@ static void omap2_iommu_disable(struct iommu *obj)
 	dev_dbg(obj->dev, "%s is shutting down\n", obj->name);
 }
 
+static void omap2_iommu_set_twl(struct iommu *obj, bool on)
+{
+	__iommu_set_twl(obj, false);
+}
+
 static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra)
 {
 	int i;
@@ -304,6 +325,7 @@ static const struct iommu_functions omap2_iommu_ops = {
 
 	.enable		= omap2_iommu_enable,
 	.disable	= omap2_iommu_disable,
+	.set_twl	= omap2_iommu_set_twl,
 	.fault_isr	= omap2_iommu_fault_isr,
 
 	.tlb_read_cr	= omap2_tlb_read_cr,
diff --git a/arch/arm/plat-omap/include/plat/iommu.h b/arch/arm/plat-omap/include/plat/iommu.h
index 0752af9..33c7d41 100644
--- a/arch/arm/plat-omap/include/plat/iommu.h
+++ b/arch/arm/plat-omap/include/plat/iommu.h
@@ -80,6 +80,7 @@ struct iommu_functions {
 
 	int (*enable)(struct iommu *obj);
 	void (*disable)(struct iommu *obj);
+	void (*set_twl)(struct iommu *obj, bool on);
 	u32 (*fault_isr)(struct iommu *obj, u32 *ra);
 
 	void (*tlb_read_cr)(struct iommu *obj, struct cr_regs *cr);
@@ -143,6 +144,7 @@ extern void iotlb_cr_to_e(struct cr_regs *cr, struct iotlb_entry *e);
 extern u32 iotlb_cr_to_virt(struct cr_regs *cr);
 
 extern int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e);
+extern void iommu_set_twl(struct iommu *obj, bool on);
 extern void flush_iotlb_page(struct iommu *obj, u32 da);
 extern void flush_iotlb_range(struct iommu *obj, u32 start, u32 end);
 extern void flush_iotlb_all(struct iommu *obj);
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 341c481..688ae66 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -370,6 +370,23 @@ void flush_iotlb_all(struct iommu *obj)
 }
 EXPORT_SYMBOL_GPL(flush_iotlb_all);
 
+/**
+ * iommu_set_twl - enable/disable table walking logic
+ * @obj:	target iommu
+ * @on:		enable/disable
+ *
+ * Function used to enable/disable TWL. If one wants to work
+ * exclusively with locked TLB entries and receive notifications
+ * for TLB miss then call this function to disable TWL.
+ */
+void iommu_set_twl(struct iommu *obj, bool on)
+{
+	clk_enable(obj->clk);
+	arch_iommu->set_twl(obj, on);
+	clk_disable(obj->clk);
+}
+EXPORT_SYMBOL_GPL(iommu_set_twl);
+
 #if defined(CONFIG_OMAP_IOMMU_DEBUG_MODULE)
 
 ssize_t iommu_dump_ctx(struct iommu *obj, char *buf, ssize_t bytes)
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 6/8] omap iommu: add functionality to get TLB miss interrupt
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kanigeri, Hari <h-kanigeri2@ti.com>

In order to enable TLB miss interrupt, the TWL should be
disabled. This patch provides the functionality to get the
MMU fault interrupt for a TLB miss in the cases where the
users are working with the locked TLB entries and with TWL
disabled.
New interface is added to select twl and to enable TLB miss
interrupt.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Ramesh Gupta <grgupta@ti.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c            |   32 ++++++++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/iommu.h |    2 +
 arch/arm/plat-omap/iommu.c              |   17 ++++++++++++++++
 3 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index ebbdae2..edf7cd4 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -65,6 +65,26 @@
 	 ((pgsz) == MMU_CAM_PGSZ_64K) ? 0xffff0000 :	\
 	 ((pgsz) == MMU_CAM_PGSZ_4K)  ? 0xfffff000 : 0)
 
+
+static void __iommu_set_twl(struct iommu *obj, bool on)
+{
+	u32 l = iommu_read_reg(obj, MMU_CNTL);
+
+	if (on)
+		iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
+	else
+		iommu_write_reg(obj, MMU_IRQ_TLB_MISS_MASK, MMU_IRQENABLE);
+
+	l &= ~MMU_CNTL_MASK;
+	if (on)
+		l |= (MMU_CNTL_MMU_EN | MMU_CNTL_TWL_EN);
+	else
+		l |= (MMU_CNTL_MMU_EN);
+
+	iommu_write_reg(obj, l, MMU_CNTL);
+}
+
+
 static int omap2_iommu_enable(struct iommu *obj)
 {
 	u32 l, pa;
@@ -100,13 +120,9 @@ static int omap2_iommu_enable(struct iommu *obj)
 	l |= (MMU_SYS_IDLE_SMART | MMU_SYS_AUTOIDLE);
 	iommu_write_reg(obj, l, MMU_SYSCONFIG);
 
-	iommu_write_reg(obj, MMU_IRQ_TWL_MASK, MMU_IRQENABLE);
 	iommu_write_reg(obj, pa, MMU_TTB);
 
-	l = iommu_read_reg(obj, MMU_CNTL);
-	l &= ~MMU_CNTL_MASK;
-	l |= (MMU_CNTL_MMU_EN | MMU_CNTL_TWL_EN);
-	iommu_write_reg(obj, l, MMU_CNTL);
+	__iommu_set_twl(obj, true);
 
 	return 0;
 }
@@ -122,6 +138,11 @@ static void omap2_iommu_disable(struct iommu *obj)
 	dev_dbg(obj->dev, "%s is shutting down\n", obj->name);
 }
 
+static void omap2_iommu_set_twl(struct iommu *obj, bool on)
+{
+	__iommu_set_twl(obj, false);
+}
+
 static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra)
 {
 	int i;
@@ -304,6 +325,7 @@ static const struct iommu_functions omap2_iommu_ops = {
 
 	.enable		= omap2_iommu_enable,
 	.disable	= omap2_iommu_disable,
+	.set_twl	= omap2_iommu_set_twl,
 	.fault_isr	= omap2_iommu_fault_isr,
 
 	.tlb_read_cr	= omap2_tlb_read_cr,
diff --git a/arch/arm/plat-omap/include/plat/iommu.h b/arch/arm/plat-omap/include/plat/iommu.h
index 0752af9..33c7d41 100644
--- a/arch/arm/plat-omap/include/plat/iommu.h
+++ b/arch/arm/plat-omap/include/plat/iommu.h
@@ -80,6 +80,7 @@ struct iommu_functions {
 
 	int (*enable)(struct iommu *obj);
 	void (*disable)(struct iommu *obj);
+	void (*set_twl)(struct iommu *obj, bool on);
 	u32 (*fault_isr)(struct iommu *obj, u32 *ra);
 
 	void (*tlb_read_cr)(struct iommu *obj, struct cr_regs *cr);
@@ -143,6 +144,7 @@ extern void iotlb_cr_to_e(struct cr_regs *cr, struct iotlb_entry *e);
 extern u32 iotlb_cr_to_virt(struct cr_regs *cr);
 
 extern int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e);
+extern void iommu_set_twl(struct iommu *obj, bool on);
 extern void flush_iotlb_page(struct iommu *obj, u32 da);
 extern void flush_iotlb_range(struct iommu *obj, u32 start, u32 end);
 extern void flush_iotlb_all(struct iommu *obj);
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 341c481..688ae66 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -370,6 +370,23 @@ void flush_iotlb_all(struct iommu *obj)
 }
 EXPORT_SYMBOL_GPL(flush_iotlb_all);
 
+/**
+ * iommu_set_twl - enable/disable table walking logic
+ * @obj:	target iommu
+ * @on:		enable/disable
+ *
+ * Function used to enable/disable TWL. If one wants to work
+ * exclusively with locked TLB entries and receive notifications
+ * for TLB miss then call this function to disable TWL.
+ */
+void iommu_set_twl(struct iommu *obj, bool on)
+{
+	clk_enable(obj->clk);
+	arch_iommu->set_twl(obj, on);
+	clk_disable(obj->clk);
+}
+EXPORT_SYMBOL_GPL(iommu_set_twl);
+
 #if defined(CONFIG_OMAP_IOMMU_DEBUG_MODULE)
 
 ssize_t iommu_dump_ctx(struct iommu *obj, char *buf, ssize_t bytes)
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 7/8] omap iommu: move iommu_disable at fault to the above layer
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Hiroshi DOYU

The function prefix "omap2_iommu_" indicates that the prefixed
function belongs to "omap2_iommu_ops" to provide iommu basic
functionalities for the above layers. It's better to avoid the
prefixed function called in the same prefixed ones internally, like
nested here. Now "iommu_disable" is called just after fault_isr() in
the above layer. This is a little bit more sensible to keep the
consistency of module layers.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c |    2 +-
 arch/arm/plat-omap/iommu.c   |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index edf7cd4..14ee686 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -172,7 +172,7 @@ static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra)
 	printk("\n");
 
 	iommu_write_reg(obj, stat, MMU_IRQSTATUS);
-	omap2_iommu_disable(obj);
+
 	return stat;
 }
 
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 688ae66..a202a2c 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -800,6 +800,8 @@ static irqreturn_t iommu_fault_handler(int irq, void *data)
 	if (!stat)
 		return IRQ_HANDLED;
 
+	iommu_disable(obj);
+
 	iopgd = iopgd_offset(obj, da);
 
 	if (!iopgd_is_table(*iopgd)) {
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 7/8] omap iommu: move iommu_disable at fault to the above layer
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

The function prefix "omap2_iommu_" indicates that the prefixed
function belongs to "omap2_iommu_ops" to provide iommu basic
functionalities for the above layers. It's better to avoid the
prefixed function called in the same prefixed ones internally, like
nested here. Now "iommu_disable" is called just after fault_isr() in
the above layer. This is a little bit more sensible to keep the
consistency of module layers.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/iommu2.c |    2 +-
 arch/arm/plat-omap/iommu.c   |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c
index edf7cd4..14ee686 100644
--- a/arch/arm/mach-omap2/iommu2.c
+++ b/arch/arm/mach-omap2/iommu2.c
@@ -172,7 +172,7 @@ static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra)
 	printk("\n");
 
 	iommu_write_reg(obj, stat, MMU_IRQSTATUS);
-	omap2_iommu_disable(obj);
+
 	return stat;
 }
 
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 688ae66..a202a2c 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -800,6 +800,8 @@ static irqreturn_t iommu_fault_handler(int irq, void *data)
 	if (!stat)
 		return IRQ_HANDLED;
 
+	iommu_disable(obj);
+
 	iopgd = iopgd_offset(obj, da);
 
 	if (!iopgd_is_table(*iopgd)) {
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 8/8] omap iommu: Make omap-iommu.o built-in
  2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
@ 2010-06-01  5:30   ` Hiroshi DOYU
  2010-06-01  5:30   ` Hiroshi DOYU
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel; +Cc: Hiroshi DOYU

This is a platform device registration.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/Makefile |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index ea52b03..6c6d7c6 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -89,7 +89,10 @@ obj-$(CONFIG_OMAP3_EMU)			+= emu.o
 obj-$(CONFIG_OMAP_MBOX_FWK)		+= mailbox_mach.o
 mailbox_mach-objs			:= mailbox.o
 
-obj-$(CONFIG_OMAP_IOMMU)		:= iommu2.o omap-iommu.o
+obj-$(CONFIG_OMAP_IOMMU)		+= iommu2.o
+
+iommu-$(CONFIG_OMAP_IOMMU)		:= omap-iommu.o
+obj-y					+= $(iommu-m) $(iommu-y)
 
 i2c-omap-$(CONFIG_I2C_OMAP)		:= i2c.o
 obj-y					+= $(i2c-omap-m) $(i2c-omap-y)
-- 
1.7.1.rc1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 8/8] omap iommu: Make omap-iommu.o built-in
@ 2010-06-01  5:30   ` Hiroshi DOYU
  0 siblings, 0 replies; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-01  5:30 UTC (permalink / raw)
  To: linux-arm-kernel

This is a platform device registration.

Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 arch/arm/mach-omap2/Makefile |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index ea52b03..6c6d7c6 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -89,7 +89,10 @@ obj-$(CONFIG_OMAP3_EMU)			+= emu.o
 obj-$(CONFIG_OMAP_MBOX_FWK)		+= mailbox_mach.o
 mailbox_mach-objs			:= mailbox.o
 
-obj-$(CONFIG_OMAP_IOMMU)		:= iommu2.o omap-iommu.o
+obj-$(CONFIG_OMAP_IOMMU)		+= iommu2.o
+
+iommu-$(CONFIG_OMAP_IOMMU)		:= omap-iommu.o
+obj-y					+= $(iommu-m) $(iommu-y)
 
 i2c-omap-$(CONFIG_I2C_OMAP)		:= i2c.o
 obj-y					+= $(i2c-omap-m) $(i2c-omap-y)
-- 
1.7.1.rc1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [GIT PULL] omap iommu: fixes for 2.6.35-rc1
  2010-05-31 12:27 ` Tony Lindgren
@ 2010-06-02  7:50   ` Hiroshi DOYU
  2010-06-07 11:17     ` Tony Lindgren
  0 siblings, 1 reply; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-02  7:50 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, h-kanigeri2, x0124230

Hi Tony,

Patches only for fixes for omap iommu module during -rc cycle.

The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:

  Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)

are available in the git repository at:
  git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu-fixes

Hiroshi DOYU (1):
      omap iommu: Make omap-iommu.o built-in

Kanigeri, Hari (1):
      omap iommu: update ducati mmu irq define name

Satish (1):
      omap iommu: Fix Memory leak

 arch/arm/mach-omap2/Makefile     |    5 ++++-
 arch/arm/mach-omap2/omap-iommu.c |    2 +-
 arch/arm/plat-omap/iovmm.c       |    4 +++-
 3 files changed, 8 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
  2010-06-02  7:50   ` [GIT PULL] omap iommu: fixes " Hiroshi DOYU
@ 2010-06-07 11:17     ` Tony Lindgren
  2010-06-07 11:50       ` Hiroshi DOYU
  0 siblings, 1 reply; 23+ messages in thread
From: Tony Lindgren @ 2010-06-07 11:17 UTC (permalink / raw)
  To: Hiroshi DOYU; +Cc: linux-omap, h-kanigeri2, x0124230

Hi,

Since Linus only wants regression fixes nowadays during the -rc
cycle, few more questions below.

* Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100602 10:45]:
> Hi Tony,
> 
> Patches only for fixes for omap iommu module during -rc cycle.
> 
> The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:
> 
>   Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)
> 
> are available in the git repository at:
>   git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu-fixes
> 
> Hiroshi DOYU (1):
>       omap iommu: Make omap-iommu.o built-in

Does the above actually fix some problem? If it fixes some problem,
it should be in the description. If not, maybe move this one for
the next merge window?
 
> Kanigeri, Hari (1):
>       omap iommu: update ducati mmu irq define name

This description does not seem to make sense as the ducati irq
define was added with e927f8d04ec8aff249beab2f7e1832c67623d0f5
and has not changed. The description is for some non-mainline
tree talking about 2.6.34-rc6 so it should be updated.
 
> Satish (1):
>       omap iommu: Fix Memory leak

This one looks like a genuine fix :)

Regards,

Tony

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
  2010-06-07 11:17     ` Tony Lindgren
@ 2010-06-07 11:50       ` Hiroshi DOYU
  2010-06-08 11:36         ` Tony Lindgren
  0 siblings, 1 reply; 23+ messages in thread
From: Hiroshi DOYU @ 2010-06-07 11:50 UTC (permalink / raw)
  To: tony; +Cc: linux-omap, h-kanigeri2, x0124230

From: ext Tony Lindgren <tony@atomide.com>
Subject: Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
Date: Mon, 7 Jun 2010 13:17:48 +0200

> Since Linus only wants regression fixes nowadays during the -rc
> cycle, few more questions below.
> 
> * Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100602 10:45]:
>> Hi Tony,
>> 
>> Patches only for fixes for omap iommu module during -rc cycle.
>> 
>> The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:
>> 
>>   Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)
>> 
>> are available in the git repository at:
>>   git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu-fixes
>> 
>> Hiroshi DOYU (1):
>>       omap iommu: Make omap-iommu.o built-in
> 
> Does the above actually fix some problem? If it fixes some problem,
> it should be in the description. If not, maybe move this one for
> the next merge window?

This is a fix for the previously overwriting obj-y/m as blow, and
updated the description as well.

-obj-$(CONFIG_OMAP_IOMMU)               := iommu2.o omap-iommu.o
+obj-$(CONFIG_OMAP_IOMMU)               += iommu2.o

>> Kanigeri, Hari (1):
>>       omap iommu: update ducati mmu irq define name
> 
> This description does not seem to make sense as the ducati irq
> define was added with e927f8d04ec8aff249beab2f7e1832c67623d0f5
> and has not changed. The description is for some non-mainline
> tree talking about 2.6.34-rc6 so it should be updated.

Updated the description.

>  
>> Satish (1):
>>       omap iommu: Fix Memory leak
> 
> This one looks like a genuine fix :)

I've also updated the branch against -rc2. Please merge it if no problem.

The following changes since commit e44a21b7268a022c7749f521c06214145bd161e4:

  Linux 2.6.35-rc2 (2010-06-05 20:43:24 -0700)

are available in the git repository at:
  git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc2-iommu-fixes

Hiroshi DOYU (1):
      omap iommu: fix: Make omap-iommu.o built-in

Kanigeri, Hari (1):
      omap iommu: fix ducati mmu irq define name

Satish (1):
      omap iommu: Fix Memory leak

 arch/arm/mach-omap2/Makefile     |    5 ++++-
 arch/arm/mach-omap2/omap-iommu.c |    2 +-
 arch/arm/plat-omap/iovmm.c       |    4 +++-
 3 files changed, 8 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
  2010-06-07 11:50       ` Hiroshi DOYU
@ 2010-06-08 11:36         ` Tony Lindgren
  2010-06-09 11:10           ` Tony Lindgren
  0 siblings, 1 reply; 23+ messages in thread
From: Tony Lindgren @ 2010-06-08 11:36 UTC (permalink / raw)
  To: Hiroshi DOYU; +Cc: linux-omap, h-kanigeri2, x0124230

* Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100607 14:45]:
> From: ext Tony Lindgren <tony@atomide.com>
> Subject: Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
> Date: Mon, 7 Jun 2010 13:17:48 +0200
> 
> > Since Linus only wants regression fixes nowadays during the -rc
> > cycle, few more questions below.
> > 
> > * Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100602 10:45]:
> >> Hi Tony,
> >> 
> >> Patches only for fixes for omap iommu module during -rc cycle.
> >> 
> >> The following changes since commit 67a3e12b05e055c0415c556a315a3d3eb637e29e:
> >> 
> >>   Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)
> >> 
> >> are available in the git repository at:
> >>   git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc1-iommu-fixes
> >> 
> >> Hiroshi DOYU (1):
> >>       omap iommu: Make omap-iommu.o built-in
> > 
> > Does the above actually fix some problem? If it fixes some problem,
> > it should be in the description. If not, maybe move this one for
> > the next merge window?
> 
> This is a fix for the previously overwriting obj-y/m as blow, and
> updated the description as well.
> 
> -obj-$(CONFIG_OMAP_IOMMU)               := iommu2.o omap-iommu.o
> +obj-$(CONFIG_OMAP_IOMMU)               += iommu2.o
> 
> >> Kanigeri, Hari (1):
> >>       omap iommu: update ducati mmu irq define name
> > 
> > This description does not seem to make sense as the ducati irq
> > define was added with e927f8d04ec8aff249beab2f7e1832c67623d0f5
> > and has not changed. The description is for some non-mainline
> > tree talking about 2.6.34-rc6 so it should be updated.
> 
> Updated the description.
> 
> >  
> >> Satish (1):
> >>       omap iommu: Fix Memory leak
> > 
> > This one looks like a genuine fix :)
> 
> I've also updated the branch against -rc2. Please merge it if no problem.

OK, thanks for updating the series.

Tony

 
> The following changes since commit e44a21b7268a022c7749f521c06214145bd161e4:
> 
>   Linux 2.6.35-rc2 (2010-06-05 20:43:24 -0700)
> 
> are available in the git repository at:
>   git://gitorious.org/~doyu/lk/mainline.git v2.6.35-rc2-iommu-fixes
> 
> Hiroshi DOYU (1):
>       omap iommu: fix: Make omap-iommu.o built-in
> 
> Kanigeri, Hari (1):
>       omap iommu: fix ducati mmu irq define name
> 
> Satish (1):
>       omap iommu: Fix Memory leak
> 
>  arch/arm/mach-omap2/Makefile     |    5 ++++-
>  arch/arm/mach-omap2/omap-iommu.c |    2 +-
>  arch/arm/plat-omap/iovmm.c       |    4 +++-
>  3 files changed, 8 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [GIT PULL] omap iommu: fixes for 2.6.35-rc1
  2010-06-08 11:36         ` Tony Lindgren
@ 2010-06-09 11:10           ` Tony Lindgren
  0 siblings, 0 replies; 23+ messages in thread
From: Tony Lindgren @ 2010-06-09 11:10 UTC (permalink / raw)
  To: Hiroshi DOYU; +Cc: linux-omap, h-kanigeri2, x0124230

* Tony Lindgren <tony@atomide.com> [100608 14:30]:
> * Hiroshi DOYU <Hiroshi.DOYU@nokia.com> [100607 14:45]:
> > >  
> > >> Satish (1):
> > >>       omap iommu: Fix Memory leak
> > > 
> > > This one looks like a genuine fix :)
> > 
> > I've also updated the branch against -rc2. Please merge it if no problem.
> 
> OK, thanks for updating the series.

Well I ended up only cherry picking the memory leak one looking at
Linus' recent comments.. I've moved the two others into for-next
as they might be hard to justify as "regression fixes or
fixes to major bugs (oopses or security etc)". And we really want
to get the compile fixes in without having to wait for those.

Regards,

Tony

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2010-06-09 11:10 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-31  9:36 [GIT PULL] omap iommu: updates for 2.6.35-rc1 Hiroshi DOYU
2010-05-31 12:27 ` Tony Lindgren
2010-06-02  7:50   ` [GIT PULL] omap iommu: fixes " Hiroshi DOYU
2010-06-07 11:17     ` Tony Lindgren
2010-06-07 11:50       ` Hiroshi DOYU
2010-06-08 11:36         ` Tony Lindgren
2010-06-09 11:10           ` Tony Lindgren
2010-06-01  5:30 ` [PATCH 1/8] omap iommu: update ducati mmu irq define name Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 2/8] omap iommu: Introduce iopgd_is_table MACRO Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 3/8] omap iommu: Rename iopte_[p,v]addr -> iopte_page_[p,v]addr Hiroshi DOYU
2010-06-01  5:30   ` [PATCH 3/8] omap iommu: Rename iopte_[p, v]addr -> iopte_page_[p, v]addr Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 4/8] omap iommu: Fix Memory leak Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 5/8] omap iommu: update irq mask to be specific about twl and tlb Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 6/8] omap iommu: add functionality to get TLB miss interrupt Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 7/8] omap iommu: move iommu_disable at fault to the above layer Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU
2010-06-01  5:30 ` [PATCH 8/8] omap iommu: Make omap-iommu.o built-in Hiroshi DOYU
2010-06-01  5:30   ` Hiroshi DOYU

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.