aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorYijing Wang <wangyijing@huawei.com>2013-06-06 03:34:46 -0400
committerTony Luck <tony.luck@intel.com>2013-06-18 12:41:49 -0400
commitc60fb074c0baef6b0ca259dafe2371a24f3f8c1f (patch)
treec3cd8216f76186c5f152517b3664130e933be1d5 /arch/ia64
parent7d132055814ef17a6c7b69f342244c410a5e000f (diff)
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>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/sn/kernel/io_init.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index 238e2c511d94..06a172cb37f4 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -149,48 +149,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller,
149} 149}
150 150
151/* 151/*
152 * sn_pci_window_fixup() - Create a pci_window for each device resource.
153 * It will setup pci_windows for use by
154 * pcibios_bus_to_resource(), pcibios_resource_to_bus(),
155 * etc.
156 */
157static void
158sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
159 s64 * pci_addrs)
160{
161 struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
162 unsigned int i;
163 unsigned int idx;
164 unsigned int new_count;
165 struct pci_window *new_window;
166
167 if (count == 0)
168 return;
169 idx = controller->windows;
170 new_count = controller->windows + count;
171 new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
172 BUG_ON(new_window == NULL);
173 if (controller->window) {
174 memcpy(new_window, controller->window,
175 sizeof(struct pci_window) * controller->windows);
176 kfree(controller->window);
177 }
178
179 /* Setup a pci_window for each device resource. */
180 for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
181 if (pci_addrs[i] == -1)
182 continue;
183
184 new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
185 new_window[idx].resource = dev->resource[i];
186 idx++;
187 }
188
189 controller->windows = new_count;
190 controller->window = new_window;
191}
192
193/*
194 * sn_io_slot_fixup() - We are not running with an ACPI capable PROM, 152 * sn_io_slot_fixup() - We are not running with an ACPI capable PROM,
195 * and need to convert the pci_dev->resource 153 * and need to convert the pci_dev->resource
196 * 'start' and 'end' addresses to mapped addresses, 154 * 'start' and 'end' addresses to mapped addresses,
@@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
199void 157void
200sn_io_slot_fixup(struct pci_dev *dev) 158sn_io_slot_fixup(struct pci_dev *dev)
201{ 159{
202 unsigned int count = 0;
203 int idx; 160 int idx;
204 s64 pci_addrs[PCI_ROM_RESOURCE + 1];
205 unsigned long addr, end, size, start; 161 unsigned long addr, end, size, start;
206 struct pcidev_info *pcidev_info; 162 struct pcidev_info *pcidev_info;
207 struct sn_irq_info *sn_irq_info; 163 struct sn_irq_info *sn_irq_info;
@@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
229 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { 185 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
230 186
231 if (!pcidev_info->pdi_pio_mapped_addr[idx]) { 187 if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
232 pci_addrs[idx] = -1;
233 continue; 188 continue;
234 } 189 }
235 190
@@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev)
237 end = dev->resource[idx].end; 192 end = dev->resource[idx].end;
238 size = end - start; 193 size = end - start;
239 if (size == 0) { 194 if (size == 0) {
240 pci_addrs[idx] = -1;
241 continue; 195 continue;
242 } 196 }
243 pci_addrs[idx] = start;
244 count++;
245 addr = pcidev_info->pdi_pio_mapped_addr[idx]; 197 addr = pcidev_info->pdi_pio_mapped_addr[idx];
246 addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; 198 addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
247 dev->resource[idx].start = addr; 199 dev->resource[idx].start = addr;
@@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
276 IORESOURCE_ROM_BIOS_COPY; 228 IORESOURCE_ROM_BIOS_COPY;
277 } 229 }
278 } 230 }
279 /* Create a pci_window in the pci_controller struct for
280 * each device resource.
281 */
282 if (count > 0)
283 sn_pci_window_fixup(dev, count, pci_addrs);
284 231
285 sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); 232 sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
286} 233}