diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/quirks.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c index 26ee48a33dc4..04ee1e2e4c02 100644 --- a/arch/x86/kernel/quirks.c +++ b/arch/x86/kernel/quirks.c | |||
@@ -354,18 +354,22 @@ static void ati_force_hpet_resume(void) | |||
354 | 354 | ||
355 | static u32 ati_ixp4x0_rev(struct pci_dev *dev) | 355 | static u32 ati_ixp4x0_rev(struct pci_dev *dev) |
356 | { | 356 | { |
357 | u32 d; | 357 | int err = 0; |
358 | u8 b; | 358 | u32 d = 0; |
359 | u8 b = 0; | ||
359 | 360 | ||
360 | pci_read_config_byte(dev, 0xac, &b); | 361 | err = pci_read_config_byte(dev, 0xac, &b); |
361 | b &= ~(1<<5); | 362 | b &= ~(1<<5); |
362 | pci_write_config_byte(dev, 0xac, b); | 363 | err |= pci_write_config_byte(dev, 0xac, b); |
363 | pci_read_config_dword(dev, 0x70, &d); | 364 | err |= pci_read_config_dword(dev, 0x70, &d); |
364 | d |= 1<<8; | 365 | d |= 1<<8; |
365 | pci_write_config_dword(dev, 0x70, d); | 366 | err |= pci_write_config_dword(dev, 0x70, d); |
366 | pci_read_config_dword(dev, 0x8, &d); | 367 | err |= pci_read_config_dword(dev, 0x8, &d); |
367 | d &= 0xff; | 368 | d &= 0xff; |
368 | dev_printk(KERN_DEBUG, &dev->dev, "SB4X0 revision 0x%x\n", d); | 369 | dev_printk(KERN_DEBUG, &dev->dev, "SB4X0 revision 0x%x\n", d); |
370 | |||
371 | WARN_ON_ONCE(err); | ||
372 | |||
369 | return d; | 373 | return d; |
370 | } | 374 | } |
371 | 375 | ||