<!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> </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> arch/arm/common/vic.c
| 15++-</FONT></DIV>
<DIV><FONT size=2>
arch/arm/include/asm/hardware/vic.h |
2+</FONT></DIV>
<DIV><FONT size=2></FONT> </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 2009-11-25 13:36:04.672713977
+0900<BR>+++
pre-linux-2.6.29-samsung/arch/arm/common/vic.c
2009-11-25 13:23:24.666816598 +0900<BR>@@ -27,8 +27,21 @@</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=2> static void vic_mask_irq(unsigned int
irq)<BR> {<BR>+ unsigned int
prio_value;<BR>+ unsigned int
sw_prio;<BR> void __iomem *base =
get_irq_chip_data(irq);<BR>- irq &=
31;<BR>+ if(irq >
63){<BR>+
irq &=
31;<BR>+
prio_value = readl(base +
VIC_PL192_DAISY_PRIO);<BR>+
sw_prio = readl(base +
VIC_PL192_SWPRIO_MASK);<BR>+
writel(sw_prio >> (16-prio_value), base +
VIC_PL192_SWPRIO_MASK);<BR>+
}<BR>+ else if(irq <=
63){<BR>+
irq &=
31;<BR>+
prio_value = readl(base + VIC_VECT_CNTL0 + (0x4 *
irq));<BR>+
sw_prio = readl(base +
VIC_PL192_SWPRIO_MASK);<BR>+
writel(sw_prio >> (16-prio_value), base +
VIC_PL192_SWPRIO_MASK);<BR>+
}<BR> writel(1 << irq, base +
VIC_INT_ENABLE_CLEAR);<BR> }</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=2>@@ -36,6 +49,7
@@<BR> {<BR> void __iomem *base =
get_irq_chip_data(irq);<BR> irq &=
31;<BR>+ writel(0xFFFF, base +
VIC_PL192_SWPRIO_MASK);<BR> writel(1
<< irq, base + VIC_INT_ENABLE);<BR> }</FONT></DIV>
<DIV> </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> 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
2009-11-25 13:36:04.703713854 +0900<BR>+++
pre-linux-2.6.29-samsung/arch/arm/include/asm/hardware/vic.h
2009-11-25 13:23:24.666816598 +0900<BR>@@ -31,6 +31,8 @@<BR> #define
VIC_PROTECT
0x20<BR> #define
VIC_PL190_VECT_ADDR
0x30 /* PL190 only */<BR> #define
VIC_PL190_DEF_VECT_ADDR
0x34 /* PL190 only */<BR>+#define
VIC_PL192_SWPRIO_MASK
0x24<BR>+#define
VIC_PL192_DAISY_PRIO
0x28</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=2> #define
VIC_VECT_ADDR0
0x100 /* 0 to 15 (0..31 PL192) */<BR> #define
VIC_VECT_CNTL0
0x200 /* 0 to 15 (0..31 PL192) */<BR>~</FONT></DIV></BODY></HTML>