[CPUFREQ] Longhaul - Fix up powersaver assumptions.
authorRafa³ Bilski <rafalbilski@interia.pl>
Sun, 24 Dec 2006 13:04:23 +0000 (14:04 +0100)
committerDave Jones <davej@redhat.com>
Fri, 29 Dec 2006 20:56:44 +0000 (15:56 -0500)
commit264166e604a7e14c278e31cadd1afb06a7d51a11
tree335ec9254f885883482a407de8fb2ae2211300db
parent1cfe2014263a879691d0262935a2649c97a02559
[CPUFREQ] Longhaul - Fix up powersaver assumptions.

ACPI PM2 register was fallback for "Longhaul ver. 1" CPU's.
My assumption that this register isn't present at
"PowerSaver" motherboards is so far true, but current code
will not work correctly in other case. There are three possible
supports: ACPI C3, PM2 and northbridge. That was my assumption
that ACPI C3 and northbridge is for PS and northbridge and PM2
is for V1. In current code we can only check if it is ACPI
support or not by port22_en. So remove port22_en and add
longhaul_flags. If USE_ACPI_C3 and USE_NORTHBRIDGE are both
clear then it means ACPI PM2 support. Also change order of
support probe from ACPI C3, PM2, northbridge to ACPI C3,
northbridge, ACPI PM2. Paranoid protection against port 0x22
cast as ACPI PM2 register. Bit 1 clear in such case - lockup
on AGP DMA. And obvious (now) fixup for do_powersaver. Use
cx->address only for ACPI C3 ("PowerSaver" processor using
PM2 support).

Signed-off-by: Rafa¿ Bilski <rafalbilski@interia.pl>
Signed-off-by: Dave Jones <davej@redhat.com>
arch/i386/kernel/cpu/cpufreq/longhaul.c