From: Andrew Morton Signed-off-by: Andrew Morton --- arch/ia64/sn/kernel/io_acpi_init.c | 33 --------------------------- arch/ia64/sn/kernel/io_common.c | 5 +--- arch/ia64/sn/kernel/io_init.c | 3 -- drivers/pci/rom.c | 9 ++----- include/linux/ioport.h | 1 5 files changed, 5 insertions(+), 46 deletions(-) diff -puN arch/ia64/sn/kernel/io_acpi_init.c~revert-gregkh-pci-altix-rom-shadowing arch/ia64/sn/kernel/io_acpi_init.c --- a/arch/ia64/sn/kernel/io_acpi_init.c~revert-gregkh-pci-altix-rom-shadowing +++ a/arch/ia64/sn/kernel/io_acpi_init.c @@ -169,39 +169,6 @@ sn_acpi_bus_fixup(struct pci_bus *bus) } } -/* - * sn_acpi_slot_fixup - Perform any SN specific slot fixup. - * At present there does not appear to be - * any generic way to handle a ROM image - * that has been shadowed by the PROM, so - * we pass a pointer to it within the - * pcidev_info structure. - */ - -void -sn_acpi_slot_fixup(struct pci_dev *dev, struct pcidev_info *pcidev_info) -{ - void __iomem *addr; - size_t size; - - if (pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE]) { - /* - * A valid ROM image exists and has been shadowed by the - * PROM. Setup the pci_dev ROM resource to point to - * the shadowed copy. - */ - size = dev->resource[PCI_ROM_RESOURCE].end - - dev->resource[PCI_ROM_RESOURCE].start; - addr = - ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], - size); - dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; - dev->resource[PCI_ROM_RESOURCE].end = - (unsigned long) addr + size; - dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_BIOS_COPY; - } -} - static struct acpi_driver acpi_sn_hubdev_driver = { .name = "SGI HUBDEV Driver", .ids = "SGIHUB,SGITIO", diff -puN arch/ia64/sn/kernel/io_common.c~revert-gregkh-pci-altix-rom-shadowing arch/ia64/sn/kernel/io_common.c --- a/arch/ia64/sn/kernel/io_common.c~revert-gregkh-pci-altix-rom-shadowing +++ a/arch/ia64/sn/kernel/io_common.c @@ -286,10 +286,9 @@ void sn_pci_fixup_slot(struct pci_dev *d list_add_tail(&pcidev_info->pdi_list, &(SN_PLATFORM_DATA(dev->bus)->pcidev_info)); - if (SN_ACPI_BASE_SUPPORT()) - sn_acpi_slot_fixup(dev, pcidev_info); - else + if (!SN_ACPI_BASE_SUPPORT()) sn_more_slot_fixup(dev, pcidev_info); + /* * Using the PROMs values for the PCI host bus, get the Linux * PCI host_pci_dev struct and set up host bus linkages diff -puN arch/ia64/sn/kernel/io_init.c~revert-gregkh-pci-altix-rom-shadowing arch/ia64/sn/kernel/io_init.c --- a/arch/ia64/sn/kernel/io_init.c~revert-gregkh-pci-altix-rom-shadowing +++ a/arch/ia64/sn/kernel/io_init.c @@ -210,9 +210,6 @@ sn_more_slot_fixup(struct pci_dev *dev, dev->resource[idx].parent = &ioport_resource; else dev->resource[idx].parent = &iomem_resource; - /* If ROM, mark as shadowed in PROM */ - if (idx == PCI_ROM_RESOURCE) - dev->resource[idx].flags |= IORESOURCE_ROM_BIOS_COPY; } /* Create a pci_window in the pci_controller struct for * each device resource. diff -puN drivers/pci/rom.c~revert-gregkh-pci-altix-rom-shadowing drivers/pci/rom.c --- a/drivers/pci/rom.c~revert-gregkh-pci-altix-rom-shadowing +++ a/drivers/pci/rom.c @@ -80,8 +80,7 @@ void __iomem *pci_map_rom(struct pci_dev start = (loff_t)0xC0000; *size = 0x20000; /* cover C000:0 through E000:0 */ } else { - if (res->flags & - (IORESOURCE_ROM_COPY | IORESOURCE_ROM_BIOS_COPY)) { + if (res->flags & IORESOURCE_ROM_COPY) { *size = pci_resource_len(pdev, PCI_ROM_RESOURCE); return (void __iomem *)(unsigned long) pci_resource_start(pdev, PCI_ROM_RESOURCE); @@ -165,8 +164,7 @@ void __iomem *pci_map_rom_copy(struct pc if (!rom) return NULL; - if (res->flags & (IORESOURCE_ROM_COPY | IORESOURCE_ROM_SHADOW | - IORESOURCE_ROM_BIOS_COPY)) + if (res->flags & (IORESOURCE_ROM_COPY | IORESOURCE_ROM_SHADOW)) return rom; res->start = (unsigned long)kmalloc(*size, GFP_KERNEL); @@ -192,7 +190,7 @@ void pci_unmap_rom(struct pci_dev *pdev, { struct resource *res = &pdev->resource[PCI_ROM_RESOURCE]; - if (res->flags & (IORESOURCE_ROM_COPY | IORESOURCE_ROM_BIOS_COPY)) + if (res->flags & IORESOURCE_ROM_COPY) return; iounmap(rom); @@ -216,7 +214,6 @@ void pci_remove_rom(struct pci_dev *pdev sysfs_remove_bin_file(&pdev->dev.kobj, pdev->rom_attr); if (!(res->flags & (IORESOURCE_ROM_ENABLE | IORESOURCE_ROM_SHADOW | - IORESOURCE_ROM_BIOS_COPY | IORESOURCE_ROM_COPY))) pci_disable_rom(pdev); } diff -puN include/linux/ioport.h~revert-gregkh-pci-altix-rom-shadowing include/linux/ioport.h --- a/include/linux/ioport.h~revert-gregkh-pci-altix-rom-shadowing +++ a/include/linux/ioport.h @@ -89,7 +89,6 @@ struct resource_list { #define IORESOURCE_ROM_ENABLE (1<<0) /* ROM is enabled, same as PCI_ROM_ADDRESS_ENABLE */ #define IORESOURCE_ROM_SHADOW (1<<1) /* ROM is copy at C000:0 */ #define IORESOURCE_ROM_COPY (1<<2) /* ROM is alloc'd copy, resource field overlaid */ -#define IORESOURCE_ROM_BIOS_COPY (1<<3) /* ROM is BIOS copy, resource field overlaid */ /* PC/ISA/whatever - the normal PC address spaces: IO and memory */ extern struct resource ioport_resource; _