Patch 2.6.32.28 to 2.6.32.32
/arch/x86/kernel/early-quirks.c
blob:ef01d3d6a5a95dc4312e618f4d61036bf974247a -> blob:ebdb85cf2686fa36702cd4d50b657f22de85b3bd
--- arch/x86/kernel/early-quirks.c
+++ arch/x86/kernel/early-quirks.c
@@ -145,10 +145,15 @@ static void __init ati_bugs(int num, int
static u32 __init ati_sbx00_rev(int num, int slot, int func)
{
- u32 d;
+ u32 old, d;
+ d = read_pci_config(num, slot, func, 0x70);
+ old = d;
+ d &= ~(1<<8);
+ write_pci_config(num, slot, func, 0x70, d);
d = read_pci_config(num, slot, func, 0x8);
d &= 0xff;
+ write_pci_config(num, slot, func, 0x70, old);
return d;
}
@@ -157,14 +162,11 @@ static void __init ati_bugs_contd(int nu
{
u32 d, rev;
- rev = ati_sbx00_rev(num, slot, func);
- if (rev >= 0x40)
- acpi_fix_pin2_polarity = 1;
-
- if (rev > 0x13)
+ if (acpi_use_timer_override)
return;
- if (acpi_use_timer_override)
+ rev = ati_sbx00_rev(num, slot, func);
+ if (rev > 0x13)
return;
/* check for IRQ0 interrupt swap */