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: Yijing 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: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
7d13205581
commit
c60fb074c0
@ -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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user