···120120static void do_powersaver(union msr_longhaul *longhaul,121121 unsigned int clock_ratio_index)122122{123123- int version;124124- unsigned long flags;125123 struct pci_dev *dev;124124+ unsigned long flags;125125+ unsigned int tmp_mask;126126+ int version;126127 int i;127128 u16 pci_cmd;128129 u16 cmd_state[64];···164163 }165164 } while (dev != NULL);166165166166+ tmp_mask=inb(0x21); /* works on C3. save mask. */167167+ outb(0xFE,0x21); /* TMR0 only */168168+ outb(0xFF,0x80); /* delay */169169+167170 local_irq_enable();168171169172 __hlt();···175170 __hlt();176171177172 local_irq_disable();173173+174174+ outb(tmp_mask,0x21); /* restore mask */178175179176 /* restore pci bus master state for all devices */180177 dev = NULL;