[PATCH] VIA VT8235 PCI quirk
Like many other southbridges from different manufacturers, VIA VT8235 chip has two non-standard BARs for power management and SMBus registers (see the datasheet at http://www.via.com.tw). This new quirk routine fixes boot problem with 2.6.13-rc2/rc6 kernels on Targa Visionary 811 Athlon64 laptop, as reported by Mikael Pettersson <mikpe@csd.uu.se>. Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
db6778db7e
commit
6d85f29bb5
|
@ -373,6 +373,25 @@ static void __devinit quirk_vt82c686_acpi(struct pci_dev *dev)
|
|||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi );
|
||||
|
||||
/*
|
||||
* VIA VT8235 ISA Bridge: Two IO regions pointed to by words at
|
||||
* 0x88 (128 bytes of power management registers)
|
||||
* 0xd0 (16 bytes of SMB registers)
|
||||
*/
|
||||
static void __devinit quirk_vt8235_acpi(struct pci_dev *dev)
|
||||
{
|
||||
u16 pm, smb;
|
||||
|
||||
pci_read_config_word(dev, 0x88, &pm);
|
||||
pm &= PCI_BASE_ADDRESS_IO_MASK;
|
||||
quirk_io_region(dev, pm, 128, PCI_BRIDGE_RESOURCES);
|
||||
|
||||
pci_read_config_word(dev, 0xd0, &smb);
|
||||
smb &= PCI_BASE_ADDRESS_IO_MASK;
|
||||
quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 1);
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_vt8235_acpi);
|
||||
|
||||
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
|
||||
|
|
Loading…
Reference in New Issue