|
@@ -143,15 +143,10 @@ static void __init ati_bugs(int num, int slot, int func)
|
|
|
|
|
|
static u32 __init ati_sbx00_rev(int num, int slot, int func)
|
|
|
{
|
|
|
- u32 old, d;
|
|
|
+ u32 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;
|
|
|
}
|
|
@@ -160,13 +155,16 @@ static void __init ati_bugs_contd(int num, int slot, int func)
|
|
|
{
|
|
|
u32 d, rev;
|
|
|
|
|
|
- if (acpi_use_timer_override)
|
|
|
- return;
|
|
|
-
|
|
|
rev = ati_sbx00_rev(num, slot, func);
|
|
|
+ if (rev >= 0x40)
|
|
|
+ acpi_fix_pin2_polarity = 1;
|
|
|
+
|
|
|
if (rev > 0x13)
|
|
|
return;
|
|
|
|
|
|
+ if (acpi_use_timer_override)
|
|
|
+ return;
|
|
|
+
|
|
|
/* check for IRQ0 interrupt swap */
|
|
|
d = read_pci_config(num, slot, func, 0x64);
|
|
|
if (!(d & (1<<14)))
|