[oe-commits] : linux omap git: add patch to fix irq -33 problem

OE GIT Trial gittrial at amethyst.openembedded.net
Thu Oct 9 07:47:09 UTC 2008


Module: org.openembedded.dev.git
Branch: org.openembedded.dev
Commit: a048be2b3cd603ec020119caeaa857bf636a0032
URL:    http://gitweb.openembedded.net/?p=org.openembedded.dev.git&a=commit;h=a048be2b3cd603ec020119caeaa857bf636a0032

Author:  <koen at openembedded.org>
Date:   Thu Oct  9 07:41:24 2008 +0000

linux omap git: add patch to fix irq -33 problem

---

 packages/linux/linux-omap/fix-irq33.diff |  111 ++++++++++++++++++++++++++++++
 packages/linux/linux-omap_git.bb         |    3 +-
 2 files changed, 113 insertions(+), 1 deletions(-)

diff --git a/packages/linux/linux-omap/fix-irq33.diff b/packages/linux/linux-omap/fix-irq33.diff
new file mode 100644
index 0000000..709f042
--- /dev/null
+++ b/packages/linux/linux-omap/fix-irq33.diff
@@ -0,0 +1,111 @@
+From: "Nathan Monson" <nmonson at gmail.com>
+To: "linux-omap at vger.kernel.org List" <linux-omap at vger.kernel.org>
+Subject: Re: omapfb: help from userspace
+Cc: "TK, Pratheesh Gangadhar" <pratheesh at ti.com>
+
+On Wed, Oct 8, 2008 at 11:36 AM, Nathan Monson <nmonson at gmail.com> wrote:
+> "Felipe Contreras" <felipe.contreras at gmail.com> writes:
+>> irq -33, desc: c0335cf8, depth: 0, count: 0, unhandled: 0
+>
+> On the BeagleBoard list, Pratheesh Gangadhar said that mapping I/O
+> regions as Strongly Ordered suppresses this problem:
+> http://groups.google.com/group/beagleboard/browse_thread/thread/23e1c95b4bfb09b5/70d12dca569ca503?show_docid=70d12dca569ca503
+
+Pratheesh helped me make a patch against the latest linux-omap git to
+try this.
+
+With this patch, my IRQ -33 problems with the DSP have disappeared.
+Before, I would end up in IRQ -33 loop after 10 invocations of the DSP
+Bridge 'ping.out' utility.  I just finished running it 50,000 times
+without error.
+
+As stated before, this patch is just a workaround for testing
+purposes, not a fix.  Who knows what performance side effects it
+has...
+
+---
+diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
+index 9eb936e..5cb4f5f 100644
+--- a/arch/arm/include/asm/mach/map.h
++++ b/arch/arm/include/asm/mach/map.h
+@@ -25,6 +25,7 @@ struct map_desc {
+ #define MT_HIGH_VECTORS		8
+ #define MT_MEMORY		9
+ #define MT_ROM			10
++#define MT_MEMORY_SO		11
+
+ #define MT_NONSHARED_DEVICE	MT_DEVICE_NONSHARED
+ #define MT_IXP2000_DEVICE	MT_DEVICE_IXP2000
+diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
+index adbe21f..c11c0e8 100644
+--- a/arch/arm/mach-omap2/io.c
++++ b/arch/arm/mach-omap2/io.c
+@@ -119,13 +119,13 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
+ 		.virtual	= L3_34XX_VIRT,
+ 		.pfn		= __phys_to_pfn(L3_34XX_PHYS),
+ 		.length		= L3_34XX_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ 	{
+ 		.virtual	= L4_34XX_VIRT,
+ 		.pfn		= __phys_to_pfn(L4_34XX_PHYS),
+ 		.length		= L4_34XX_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ 	{
+ 		.virtual	= L4_WK_34XX_VIRT,
+@@ -137,19 +137,19 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
+ 		.virtual	= OMAP34XX_GPMC_VIRT,
+ 		.pfn		= __phys_to_pfn(OMAP34XX_GPMC_PHYS),
+ 		.length		= OMAP34XX_GPMC_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ 	{
+ 		.virtual	= OMAP343X_SMS_VIRT,
+ 		.pfn		= __phys_to_pfn(OMAP343X_SMS_PHYS),
+ 		.length		= OMAP343X_SMS_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ 	{
+ 		.virtual	= OMAP343X_SDRC_VIRT,
+ 		.pfn		= __phys_to_pfn(OMAP343X_SDRC_PHYS),
+ 		.length		= OMAP343X_SDRC_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ 	{
+ 		.virtual	= L4_PER_34XX_VIRT,
+@@ -161,7 +161,7 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
+ 		.virtual	= L4_EMU_34XX_VIRT,
+ 		.pfn		= __phys_to_pfn(L4_EMU_34XX_PHYS),
+ 		.length		= L4_EMU_34XX_SIZE,
+-		.type		= MT_DEVICE
++		.type		= MT_MEMORY_SO
+ 	},
+ };
+ #endif
+diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
+index a713e40..d5f25ad 100644
+--- a/arch/arm/mm/mmu.c
++++ b/arch/arm/mm/mmu.c
+@@ -245,6 +245,10 @@ static struct mem_type mem_types[] = {
+ 		.prot_sect = PMD_TYPE_SECT,
+ 		.domain    = DOMAIN_KERNEL,
+ 	},
++	[MT_MEMORY_SO] = {
++		.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_UNCACHED,
++		.domain    = DOMAIN_KERNEL,
++	},
+ };
+
+ const struct mem_type *get_mem_type(unsigned int type)
+--
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo at vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap_git.bb b/packages/linux/linux-omap_git.bb
index a81cec8..14de954 100644
--- a/packages/linux/linux-omap_git.bb
+++ b/packages/linux/linux-omap_git.bb
@@ -9,7 +9,7 @@ COMPATIBLE_MACHINE = "omap5912osk|omap1710h3|omap2430sdp|omap2420h4|beagleboard|
 SRCREV = "e1c49d7d22af768188e2a54c167ed79919361e55"
 
 PV = "2.6.26+2.6.27-rc7+${PR}+git${SRCREV}"
-PR = "r13"
+PR = "r14"
 
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git;protocol=git \
 	   file://defconfig"
@@ -35,6 +35,7 @@ SRC_URI_append = " \
            file://mru-256MB.diff;patch=1 \
            file://musb-fix-endpoints.diff;patch=1 \
            file://dvb-fix-dma.diff;patch=1 \
+           file://fix-irq33.diff;patch=1 \
 "
 
 





More information about the Openembedded-commits mailing list