Commit c9a80ca7 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

add back NCR53c810 PCI quirk code from davej that was lost in the merge

parent 669f537e
...@@ -14,7 +14,7 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) ...@@ -14,7 +14,7 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d)
int pxb, reg; int pxb, reg;
u8 busno, suba, subb; u8 busno, suba, subb;
printk("PCI: Searching for i450NX host bridges on %s\n", d->slot_name); printk(KERN_WARNING "PCI: Searching for i450NX host bridges on %s\n", d->slot_name);
reg = 0xd0; reg = 0xd0;
for(pxb=0; pxb<2; pxb++) { for(pxb=0; pxb<2; pxb++) {
pci_read_config_byte(d, reg++, &busno); pci_read_config_byte(d, reg++, &busno);
...@@ -37,7 +37,7 @@ static void __devinit pci_fixup_i450gx(struct pci_dev *d) ...@@ -37,7 +37,7 @@ static void __devinit pci_fixup_i450gx(struct pci_dev *d)
*/ */
u8 busno; u8 busno;
pci_read_config_byte(d, 0x4a, &busno); pci_read_config_byte(d, 0x4a, &busno);
printk("PCI: i440KX/GX host bridge %s: secondary bus %02x\n", d->slot_name, busno); printk(KERN_WARNING "PCI: i440KX/GX host bridge %s: secondary bus %02x\n", d->slot_name, busno);
pci_scan_bus(busno, pci_root_ops, NULL); pci_scan_bus(busno, pci_root_ops, NULL);
pcibios_last_bus = -1; pcibios_last_bus = -1;
} }
...@@ -50,11 +50,23 @@ static void __devinit pci_fixup_umc_ide(struct pci_dev *d) ...@@ -50,11 +50,23 @@ static void __devinit pci_fixup_umc_ide(struct pci_dev *d)
*/ */
int i; int i;
printk("PCI: Fixing base address flags for device %s\n", d->slot_name); printk(KERN_WARNING "PCI: Fixing base address flags for device %s\n", d->slot_name);
for(i=0; i<4; i++) for(i=0; i<4; i++)
d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO; d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO;
} }
static void __devinit pci_fixup_ncr53c810(struct pci_dev *d)
{
/*
* NCR 53C810 returns class code 0 (at least on some systems).
* Fix class to be PCI_CLASS_STORAGE_SCSI
*/
if (!d->class) {
printk(KERN_WARNING "PCI: fixing NCR 53C810 class code for %s\n", d->slot_name);
d->class = PCI_CLASS_STORAGE_SCSI << 8;
}
}
static void __devinit pci_fixup_ide_bases(struct pci_dev *d) static void __devinit pci_fixup_ide_bases(struct pci_dev *d)
{ {
int i; int i;
...@@ -126,7 +138,7 @@ static void __init pci_fixup_via_northbridge_bug(struct pci_dev *d) ...@@ -126,7 +138,7 @@ static void __init pci_fixup_via_northbridge_bug(struct pci_dev *d)
pci_read_config_byte(d, where, &v); pci_read_config_byte(d, where, &v);
if (v & 0xe0) { if (v & 0xe0) {
printk("Disabling broken memory write queue: [%02x] %02x->%02x\n", printk(KERN_WARNING "Disabling broken memory write queue: [%02x] %02x->%02x\n",
where, v, v & 0x1f); where, v, v & 0x1f);
v &= 0x1f; /* clear bits 5, 6, 7 */ v &= 0x1f; /* clear bits 5, 6, 7 */
pci_write_config_byte(d, where, v); pci_write_config_byte(d, where, v);
...@@ -146,5 +158,6 @@ struct pci_fixup pcibios_fixups[] = { ...@@ -146,5 +158,6 @@ struct pci_fixup pcibios_fixups[] = {
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8622, pci_fixup_via_northbridge_bug }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8622, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, pci_fixup_via_northbridge_bug }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8367_0, pci_fixup_via_northbridge_bug }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8367_0, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, pci_fixup_ncr53c810 },
{ 0 } { 0 }
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment