diff options
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/drivers/pci/pci.c | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c index 1e9598d2bbf4..e4c988d46ad5 100644 --- a/arch/sh/drivers/pci/pci.c +++ b/arch/sh/drivers/pci/pci.c | |||
@@ -233,40 +233,7 @@ void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, | |||
233 | 233 | ||
234 | int pcibios_enable_device(struct pci_dev *dev, int mask) | 234 | int pcibios_enable_device(struct pci_dev *dev, int mask) |
235 | { | 235 | { |
236 | u16 cmd, old_cmd; | 236 | return pci_enable_resources(dev, mask); |
237 | int idx; | ||
238 | struct resource *r; | ||
239 | |||
240 | pci_read_config_word(dev, PCI_COMMAND, &cmd); | ||
241 | old_cmd = cmd; | ||
242 | for (idx=0; idx < PCI_NUM_RESOURCES; idx++) { | ||
243 | /* Only set up the requested stuff */ | ||
244 | if (!(mask & (1<<idx))) | ||
245 | continue; | ||
246 | |||
247 | r = &dev->resource[idx]; | ||
248 | if (!(r->flags & (IORESOURCE_IO | IORESOURCE_MEM))) | ||
249 | continue; | ||
250 | if ((idx == PCI_ROM_RESOURCE) && | ||
251 | (!(r->flags & IORESOURCE_ROM_ENABLE))) | ||
252 | continue; | ||
253 | if (!r->start && r->end) { | ||
254 | printk(KERN_ERR "PCI: Device %s not available " | ||
255 | "because of resource collisions\n", | ||
256 | pci_name(dev)); | ||
257 | return -EINVAL; | ||
258 | } | ||
259 | if (r->flags & IORESOURCE_IO) | ||
260 | cmd |= PCI_COMMAND_IO; | ||
261 | if (r->flags & IORESOURCE_MEM) | ||
262 | cmd |= PCI_COMMAND_MEMORY; | ||
263 | } | ||
264 | if (cmd != old_cmd) { | ||
265 | printk("PCI: Enabling device %s (%04x -> %04x)\n", | ||
266 | pci_name(dev), old_cmd, cmd); | ||
267 | pci_write_config_word(dev, PCI_COMMAND, cmd); | ||
268 | } | ||
269 | return 0; | ||
270 | } | 237 | } |
271 | 238 | ||
272 | /* | 239 | /* |