diff options
author | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-01-31 23:25:06 +0000 |
---|---|---|
committer | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-01-31 23:25:06 +0000 |
commit | d19079626415fecedf4dd0d2e6c7b1af82200f06 (patch) | |
tree | 8413ec19d1bee243d194d8b2d43604ae057110cb /arch/mips64/sgi-ip27/ip27-pci.c | |
parent | 417d3d31c5fa48225eee6470b39564b6ddc9ed08 (diff) |
Update the IOC3 pci write hack to encompass all writes to the IOC3.
Diffstat (limited to 'arch/mips64/sgi-ip27/ip27-pci.c')
-rw-r--r-- | arch/mips64/sgi-ip27/ip27-pci.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-pci.c b/arch/mips64/sgi-ip27/ip27-pci.c index 4413946a7..d27db557f 100644 --- a/arch/mips64/sgi-ip27/ip27-pci.c +++ b/arch/mips64/sgi-ip27/ip27-pci.c @@ -57,8 +57,6 @@ pci_conf0_read_config_dword(struct pci_dev *dev, int where, u32 *value) CF0_READ_PCI_CFG(dev,where,value,0,0xffffffff); } -static int reallydo = 0; - #define CF0_WRITE_PCI_CFG(dev,where,value,bm,mask) \ do { \ bridge_t *bridge = (bridge_t *) 0x9200000008000000; \ @@ -70,13 +68,17 @@ do { \ if (dev->bus->number) \ return PCIBIOS_DEVICE_NOT_FOUND; \ \ + if (dev->vendor == PCI_VENDOR_ID_SGI \ + && dev->device == PCI_DEVICE_ID_SGI_IOC3) \ + return PCIBIOS_SUCCESSFUL; \ + \ __bit = (((where) & (bm)) << 3); \ addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2]; \ if (get_dbe(cf, addr)) \ return PCIBIOS_DEVICE_NOT_FOUND; \ cf &= (~mask); \ cf |= (value); \ - if (reallydo) put_dbe(cf, addr); \ + put_dbe(cf, addr); \ return PCIBIOS_SUCCESSFUL; \ } while (0) @@ -149,11 +151,6 @@ pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) void __init pcibios_update_irq(struct pci_dev *dev, int irq) { - /* IOC3 is fucked ... */ - if (dev->vendor == PCI_VENDOR_ID_SGI - && dev->device == PCI_DEVICE_ID_SGI_IOC3) - return; - pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); } @@ -164,12 +161,6 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, unsigned long where, size; u32 reg; - /* IOC3 is fucked ... */ - if (dev->vendor == PCI_VENDOR_ID_SGI - && dev->device == PCI_DEVICE_ID_SGI_IOC3 - && resource > 0) - return; - where = PCI_BASE_ADDRESS_0 + (resource * 4); size = res->end - res->start; pci_read_config_dword(dev, where, ®); @@ -191,7 +182,6 @@ pcibios_fixup_bus(struct pci_bus *b) * stop working if we program the controllers as not having * PCI_COMMAND_MEMORY, so we have to fudge the mem_flags. */ - reallydo = 1; for (dev = b->devices; dev; dev = dev->sibling) { if (PCI_FUNC(dev->devfn) == 0) { if ((PCI_SLOT(dev->devfn) == 0) || @@ -206,7 +196,6 @@ pcibios_fixup_bus(struct pci_bus *b) } } } - reallydo = 0; } char * __init |