diff options
Diffstat (limited to 'drivers/ide/setup-pci.c')
| -rw-r--r-- | drivers/ide/setup-pci.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index abcfb1739d4d..65fc08b6b6d0 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
| @@ -6,19 +6,15 @@ | |||
| 6 | * May be copied or modified under the terms of the GNU General Public License | 6 | * May be copied or modified under the terms of the GNU General Public License |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/module.h> | ||
| 10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
| 12 | #include <linux/pci.h> | 11 | #include <linux/pci.h> |
| 13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 14 | #include <linux/timer.h> | ||
| 15 | #include <linux/mm.h> | ||
| 16 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
| 17 | #include <linux/ide.h> | 14 | #include <linux/ide.h> |
| 18 | #include <linux/dma-mapping.h> | 15 | #include <linux/dma-mapping.h> |
| 19 | 16 | ||
| 20 | #include <asm/io.h> | 17 | #include <asm/io.h> |
| 21 | #include <asm/irq.h> | ||
| 22 | 18 | ||
| 23 | /** | 19 | /** |
| 24 | * ide_setup_pci_baseregs - place a PCI IDE controller native | 20 | * ide_setup_pci_baseregs - place a PCI IDE controller native |
| @@ -319,25 +315,22 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, | |||
| 319 | 315 | ||
| 320 | ctl = pci_resource_start(dev, 2*port+1); | 316 | ctl = pci_resource_start(dev, 2*port+1); |
| 321 | base = pci_resource_start(dev, 2*port); | 317 | base = pci_resource_start(dev, 2*port); |
| 322 | if ((ctl && !base) || (base && !ctl)) { | 318 | } else { |
| 323 | printk(KERN_ERR "%s: inconsistent baseregs (BIOS) " | ||
| 324 | "for port %d, skipping\n", d->name, port); | ||
| 325 | return NULL; | ||
| 326 | } | ||
| 327 | } | ||
| 328 | if (!ctl) { | ||
| 329 | /* Use default values */ | 319 | /* Use default values */ |
| 330 | ctl = port ? 0x374 : 0x3f4; | 320 | ctl = port ? 0x374 : 0x3f4; |
| 331 | base = port ? 0x170 : 0x1f0; | 321 | base = port ? 0x170 : 0x1f0; |
| 332 | } | 322 | } |
| 333 | 323 | ||
| 334 | hwif = ide_find_port_slot(d); | 324 | if (!base || !ctl) { |
| 335 | if (hwif == NULL) { | 325 | printk(KERN_ERR "%s: bad PCI BARs for port %d, skipping\n", |
| 336 | printk(KERN_ERR "%s: too many IDE interfaces, no room in " | 326 | d->name, port); |
| 337 | "table\n", d->name); | ||
| 338 | return NULL; | 327 | return NULL; |
| 339 | } | 328 | } |
| 340 | 329 | ||
| 330 | hwif = ide_find_port_slot(d); | ||
| 331 | if (hwif == NULL) | ||
| 332 | return NULL; | ||
| 333 | |||
| 341 | memset(&hw, 0, sizeof(hw)); | 334 | memset(&hw, 0, sizeof(hw)); |
| 342 | hw.irq = irq; | 335 | hw.irq = irq; |
| 343 | hw.dev = &dev->dev; | 336 | hw.dev = &dev->dev; |
| @@ -346,8 +339,6 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, | |||
| 346 | 339 | ||
| 347 | ide_init_port_hw(hwif, &hw); | 340 | ide_init_port_hw(hwif, &hw); |
| 348 | 341 | ||
| 349 | hwif->dev = &dev->dev; | ||
| 350 | |||
| 351 | return hwif; | 342 | return hwif; |
| 352 | } | 343 | } |
| 353 | 344 | ||
