diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2008-10-15 11:50:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 18:06:54 -0400 |
commit | 9bd8f9c638c51313328d664a2f7a5e413cfd9044 (patch) | |
tree | ef26a00bcc5ebea843a5e0ae4afeb4518960d39d /arch/frv/mb93090-mb00/pci-frv.c | |
parent | 1eee21abaf54338b379b33d85b28b495292c2211 (diff) |
frv: use generic pci_enable_resources()
Use the generic pci_enable_resources() instead of the arch-specific code.
Unlike this arch-specific code, the generic version:
- checks PCI_NUM_RESOURCES (11), not 6, resources
- skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
- skips ROM resources unless IORESOURCE_ROM_ENABLE is set
- checks for resource collisions with "!r->parent"
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/frv/mb93090-mb00/pci-frv.c')
-rw-r--r-- | arch/frv/mb93090-mb00/pci-frv.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/arch/frv/mb93090-mb00/pci-frv.c b/arch/frv/mb93090-mb00/pci-frv.c index edae117fcc2b..43d67534c712 100644 --- a/arch/frv/mb93090-mb00/pci-frv.c +++ b/arch/frv/mb93090-mb00/pci-frv.c | |||
@@ -201,38 +201,6 @@ void __init pcibios_resource_survey(void) | |||
201 | pcibios_assign_resources(); | 201 | pcibios_assign_resources(); |
202 | } | 202 | } |
203 | 203 | ||
204 | int pcibios_enable_resources(struct pci_dev *dev, int mask) | ||
205 | { | ||
206 | u16 cmd, old_cmd; | ||
207 | int idx; | ||
208 | struct resource *r; | ||
209 | |||
210 | pci_read_config_word(dev, PCI_COMMAND, &cmd); | ||
211 | old_cmd = cmd; | ||
212 | for(idx=0; idx<6; idx++) { | ||
213 | /* Only set up the requested stuff */ | ||
214 | if (!(mask & (1<<idx))) | ||
215 | continue; | ||
216 | |||
217 | r = &dev->resource[idx]; | ||
218 | if (!r->start && r->end) { | ||
219 | printk(KERN_ERR "PCI: Device %s not available because of resource collisions\n", pci_name(dev)); | ||
220 | return -EINVAL; | ||
221 | } | ||
222 | if (r->flags & IORESOURCE_IO) | ||
223 | cmd |= PCI_COMMAND_IO; | ||
224 | if (r->flags & IORESOURCE_MEM) | ||
225 | cmd |= PCI_COMMAND_MEMORY; | ||
226 | } | ||
227 | if (dev->resource[PCI_ROM_RESOURCE].start) | ||
228 | cmd |= PCI_COMMAND_MEMORY; | ||
229 | if (cmd != old_cmd) { | ||
230 | printk("PCI: Enabling device %s (%04x -> %04x)\n", pci_name(dev), old_cmd, cmd); | ||
231 | pci_write_config_word(dev, PCI_COMMAND, cmd); | ||
232 | } | ||
233 | return 0; | ||
234 | } | ||
235 | |||
236 | /* | 204 | /* |
237 | * If we set up a device for bus mastering, we need to check the latency | 205 | * If we set up a device for bus mastering, we need to check the latency |
238 | * timer as certain crappy BIOSes forget to set it properly. | 206 | * timer as certain crappy BIOSes forget to set it properly. |