ChangeSet 1.757.30.32, 2002/12/02 15:37:10-02:00, alan @ lxorguk.ukuu.org.uk [PATCH] PATCH: reserve some I/O ports on the ATI radeon IGP Otherwise reading these causes an MCE # This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.757.30.31 -> 1.757.30.32 # drivers/pci/quirks.c 1.17 -> 1.18 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/12/02 alan@lxorguk.ukuu.org.uk 1.757.30.32 # [PATCH] PATCH: reserve some I/O ports on the ATI radeon IGP # # Otherwise reading these causes an MCE # -------------------------------------------- # diff -Nru a/drivers/pci/quirks.c b/drivers/pci/quirks.c --- a/drivers/pci/quirks.c Tue Dec 10 10:33:09 2002 +++ b/drivers/pci/quirks.c Tue Dec 10 10:33:09 2002 @@ -227,6 +227,19 @@ } /* + * ATI Northbridge setups MCE the processor if you even + * read somewhere between 0x3b0->0x3bb or read 0x3d3 + */ + +static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev) +{ + printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n"); + /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */ + request_region(0x3b0, 0x0C, "RadeonIGP"); + request_region(0x3d3, 0x01, "RadeonIGP"); +} + +/* * Let's make the southbridge information explicit instead * of having to worry about people probing the ACPI areas, * for example.. (Yes, it happens, and if you read the wrong @@ -565,6 +578,7 @@ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7410, quirk_amd_ioapic }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering }, + { PCI_FIXUP_FINAL, PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_IGP, quirk_ati_exploding_mce }, /* * i82380FB mobile docking controller: its PCI-to-PCI bridge * is subtractive decoding (transparent), and does indicate this :wq