aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/setup-pci.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 11:39:24 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 11:39:24 -0400
commit188da98800893691e47eea9335a234378e32aceb (patch)
tree57dbf491d23676e011b4946ec1867a6d55a02eef /drivers/ide/setup-pci.c
parent07fe944e87d79f8d7e1b090913fe9f2ace78f41d (diff)
parent273b8385e5817a4765f82257004c5ec661a6a5b2 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (58 commits) ide: remove ide_init_default_irq() macro ide: move default IDE ports setup to ide_generic host driver ide: remove obsoleted "idex=noprobe" kernel parameter (take 2) ide: remove needless hwif->irq check from ide_hwif_configure() ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers ide: limit legacy VLB host drivers to alpha, x86 and mips cmd640: init hwif->{io_ports,irq} explicitly cmd640: cleanup setup_device_ptrs() ide: add ide-4drives host driver (take 3) ide: remove ppc ifdef from init_ide_data() ide: remove ide_default_io_ctl() macro ide: remove CONFIG_IDE_ARCH_OBSOLETE_INIT ide: add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS (take 2) ppc/pmac: remove no longer needed IDE quirk ppc: don't include <linux/ide.h> ppc: remove ppc_ide_md ppc/pplus: remove ppc_ide_md.ide_init_hwif hook ppc/sandpoint: remove ppc_ide_md hooks ppc/lopec: remove ppc_ide_md hooks ppc/mpc8xx: remove ppc_ide_md hooks ...
Diffstat (limited to 'drivers/ide/setup-pci.c')
-rw-r--r--drivers/ide/setup-pci.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index 634e3f6a9608..f7ede0e42881 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -41,17 +41,6 @@ static ide_hwif_t *ide_match_hwif(unsigned long io_base, u8 bootable, const char
41 ide_hwif_t *hwif; 41 ide_hwif_t *hwif;
42 42
43 /* 43 /*
44 * Look for a hwif with matching io_base specified using
45 * parameters to ide_setup().
46 */
47 for (h = 0; h < MAX_HWIFS; ++h) {
48 hwif = &ide_hwifs[h];
49 if (hwif->io_ports[IDE_DATA_OFFSET] == io_base) {
50 if (hwif->chipset == ide_forced)
51 return hwif; /* a perfect match */
52 }
53 }
54 /*
55 * Look for a hwif with matching io_base default value. 44 * Look for a hwif with matching io_base default value.
56 * If chipset is "ide_unknown", then claim that hwif slot. 45 * If chipset is "ide_unknown", then claim that hwif slot.
57 * Otherwise, some other chipset has already claimed it.. :( 46 * Otherwise, some other chipset has already claimed it.. :(
@@ -356,7 +345,6 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev,
356 unsigned long ctl = 0, base = 0; 345 unsigned long ctl = 0, base = 0;
357 ide_hwif_t *hwif; 346 ide_hwif_t *hwif;
358 u8 bootable = (d->host_flags & IDE_HFLAG_BOOTABLE) ? 1 : 0; 347 u8 bootable = (d->host_flags & IDE_HFLAG_BOOTABLE) ? 1 : 0;
359 u8 oldnoprobe = 0;
360 struct hw_regs_s hw; 348 struct hw_regs_s hw;
361 349
362 if ((d->host_flags & IDE_HFLAG_ISA_PORTS) == 0) { 350 if ((d->host_flags & IDE_HFLAG_ISA_PORTS) == 0) {
@@ -382,19 +370,13 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev,
382 return NULL; /* no room in ide_hwifs[] */ 370 return NULL; /* no room in ide_hwifs[] */
383 371
384 memset(&hw, 0, sizeof(hw)); 372 memset(&hw, 0, sizeof(hw));
385 hw.irq = hwif->irq ? hwif->irq : irq; 373 hw.irq = irq;
386 hw.dev = &dev->dev; 374 hw.dev = &dev->dev;
387 hw.chipset = d->chipset ? d->chipset : ide_pci; 375 hw.chipset = d->chipset ? d->chipset : ide_pci;
388 ide_std_init_ports(&hw, base, ctl | 2); 376 ide_std_init_ports(&hw, base, ctl | 2);
389 377
390 if (hwif->io_ports[IDE_DATA_OFFSET] == base &&
391 hwif->io_ports[IDE_CONTROL_OFFSET] == (ctl | 2))
392 oldnoprobe = hwif->noprobe;
393
394 ide_init_port_hw(hwif, &hw); 378 ide_init_port_hw(hwif, &hw);
395 379
396 hwif->noprobe = oldnoprobe;
397
398 hwif->dev = &dev->dev; 380 hwif->dev = &dev->dev;
399 hwif->cds = d; 381 hwif->cds = d;
400 382