[CPUFREQ] Longhaul - Proper register access
In previous commit I used u32 for u16 register.
This code will work only when ACPI block address is set.
For now it is only for VT8235 and VT8237.
Signed-off-by: Rafal Bilski <rafalbilski@interia.pl>
Signed-off-by: Dave Jones <davej@redhat.com>
diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c
index 2841735..8eca59d 100644
--- a/arch/i386/kernel/cpu/cpufreq/longhaul.c
+++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c
@@ -247,7 +247,7 @@
struct cpufreq_freqs freqs;
unsigned long flags;
unsigned int pic1_mask, pic2_mask;
- u32 bm_status = 0;
+ u16 bm_status = 0;
u32 bm_timeout = 1000;
unsigned int dir = 0;
@@ -281,14 +281,14 @@
outb(0xFE,0x21); /* TMR0 only */
/* Wait while PCI bus is busy. */
- if (longhaul_flags & USE_NORTHBRIDGE
- || ((pr != NULL) && pr->flags.bm_control)) {
- bm_status = inl(acpi_regs_addr);
+ if (acpi_regs_addr && (longhaul_flags & USE_NORTHBRIDGE
+ || ((pr != NULL) && pr->flags.bm_control))) {
+ bm_status = inw(acpi_regs_addr);
bm_status &= 1 << 4;
while (bm_status && bm_timeout) {
- outl(1 << 4, acpi_regs_addr);
+ outw(1 << 4, acpi_regs_addr);
bm_timeout--;
- bm_status = inl(acpi_regs_addr);
+ bm_status = inw(acpi_regs_addr);
bm_status &= 1 << 4;
}
}