Skip to contentSkip to conversation

ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier

PATCH In review Tony Lindgren 4 participants 11 messages Dec 3, 2007 – Dec 4, 2007

Subsystems (4)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

PATCH 1/3 ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier

Hi Paul, Toshihiro & Hiroshi,

I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?

Regards,

Tony

Quoted 1 line

From 35fee383a8d4d1e335f471cf12518d9b7ec2c9d1 Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Mon, 3 Dec 2007 10:57:01 -0800
Subject: [PATCH] ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier

This patch changes MMU code to use GPLv2 as requested by Paul Mundt. It also does some minor formatting to make checkpatch.pl mostly happy, and removes dummy release function.

arch/arm/mach-omap1/mmu.c +13 -23
index 2d05708..3bb3efe 100644
@@ -9,18 +9,8 @@
  *        and Paul Mundt <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  */
 #include <linux/types.h>
 #include <linux/init.h>
@@ -286,7 +276,7 @@ static void omap1_mmu_interrupt(struct omap_mmu *mmu)
 
 	/* if the fault is masked, nothing to do */
 	if ((status & MMUFAULT_MASK) == 0) {
-		pr_debug( "MMU interrupt, but ignoring.\n");
+		pr_debug("MMU interrupt, but ignoring.\n");
 		/*
 		 * note: in OMAP1710,
 		 * when CACHE + DMA domain gets out of idle in DSP,
@@ -294,16 +284,16 @@ static void omap1_mmu_interrupt(struct omap_mmu *mmu)
 		 * in this case, we just ignore the interrupt.
 		 */
 		if (status) {
-			pr_debug( "%s%s%s%s\n",
-				  (status & OMAP_MMU_FAULT_ST_PREF)?
-				  "  (prefetch err)" : "",
-				  (status & OMAP_MMU_FAULT_ST_PERM)?
-				  "  (permission fault)" : "",
-				  (status & OMAP_MMU_FAULT_ST_TLB_MISS)?
-				  "  (TLB miss)" : "",
-				  (status & OMAP_MMU_FAULT_ST_TRANS) ?
-				  "  (translation fault)": "");
-			pr_debug( "fault address = %#08lx\n", va);
+			pr_debug("%s%s%s%s\n",
+				 (status & OMAP_MMU_FAULT_ST_PREF)?
+				 "  (prefetch err)" : "",
+				 (status & OMAP_MMU_FAULT_ST_PERM)?
+				 "  (permission fault)" : "",
+				 (status & OMAP_MMU_FAULT_ST_TLB_MISS)?
+				 "  (TLB miss)" : "",
+				 (status & OMAP_MMU_FAULT_ST_TRANS) ?
+				 "  (translation fault)": "");
+			pr_debug("fault address = %#08lx\n", va);
 		}
 		enable_irq(mmu->irq);
 		return;
arch/arm/mach-omap1/mmu.h +2 -2
index 521c3bf..918688e 100644
@@ -76,7 +76,7 @@
 
 #define OMAP_MMU_LD_TLB_RD		0x0002
 
-#define INIT_TLB_ENTRY(ent,v,p,ps)			\
+#define INIT_TLB_ENTRY(ent, v, p, ps)			\
 do {							\
 	(ent)->va	= (v);				\
 	(ent)->pa	= (p);				\
@@ -86,7 +86,7 @@ do {							\
 	(ent)->tlb	= 1;				\
 } while (0)
 
-#define INIT_TLB_ENTRY_4KB_PRESERVED(ent,v,p)		\
+#define INIT_TLB_ENTRY_4KB_PRESERVED(ent, v, p)	\
 do {							\
 	(ent)->va	= (v);				\
 	(ent)->pa	= (p);				\
arch/arm/mach-omap2/mmu.c +2 -12
index d5c1583..f8bb6df 100644
@@ -11,18 +11,8 @@
  * TWL support: Hiroshi DOYU <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  */
 #include <linux/types.h>
 #include <linux/init.h>
arch/arm/mach-omap2/mmu.h +3 -3
index 818ea8c..bae9db7 100644
@@ -59,7 +59,7 @@
 
 #define IOMAP_VAL	0x3f
 
-#define INIT_TLB_ENTRY(ent,v,p,ps)				\
+#define INIT_TLB_ENTRY(ent, v, p, ps)				\
 do {								\
 	(ent)->va	= (v);					\
 	(ent)->pa	= (p);					\
@@ -71,7 +71,7 @@ do {								\
 	(ent)->tlb	= 1;					\
 } while (0)
 
-#define INIT_TLB_ENTRY_4KB_PRESERVED(ent,v,p) \
+#define INIT_TLB_ENTRY_4KB_PRESERVED(ent, v, p)		\
 do {								\
 	(ent)->va	= (v);					\
 	(ent)->pa	= (p);					\
@@ -82,7 +82,7 @@ do {								\
 	(ent)->mixed	= 0;					\
 } while (0)
 
-#define INIT_TLB_ENTRY_4KB_ES32_PRESERVED(ent,v,p)		\
+#define INIT_TLB_ENTRY_4KB_ES32_PRESERVED(ent, v, p)		\
 do {								\
 	(ent)->va	= (v);					\
 	(ent)->pa	= (p);					\
arch/arm/plat-omap/mmu.c +2 -17
index 5c0a9ef..b7ae3d2 100644
@@ -11,18 +11,8 @@
  * TWL support: Hiroshi DOYU <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  */
 #include <linux/module.h>
 #include <linux/mempool.h>
@@ -1466,13 +1456,8 @@ static ssize_t mempool_show(struct class *class, char *buf)
 
 static CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL);
 
-static void omap_mmu_class_dev_release(struct device *dev)
-{
-}
-
 static struct class omap_mmu_class = {
 	.name		= "mmu",
-	.dev_release	= omap_mmu_class_dev_release,
 };
 
 int omap_mmu_register(struct omap_mmu *mmu)
include/asm-arm/arch-omap/dsp_common.h +3 -14
index c52b6c6..fa8f3a6 100644
@@ -5,20 +5,9 @@
  *
  * Contact: Toshihiro Kobayashi <[email protected]>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  */
 
 #ifndef ASM_ARCH_DSP_COMMON_H
author maintainer
#1 lore raw

PATCH 2/3 ARM: OMAP: Change MMU to use sysdev_class?

We could optionally change to use sysdev_class. But that changes the sysfs path to /sys/devices/system/mmu/mempool.

What do you guys think? Should we change it, or keep using class device?

Regards,

Tony

Quoted 1 line

From 0ca34f3a9f9e6859e8fbe6d206188b33f1f49c2a Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Mon, 3 Dec 2007 14:33:39 -0800
Subject: [PATCH] ARM: OMAP: Change MMU to use sysdev_class

ARM: OMAP: Change MMU to use sysdev_class.

arch/arm/plat-omap/mmu.c +13 -13
index b7ae3d2..9f05d5a 100644
@@ -20,6 +20,7 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/clk.h>
+#include <linux/sysdev.h>
 #include <linux/device.h>
 #include <linux/interrupt.h>
 #include <asm/uaccess.h>
@@ -1429,7 +1430,7 @@ static ssize_t exmap_store(struct device *dev, struct device_attribute *attr,
 
 static DEVICE_ATTR(exmap, S_IRUGO | S_IWUSR, exmap_show, exmap_store);
 
-static ssize_t mempool_show(struct class *class, char *buf)
+static ssize_t mempool_show(struct sysdev_class *class, char *buf)
 {
 	int min_nr_1M = 0, curr_nr_1M = 0;
 	int min_nr_64K = 0, curr_nr_64K = 0;
@@ -1454,17 +1455,16 @@ static ssize_t mempool_show(struct class *class, char *buf)
 }
 
 
-static CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL);
+static SYSDEV_CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL);
 
-static struct class omap_mmu_class = {
-	.name		= "mmu",
+static struct sysdev_class omap_mmu = {
+	set_kset_name("mmu"),
 };
 
 int omap_mmu_register(struct omap_mmu *mmu)
 {
 	int ret;
 
-	mmu->dev.class = &omap_mmu_class;
 	strlcpy(mmu->dev.bus_id, mmu->name, KOBJ_NAME_LEN);
 	dev_set_drvdata(&mmu->dev, mmu);
 
@@ -1548,22 +1548,22 @@ void omap_mmu_unregister(struct omap_mmu *mmu)
 }
 EXPORT_SYMBOL_GPL(omap_mmu_unregister);
 
-static int __init omap_mmu_class_init(void)
+static int __init omap_mmu_sysdev_init(void)
 {
-	int ret = class_register(&omap_mmu_class);
+	int ret = sysdev_class_register(&omap_mmu);
 	if (!ret)
-		ret = class_create_file(&omap_mmu_class, &class_attr_mempool);
+		ret = sysdev_class_create_file(&omap_mmu, &attr_mempool);
 
 	return ret;
 }
 
-static void __exit omap_mmu_class_exit(void)
+static void __exit omap_mmu_sysdev_exit(void)
 {
-	class_remove_file(&omap_mmu_class, &class_attr_mempool);
-	class_unregister(&omap_mmu_class);
+	sysdev_class_remove_file(&omap_mmu, &attr_mempool);
+	sysdev_class_unregister(&omap_mmu);
 }
 
-subsys_initcall(omap_mmu_class_init);
-module_exit(omap_mmu_class_exit);
+subsys_initcall(omap_mmu_sysdev_init);
+module_exit(omap_mmu_sysdev_exit);
 
 MODULE_LICENSE("GPL");
author maintainer
#2 lore raw

PATCH 3/3 ARM: OMAP: Add MMU framework

And this is what the MMU patch against Linus' tree would look like. This on is without the previous sysdev_class patch until that's been decided.

Paul, Toshihiro & Hiroshi, are you OK sending this to linux-arm mailing list in general in this format?

Regards,

Tony

Quoted 1 line

From 0a1a943d244aae355052fa29f9dc7e7e992ea4db Mon Sep 17 00:00:00 2001

From: Paul Mundt <[email protected]>
Date: Wed, 28 Nov 2007 15:30:54 -0800
Subject: [PATCH] ARM: OMAP: Add MMU framework

ARM: OMAP: Add MMU framework

OMAP processors have an MMU for coprocessors such as DSP, IVA (Image Video Accelerator) and camera.

Various additional features added by Hiroshi DOYU.

---
 arch/arm/mach-omap1/Makefile           |    3 +
 arch/arm/mach-omap1/mmu.c              |  361 ++++++++
 arch/arm/mach-omap1/mmu.h              |  119 +++
 arch/arm/mach-omap2/Makefile           |    3 +
 arch/arm/mach-omap2/mmu.c              |  340 +++++++
 arch/arm/mach-omap2/mmu.h              |  117 +++
 arch/arm/plat-omap/Kconfig             |    8 +
 arch/arm/plat-omap/Makefile            |    3 +
 arch/arm/plat-omap/mmu.c               | 1584 ++++++++++++++++++++++++++++++++
 include/asm-arm/arch-omap/dsp_common.h |    8 +-
 include/asm-arm/arch-omap/mmu.h        |  211 +++++
 include/asm-arm/pgtable.h              |    1 +
 12 files changed, 2756 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-omap1/mmu.c
 create mode 100644 arch/arm/mach-omap1/mmu.h
 create mode 100644 arch/arm/mach-omap2/mmu.c
 create mode 100644 arch/arm/mach-omap2/mmu.h
 create mode 100644 arch/arm/plat-omap/mmu.c
 create mode 100644 include/asm-arm/arch-omap/mmu.h
arch/arm/mach-omap1/Makefile +3 -0
Index: linux-2.6/arch/arm/mach-omap1/Makefile
===================================================================
@@ -10,6 +10,9 @@ obj-$(CONFIG_OMAP_MPU_TIMER)		+= time.o
 # Power Management
 obj-$(CONFIG_PM) += pm.o sleep.o
 
+obj-$(CONFIG_OMAP_MMU_FWK)		+= mmu_mach.o
+mmu_mach-objs				:= mmu.o
+
 led-y := leds.o
 
 # Specific board support
arch/arm/mach-omap1/mmu.c new file +351 -0

351 lines not on this page · raw message

arch/arm/mach-omap1/mmu.h new file +119 -0

119 lines not on this page · raw message

arch/arm/mach-omap2/Makefile +3 -0
Index: linux-2.6/arch/arm/mach-omap2/Makefile
===================================================================
@@ -11,6 +11,9 @@ obj-$(CONFIG_OMAP_MPU_TIMER)		+= timer-g
 # Power Management
 obj-$(CONFIG_PM) += pm.o pm-domain.o sleep.o
 
+obj-$(CONFIG_OMAP_MMU_FWK)		+= mmu_mach.o
+mmu_mach-objs				:= mmu.o
+
 # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)		+= board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4)		+= board-h4.o
arch/arm/mach-omap2/mmu.c new file +330 -0

330 lines not on this page · raw message

arch/arm/mach-omap2/mmu.h new file +117 -0

117 lines not on this page · raw message

arch/arm/plat-omap/Kconfig +8 -0
Index: linux-2.6/arch/arm/plat-omap/Kconfig
===================================================================
@@ -76,6 +76,14 @@ config OMAP_MCBSP
 	  Say Y here if you want support for the OMAP Multichannel
 	  Buffered Serial Port.
 
+config OMAP_MMU_FWK
+	tristate "MMU framework support"
+	depends on ARCH_OMAP
+	default n
+	help
+	  Say Y here if you want to use OMAP MMU framework support for
+	  DSP, IVA1.0 and Camera in OMAP1/2.
+
 choice
         prompt "System timer"
 	default OMAP_MPU_TIMER
arch/arm/plat-omap/Makefile +3 -0
Index: linux-2.6/arch/arm/plat-omap/Makefile
===================================================================
@@ -19,3 +19,6 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
 obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
 obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
 obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
+
+# OMAP MMU framework
+obj-$(CONFIG_OMAP_MMU_FWK) += mmu.o
arch/arm/plat-omap/mmu.c new file +1569 -0

1,569 lines not on this page · raw message

include/asm-arm/arch-omap/dsp_common.h +9 -16
Index: linux-2.6/include/asm-arm/arch-omap/dsp_common.h
===================================================================
@@ -5,20 +5,9 @@
  *
  * Contact: Toshihiro Kobayashi <[email protected]>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  */
 
 #ifndef ASM_ARCH_DSP_COMMON_H
@@ -27,8 +16,12 @@
 #ifdef CONFIG_ARCH_OMAP1
 extern void omap_dsp_request_mpui(void);
 extern void omap_dsp_release_mpui(void);
-extern int omap_dsp_request_mem(void);
-extern int omap_dsp_release_mem(void);
 #endif
 
+static inline int omap_dsp_request_mem(void)
+{
+	return 0;
+}
+#define omap_dsp_release_mem()	do {} while (0)
+
 #endif /* ASM_ARCH_DSP_COMMON_H */
include/asm-arm/arch-omap/mmu.h new file +211 -0

211 lines not on this page · raw message

include/asm-arm/pgtable.h +1 -0
Index: linux-2.6/include/asm-arm/pgtable.h
===================================================================
@@ -289,6 +289,7 @@ PTE_BIT_FUNC(mkyoung,   |= L_PTE_YOUNG);
 #define pmd_none(pmd)		(!pmd_val(pmd))
 #define pmd_present(pmd)	(pmd_val(pmd))
 #define pmd_bad(pmd)		(pmd_val(pmd) & 2)
+#define pmd_table(pmd)		((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE)
 
 #define copy_pmd(pmdpd,pmdps)		\
 	do {				\
#4 lore raw

Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?

In reply to Tony Lindgren
Quoted 1 line

What do you guys think? Should we change it, or keep using class device?

"struct class_device" is going to vanish ... but what I saw here was "struct class", which won't ...

author maintainer
#5 lore raw

Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?

Quoted 4 lines · David Brownell
Quoted 1 line

What do you guys think? Should we change it, or keep using class device?

"struct class_device" is going to vanish ... but what I saw here was "struct class", which won't ...

Yes sorry, "struct class", not "class_device". The "struct class_device" conversion to "struct device" was done a while back.

The reason why I'm thinking "struct class" may be still the way to go for general MMU stuff is that eventually some parts could be arch independent.

Regards,

Tony

#6 lore raw

Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?

In reply to David Brownell
Quoted 4 lines · David Brownell
Quoted 1 line

What do you guys think? Should we change it, or keep using class device?

"struct class_device" is going to vanish ... but what I saw here was "struct class", which won't ...

If struct class is going to hang around, then it's certainly preferable to keep using that. It's really the best match for this particular problem.

#3 lore raw

Re: [PATCH 3/3] ARM: OMAP: Add MMU framework

In reply to Tony Lindgren
Quoted 7 lines · Tony Lindgren

And this is what the MMU patch against Linus' tree would look like. This on is without the previous sysdev_class patch until that's been decided.

Paul, Toshihiro & Hiroshi, are you OK sending this to linux-arm mailing list in general in this format?

Fine with me, let the flaming commence :-)

author maintainer
#7 lore raw

Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?

In reply to Paul Mundt
Quoted 9 lines · Paul Mundt
Quoted 4 lines · David Brownell
Quoted 1 line

What do you guys think? Should we change it, or keep using class device?

"struct class_device" is going to vanish ... but what I saw here was "struct class", which won't ...

If struct class is going to hang around, then it's certainly preferable to keep using that. It's really the best match for this particular problem.

OK, let's scrap the sysdev_class patch then.

Tony

#8 lore raw
In reply to Tony Lindgren

Hi Tony,

Quoted 6 lines · Tony Lindgren

Hi Paul, Toshihiro & Hiroshi,

I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?

Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk
as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver
is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case
I don't know what purpose MMU fwk will serve in mainline code?

Signature · 1 line
--Trilok Soni
#9 lore raw
Quoted 11 lines · Trilok Soni
Quoted 3 lines · Tony Lindgren

I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?

Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case I don't know what purpose MMU fwk will serve in mainline code?

Whether the IVA stuff ever materializes or whether the dspgateway implementation and the camera driver ever become useful to the point of merging or not are pretty separate issues in this regard. The main thing here is that by exposing coherent interfaces for the MMUs in these parts, it's possible for people to actually do something with the underlying peripherals (as far as mapping things in and out of their respective address spaces, and so on). So I would consider it useful from a peripheral enabling point of view wholly independently from the rest.

Practically speaking, the toolchain mess for IVA and the DSP already mean that there are significant barriers for people being able to easily do anything with these blocks openly, and if there were actual motivation for that to happen by the vendors pushing this, it would have happened a long time ago. It's worth providing as much of an open interface to playing with these various blocks as possible just so people have the option of doing _something_ with them.

Additionally, if such a thing is never integrated, there's also zero push for getting the guilty parties (ie, OMAP2 camera driver) playing well with others. At this point I think the MMU framework stands by itself, and I think you're taking a fairly optimistic outlook if you believe the other drivers will get cleaned up first -- especially as the current situation is not so different from where things were a couple of years ago :-)

#10 lore raw

Hi Paul,

Quoted 12 lines · Paul Mundt
Quoted 11 lines · Trilok Soni
Quoted 3 lines · Tony Lindgren

I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?

Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case I don't know what purpose MMU fwk will serve in mainline code?

Quoted 8 lines

Whether the IVA stuff ever materializes or whether the dspgateway implementation and the camera driver ever become useful to the point of merging or not are pretty separate issues in this regard. The main thing here is that by exposing coherent interfaces for the MMUs in these parts, it's possible for people to actually do something with the underlying peripherals (as far as mapping things in and out of their respective address spaces, and so on). So I would consider it useful from a peripheral enabling point of view wholly independently from the rest.

Good. Agreed.

Quoted 8 lines

Practically speaking, the toolchain mess for IVA and the DSP already mean that there are significant barriers for people being able to easily do anything with these blocks openly, and if there were actual motivation for that to happen by the vendors pushing this, it would have happened a long time ago. It's worth providing as much of an open interface to playing with these various blocks as possible just so people have the option of doing _something_ with them.

During the TI Developer Conference and pre-conf business meetings, Bangalore last week
top TI guys gave a sign of releasing DSPBridge ARM kernel driver part, where DSP BIOS side will still be closed. If you relate this to the hints from Richard on
low-cost OMAP2/3 boards which are going to come in near future, it might happen that toolchains along with bridge driver for IVA2.0 + C64x DSP will be released along
with that boards, like it happened int the case of OMAP1 OSK kit.

Quoted 9 lines

Additionally, if such a thing is never integrated, there's also zero push for getting the guilty parties (ie, OMAP2 camera driver) playing well with others. At this point I think the MMU framework stands by itself, and I think you're taking a fairly optimistic outlook if you believe the other drivers will get cleaned up first -- especially as the current situation is not so different from where things were a couple of years ago :-)

True, not so different yet. Let's wait for TI to re-think on how their dsp's and baby
accelerators wants to get supported and maintained in future along with Linux community,
as OMAP is very much getting non-wireless move.

Signature · 1 line
--Trilok Soni