Commit c60fb074 authored by Yijing Wang's avatar Yijing Wang Committed by Tony Luck

PCI/IA64: SN: remove sn_pci_window_fixup()

Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus()
functions use pci_host_bridge_window in pci_host_bridge to translate
bus side to/from cpu side addresses. Pci_window in pci_controller
under IA64 is no used again, so it's no need to use sn_pci_window_fixup()
to setup pci_window again, remove it.
Signed-off-by: default avatarYijing Wang <wangyijing@huawei.com>
Cc: John Keller <jpk@sgi.com>
Cc: Jay Lan <jlan@engr.sgi.com>
Cc: Jack Steiner <steiner@sgi.com>
Cc: Mark Maule <maule@sgi.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: linux-ia64@vger.kernel.org
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 7d132055
...@@ -148,48 +148,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller, ...@@ -148,48 +148,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller,
controller->windows = 2; controller->windows = 2;
} }
/*
* sn_pci_window_fixup() - Create a pci_window for each device resource.
* It will setup pci_windows for use by
* pcibios_bus_to_resource(), pcibios_resource_to_bus(),
* etc.
*/
static void
sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
s64 * pci_addrs)
{
struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
unsigned int i;
unsigned int idx;
unsigned int new_count;
struct pci_window *new_window;
if (count == 0)
return;
idx = controller->windows;
new_count = controller->windows + count;
new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
BUG_ON(new_window == NULL);
if (controller->window) {
memcpy(new_window, controller->window,
sizeof(struct pci_window) * controller->windows);
kfree(controller->window);
}
/* Setup a pci_window for each device resource. */
for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
if (pci_addrs[i] == -1)
continue;
new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
new_window[idx].resource = dev->resource[i];
idx++;
}
controller->windows = new_count;
controller->window = new_window;
}
/* /*
* sn_io_slot_fixup() - We are not running with an ACPI capable PROM, * sn_io_slot_fixup() - We are not running with an ACPI capable PROM,
* and need to convert the pci_dev->resource * and need to convert the pci_dev->resource
...@@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count, ...@@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
void void
sn_io_slot_fixup(struct pci_dev *dev) sn_io_slot_fixup(struct pci_dev *dev)
{ {
unsigned int count = 0;
int idx; int idx;
s64 pci_addrs[PCI_ROM_RESOURCE + 1];
unsigned long addr, end, size, start; unsigned long addr, end, size, start;
struct pcidev_info *pcidev_info; struct pcidev_info *pcidev_info;
struct sn_irq_info *sn_irq_info; struct sn_irq_info *sn_irq_info;
...@@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev) ...@@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
if (!pcidev_info->pdi_pio_mapped_addr[idx]) { if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
pci_addrs[idx] = -1;
continue; continue;
} }
...@@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev) ...@@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev)
end = dev->resource[idx].end; end = dev->resource[idx].end;
size = end - start; size = end - start;
if (size == 0) { if (size == 0) {
pci_addrs[idx] = -1;
continue; continue;
} }
pci_addrs[idx] = start;
count++;
addr = pcidev_info->pdi_pio_mapped_addr[idx]; addr = pcidev_info->pdi_pio_mapped_addr[idx];
addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
dev->resource[idx].start = addr; dev->resource[idx].start = addr;
...@@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev) ...@@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
IORESOURCE_ROM_BIOS_COPY; IORESOURCE_ROM_BIOS_COPY;
} }
} }
/* Create a pci_window in the pci_controller struct for
* each device resource.
*/
if (count > 0)
sn_pci_window_fixup(dev, count, pci_addrs);
sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
} }
......
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