]> git.itanic.dy.fi Git - linux-stable/commit
x86: Replace NSC/Cyrix specific chipset access macros by inlined functions.
authorJuergen Beisert <juergen@kreuzholzen.de>
Sun, 6 Jul 2008 15:17:23 +0000 (18:17 +0300)
committerAdrian Bunk <bunk@kernel.org>
Mon, 14 Jul 2008 18:08:34 +0000 (21:08 +0300)
commit69731ebbb3d2283c2c33a2bf262d785e2362b876
treef9751db28a4245f781fc611fbc063ebff8a9704d
parent8b828b3c8e88d9c462f5389654c84aae3e42392e
x86: Replace NSC/Cyrix specific chipset access macros by inlined functions.

Due to index register access ordering problems, when using macros a line
like this fails (and does nothing):

    setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);

With inlined functions this line will work as expected.

Note about a side effect: Seems on Geode GX1 based systems the
"suspend on halt power saving feature" was never enabled due to this
wrong macro expansion. With inlined functions it will be enabled, but
this will stop the TSC when the CPU runs into a HLT instruction.
Kernel output something like this:
    Clocksource tsc unstable (delta = -472746897 ns)

This is the 3rd version of this patch.

 - Adding missed arch/i386/kernel/cpu/mtrr/state.c
    Thanks to Andres Salomon
 - Adding some big fat comments into the new header file
    Suggested by Andi Kleen

AK: fixed x86-64 compilation

Adrian Bunk:
Added workaround for x86_64 compilation.

Signed-off-by: Juergen Beisert <juergen@kreuzholzen.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
arch/i386/kernel/cpu/cyrix.c
arch/i386/kernel/cpu/mtrr/cyrix.c
arch/i386/kernel/cpu/mtrr/state.c
include/asm-i386/processor-cyrix.h [new file with mode: 0644]
include/asm-i386/processor.h
include/asm-x86_64/processor-cyrix.h [new file with mode: 0644]
include/asm-x86_64/processor.h