<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=ks_c_5601-1987">
<META content="MSHTML 6.00.2900.3603" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>This patch provide software priority masking </FONT></DIV>
<DIV><FONT size=2>for PL192 feature regarding S/W priority mask.</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Signed-off-by: Hyunwoong Kim <A 
href="mailto:khw0178.kim@samsung.com">khw0178.kim@samsung.com</A></FONT></DIV>
<DIV><FONT size=2>---</FONT></DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp; arch/arm/common/vic.c&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 15++-</FONT></DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp; 
arch/arm/include/asm/hardware/vic.h&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 
2+</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>diff -Nur --exclude=.git 
linux-2.6.29-samsung/arch/arm/common/vic.c </FONT></DIV>
<DIV><FONT size=2>pre-linux-2.6.29-samsung/arch/arm/common/vic.c<BR>--- 
linux-2.6.29-samsung/arch/arm/common/vic.c&nbsp; 2009-11-25 13:36:04.672713977 
+0900<BR>+++ 
pre-linux-2.6.29-samsung/arch/arm/common/vic.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
2009-11-25 13:23:24.666816598 +0900<BR>@@ -27,8 +27,21 @@</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;static void vic_mask_irq(unsigned int 
irq)<BR>&nbsp;{<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int 
prio_value;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int 
sw_prio;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void __iomem *base = 
get_irq_chip_data(irq);<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq &amp;= 
31;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(irq &gt; 
63){<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
irq &amp;= 
31;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
prio_value = readl(base + 
VIC_PL192_DAISY_PRIO);<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
sw_prio = readl(base + 
VIC_PL192_SWPRIO_MASK);<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
writel(sw_prio &gt;&gt; (16-prio_value), base + 
VIC_PL192_SWPRIO_MASK);<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(irq &lt;= 
63){<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
irq &amp;= 
31;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
prio_value = readl(base + VIC_VECT_CNTL0 + (0x4 * 
irq));<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
sw_prio = readl(base + 
VIC_PL192_SWPRIO_MASK);<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
writel(sw_prio &gt;&gt; (16-prio_value), base + 
VIC_PL192_SWPRIO_MASK);<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(1 &lt;&lt; irq, base + 
VIC_INT_ENABLE_CLEAR);<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>@@ -36,6 +49,7 
@@<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void __iomem *base = 
get_irq_chip_data(irq);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irq &amp;= 
31;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(0xFFFF, base + 
VIC_PL192_SWPRIO_MASK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writel(1 
&lt;&lt; irq, base + VIC_INT_ENABLE);<BR>&nbsp;}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>diff -Nur --exclude=.git 
linux-2.6.29-samsung/arch/arm/include/asm/hardware/vic.h</FONT></DIV>
<DIV><FONT 
size=2>&nbsp;pre-linux-2.6.29-samsung/arch/arm/include/asm/hardware/vic.h<BR>--- 
linux-2.6.29-samsung/arch/arm/include/asm/hardware/vic.h&nbsp;&nbsp;&nbsp; 
2009-11-25 13:36:04.703713854 +0900<BR>+++ 
pre-linux-2.6.29-samsung/arch/arm/include/asm/hardware/vic.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
2009-11-25 13:23:24.666816598 +0900<BR>@@ -31,6 +31,8 @@<BR>&nbsp;#define 
VIC_PROTECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x20<BR>&nbsp;#define 
VIC_PL190_VECT_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x30&nbsp;&nbsp;&nbsp; /* PL190 only */<BR>&nbsp;#define 
VIC_PL190_DEF_VECT_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x34&nbsp;&nbsp;&nbsp; /* PL190 only */<BR>+#define 
VIC_PL192_SWPRIO_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x24<BR>+#define 
VIC_PL192_DAISY_PRIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x28</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;#define 
VIC_VECT_ADDR0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x100&nbsp;&nbsp; /* 0 to 15 (0..31 PL192) */<BR>&nbsp;#define 
VIC_VECT_CNTL0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
0x200&nbsp;&nbsp; /* 0 to 15 (0..31 PL192) */<BR>~</FONT></DIV></BODY></HTML>