summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2002-11-25 02:09:42 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-11-25 02:09:42 -0800
commitb431de158236846dfdd2130c136ee0cffd640289 (patch)
tree686e5c1852de36f7339c68e38c5828bb9801b8c1 /include
parent94db30f261952ea7db488a1a401bd0cb8de7bd0f (diff)
[PATCH] add sis apic workaround support
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/io_apic.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/asm-i386/io_apic.h b/include/asm-i386/io_apic.h
index e26ea03e7347..642e47f3c929 100644
--- a/include/asm-i386/io_apic.h
+++ b/include/asm-i386/io_apic.h
@@ -120,9 +120,13 @@ static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned i
/*
* Re-write a value: to be used for read-modify-write
* cycles where the read already set up the index register.
+ *
+ * Older SiS APIC requires we rewrite the index regiser
*/
-static inline void io_apic_modify(unsigned int apic, unsigned int value)
+static inline void io_apic_modify(unsigned int apic, unsigned int reg, unsigned int value)
{
+ if(apic_sis_bug)
+ *IO_APIC_BASE(apic) = reg;
*(IO_APIC_BASE(apic)+4) = value;
}