]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.25/patches.arch/x2APIC_PATCH_12_of_41_d94d93ca5cc36cd78c532def62772c98fe8ba5d7
Reenabled linux-xen and xen-image build
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.arch / x2APIC_PATCH_12_of_41_d94d93ca5cc36cd78c532def62772c98fe8ba5d7
CommitLineData
00e5a55c
BS
1From: Suresh Siddha <suresh.b.siddha@intel.com>
2Subject: x64, x2apic/intr-remap: 8259 specific mask/unmask routines
3References: fate #303948 and fate #303984
4Patch-Mainline: queued for .28
5Commit-ID: d94d93ca5cc36cd78c532def62772c98fe8ba5d7
6
7Signed-off-by: Thomas Renninger <trenn@suse.de>
8
98259 specific mask/unmask routines which be used later while enabling
10interrupt-remapping.
11
12Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
13Cc: akpm@linux-foundation.org
14Cc: arjan@linux.intel.com
15Cc: andi@firstfloor.org
16Cc: ebiederm@xmission.com
17Cc: jbarnes@virtuousgeek.org
18Cc: steiner@sgi.com
19Signed-off-by: Ingo Molnar <mingo@elte.hu>
20
21---
22 arch/x86/kernel/i8259.c | 24 ++++++++++++++++++++++++
23 include/asm-x86/i8259.h | 3 +++
24 2 files changed, 27 insertions(+)
25
26Index: linux-2.6.26/arch/x86/kernel/i8259.c
27===================================================================
28--- linux-2.6.26.orig/arch/x86/kernel/i8259.c
29+++ linux-2.6.26/arch/x86/kernel/i8259.c
30@@ -282,6 +282,30 @@ static int __init i8259A_init_sysfs(void
31
32 device_initcall(i8259A_init_sysfs);
33
34+void mask_8259A(void)
35+{
36+ unsigned long flags;
37+
38+ spin_lock_irqsave(&i8259A_lock, flags);
39+
40+ outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
41+ outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */
42+
43+ spin_unlock_irqrestore(&i8259A_lock, flags);
44+}
45+
46+void unmask_8259A(void)
47+{
48+ unsigned long flags;
49+
50+ spin_lock_irqsave(&i8259A_lock, flags);
51+
52+ outb(cached_master_mask, PIC_MASTER_IMR); /* restore master IRQ mask */
53+ outb(cached_slave_mask, PIC_SLAVE_IMR); /* restore slave IRQ mask */
54+
55+ spin_unlock_irqrestore(&i8259A_lock, flags);
56+}
57+
58 void init_8259A(int auto_eoi)
59 {
60 unsigned long flags;
61Index: linux-2.6.26/include/asm-x86/i8259.h
62===================================================================
63--- linux-2.6.26.orig/include/asm-x86/i8259.h
64+++ linux-2.6.26/include/asm-x86/i8259.h
65@@ -57,4 +57,7 @@ static inline void outb_pic(unsigned cha
66
67 extern struct irq_chip i8259A_chip;
68
69+extern void mask_8259A(void);
70+extern void unmask_8259A(void);
71+
72 #endif /* __ASM_I8259_H__ */