Loading arch/ia64/sn/kernel/io_acpi_init.c +5 −5 Original line number Diff line number Diff line Loading @@ -429,6 +429,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev) void __iomem *addr; struct pcidev_info *pcidev_info = NULL; struct sn_irq_info *sn_irq_info = NULL; struct resource *res; size_t image_size, size; if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { Loading @@ -446,14 +447,13 @@ sn_acpi_slot_fixup(struct pci_dev *dev) addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], size); image_size = pci_get_rom_size(dev, addr, size); dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; dev->resource[PCI_ROM_RESOURCE].end = (unsigned long) addr + image_size - 1; dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_BIOS_COPY; res = &dev->resource[PCI_ROM_RESOURCE]; res->start = (unsigned long) addr; res->end = (unsigned long) addr + image_size - 1; res->flags |= IORESOURCE_ROM_BIOS_COPY; } sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); } EXPORT_SYMBOL(sn_acpi_slot_fixup); Loading arch/ia64/sn/kernel/io_init.c +17 −22 Original line number Diff line number Diff line Loading @@ -150,7 +150,8 @@ void sn_io_slot_fixup(struct pci_dev *dev) { int idx; unsigned long addr, end, size, start; struct resource *res; unsigned long addr, size; struct pcidev_info *pcidev_info; struct sn_irq_info *sn_irq_info; int status; Loading @@ -175,33 +176,31 @@ sn_io_slot_fixup(struct pci_dev *dev) /* Copy over PIO Mapped Addresses */ for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { if (!pcidev_info->pdi_pio_mapped_addr[idx]) { if (!pcidev_info->pdi_pio_mapped_addr[idx]) continue; } start = dev->resource[idx].start; end = dev->resource[idx].end; size = end - start; if (size == 0) { res = &dev->resource[idx]; size = res->end - res->start; if (size == 0) continue; } addr = pcidev_info->pdi_pio_mapped_addr[idx]; addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; dev->resource[idx].start = addr; dev->resource[idx].end = addr + size; res->start = addr; res->end = addr + size; /* * if it's already in the device structure, remove it before * inserting */ if (dev->resource[idx].parent && dev->resource[idx].parent->child) release_resource(&dev->resource[idx]); if (res->parent && res->parent->child) release_resource(res); if (dev->resource[idx].flags & IORESOURCE_IO) insert_resource(&ioport_resource, &dev->resource[idx]); if (res->flags & IORESOURCE_IO) insert_resource(&ioport_resource, res); else insert_resource(&iomem_resource, &dev->resource[idx]); insert_resource(&iomem_resource, res); /* * If ROM, set the actual ROM image size, and mark as * shadowed in PROM. Loading @@ -213,17 +212,13 @@ sn_io_slot_fixup(struct pci_dev *dev) rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), size + 1); image_size = pci_get_rom_size(dev, rom, size + 1); dev->resource[PCI_ROM_RESOURCE].end = dev->resource[PCI_ROM_RESOURCE].start + image_size - 1; dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_BIOS_COPY; res->end = res->start + image_size - 1; res->flags |= IORESOURCE_ROM_BIOS_COPY; } } sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); } EXPORT_SYMBOL(sn_io_slot_fixup); /* Loading Loading
arch/ia64/sn/kernel/io_acpi_init.c +5 −5 Original line number Diff line number Diff line Loading @@ -429,6 +429,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev) void __iomem *addr; struct pcidev_info *pcidev_info = NULL; struct sn_irq_info *sn_irq_info = NULL; struct resource *res; size_t image_size, size; if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { Loading @@ -446,14 +447,13 @@ sn_acpi_slot_fixup(struct pci_dev *dev) addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], size); image_size = pci_get_rom_size(dev, addr, size); dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; dev->resource[PCI_ROM_RESOURCE].end = (unsigned long) addr + image_size - 1; dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_BIOS_COPY; res = &dev->resource[PCI_ROM_RESOURCE]; res->start = (unsigned long) addr; res->end = (unsigned long) addr + image_size - 1; res->flags |= IORESOURCE_ROM_BIOS_COPY; } sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); } EXPORT_SYMBOL(sn_acpi_slot_fixup); Loading
arch/ia64/sn/kernel/io_init.c +17 −22 Original line number Diff line number Diff line Loading @@ -150,7 +150,8 @@ void sn_io_slot_fixup(struct pci_dev *dev) { int idx; unsigned long addr, end, size, start; struct resource *res; unsigned long addr, size; struct pcidev_info *pcidev_info; struct sn_irq_info *sn_irq_info; int status; Loading @@ -175,33 +176,31 @@ sn_io_slot_fixup(struct pci_dev *dev) /* Copy over PIO Mapped Addresses */ for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { if (!pcidev_info->pdi_pio_mapped_addr[idx]) { if (!pcidev_info->pdi_pio_mapped_addr[idx]) continue; } start = dev->resource[idx].start; end = dev->resource[idx].end; size = end - start; if (size == 0) { res = &dev->resource[idx]; size = res->end - res->start; if (size == 0) continue; } addr = pcidev_info->pdi_pio_mapped_addr[idx]; addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; dev->resource[idx].start = addr; dev->resource[idx].end = addr + size; res->start = addr; res->end = addr + size; /* * if it's already in the device structure, remove it before * inserting */ if (dev->resource[idx].parent && dev->resource[idx].parent->child) release_resource(&dev->resource[idx]); if (res->parent && res->parent->child) release_resource(res); if (dev->resource[idx].flags & IORESOURCE_IO) insert_resource(&ioport_resource, &dev->resource[idx]); if (res->flags & IORESOURCE_IO) insert_resource(&ioport_resource, res); else insert_resource(&iomem_resource, &dev->resource[idx]); insert_resource(&iomem_resource, res); /* * If ROM, set the actual ROM image size, and mark as * shadowed in PROM. Loading @@ -213,17 +212,13 @@ sn_io_slot_fixup(struct pci_dev *dev) rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), size + 1); image_size = pci_get_rom_size(dev, rom, size + 1); dev->resource[PCI_ROM_RESOURCE].end = dev->resource[PCI_ROM_RESOURCE].start + image_size - 1; dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_BIOS_COPY; res->end = res->start + image_size - 1; res->flags |= IORESOURCE_ROM_BIOS_COPY; } } sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); } EXPORT_SYMBOL(sn_io_slot_fixup); /* Loading