--- ef01d3d6a5a95dc4312e618f4d61036bf974247a +++ ebdb85cf2686fa36702cd4d50b657f22de85b3bd @@ -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 */