===== drivers/video/aty/aty128fb.c 1.52 vs edited ===== --- 1.52/drivers/video/aty/aty128fb.c 2004-11-12 11:40:39 -08:00 +++ edited/drivers/video/aty/aty128fb.c 2004-12-13 15:13:55 -08:00 @@ -791,6 +791,7 @@ static void __init aty128_unmap_ROM(struct pci_dev *dev, void __iomem * rom) { struct resource *r = &dev->resource[PCI_ROM_RESOURCE]; + u32 val; iounmap(rom); @@ -801,8 +802,9 @@ r->end -= r->start; r->start = 0; } - /* This will disable and set address to unassigned */ - pci_write_config_dword(dev, dev->rom_base_reg, 0); + /* This will disable it again */ + pci_read_config_dword(dev, dev->rom_base_reg, &val); + pci_write_config_dword(dev, dev->rom_base_reg, val & ~PCI_ROM_ADDRESS_ENABLE); } @@ -830,8 +832,10 @@ /* enable if needed */ if (!(r->flags & PCI_ROM_ADDRESS_ENABLE)) { + u32 val; + pci_read_config_dword(dev, dev->rom_base_reg, &val); pci_write_config_dword(dev, dev->rom_base_reg, - r->start | PCI_ROM_ADDRESS_ENABLE); + val | PCI_ROM_ADDRESS_ENABLE); r->flags |= PCI_ROM_ADDRESS_ENABLE; } ===== drivers/video/aty/radeon_base.c 1.35 vs edited ===== --- 1.35/drivers/video/aty/radeon_base.c 2004-11-11 00:39:04 -08:00 +++ edited/drivers/video/aty/radeon_base.c 2004-12-13 15:11:56 -08:00 @@ -265,6 +265,7 @@ { // leave it disabled and unassigned struct resource *r = &dev->resource[PCI_ROM_RESOURCE]; + u32 val; if (!rinfo->bios_seg) return; @@ -277,8 +278,9 @@ r->end -= r->start; r->start = 0; } - /* This will disable and set address to unassigned */ - pci_write_config_dword(dev, dev->rom_base_reg, 0); + /* This will disable it again */ + pci_read_config_dword(dev, dev->rom_base_reg, &val); + pci_write_config_dword(dev, dev->rom_base_reg, val & ~PCI_ROM_ADDRESS_ENABLE); } static int __devinit radeon_map_ROM(struct radeonfb_info *rinfo, struct pci_dev *dev) @@ -310,8 +312,10 @@ /* enable if needed */ if (!(r->flags & PCI_ROM_ADDRESS_ENABLE)) { + u32 val; + pci_read_config_dword(dev, dev->rom_base_reg, &val); pci_write_config_dword(dev, dev->rom_base_reg, - r->start | PCI_ROM_ADDRESS_ENABLE); + val | PCI_ROM_ADDRESS_ENABLE); r->flags |= PCI_ROM_ADDRESS_ENABLE; }