aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/arm/icside.c1
-rw-r--r--drivers/ide/ide-probe.c3
-rw-r--r--drivers/ide/ide.c4
-rw-r--r--drivers/ide/mips/swarm.c1
-rw-r--r--drivers/ide/ppc/pmac.c15
-rw-r--r--include/linux/ide.h1
6 files changed, 11 insertions, 14 deletions
diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c
index b219818a400a..51d4efb4d794 100644
--- a/drivers/ide/arm/icside.c
+++ b/drivers/ide/arm/icside.c
@@ -424,7 +424,6 @@ icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *e
424 } 424 }
425 hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset; 425 hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset;
426 hwif->irq = ec->irq; 426 hwif->irq = ec->irq;
427 hwif->noprobe = 0;
428 hwif->chipset = ide_acorn; 427 hwif->chipset = ide_acorn;
429 hwif->gendev.parent = &ec->dev; 428 hwif->gendev.parent = &ec->dev;
430 hwif->dev = &ec->dev; 429 hwif->dev = &ec->dev;
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index dfe516fdd079..c3ecc43b894b 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -773,8 +773,7 @@ static int ide_probe_port(ide_hwif_t *hwif)
773 773
774 BUG_ON(hwif->present); 774 BUG_ON(hwif->present);
775 775
776 if (hwif->noprobe || 776 if (hwif->drives[0].noprobe && hwif->drives[1].noprobe)
777 (hwif->drives[0].noprobe && hwif->drives[1].noprobe))
778 return -EACCES; 777 return -EACCES;
779 778
780 /* 779 /*
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 91a3c8aff1e2..3be049067520 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -454,7 +454,6 @@ void ide_init_port_hw(ide_hwif_t *hwif, hw_regs_t *hw)
454{ 454{
455 memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports)); 455 memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports));
456 hwif->irq = hw->irq; 456 hwif->irq = hw->irq;
457 hwif->noprobe = 0;
458 hwif->chipset = hw->chipset; 457 hwif->chipset = hw->chipset;
459 hwif->gendev.parent = hw->dev; 458 hwif->gendev.parent = hw->dev;
460 hwif->ack_intr = hw->ack_intr; 459 hwif->ack_intr = hw->ack_intr;
@@ -1006,14 +1005,12 @@ static int __init ide_setup(char *s)
1006 goto done; 1005 goto done;
1007 case -3: /* "nowerr" */ 1006 case -3: /* "nowerr" */
1008 drive->bad_wstat = BAD_R_STAT; 1007 drive->bad_wstat = BAD_R_STAT;
1009 hwif->noprobe = 0;
1010 goto done; 1008 goto done;
1011 case -4: /* "cdrom" */ 1009 case -4: /* "cdrom" */
1012 drive->present = 1; 1010 drive->present = 1;
1013 drive->media = ide_cdrom; 1011 drive->media = ide_cdrom;
1014 /* an ATAPI device ignores DRDY */ 1012 /* an ATAPI device ignores DRDY */
1015 drive->ready_stat = 0; 1013 drive->ready_stat = 0;
1016 hwif->noprobe = 0;
1017 goto done; 1014 goto done;
1018 case -5: /* nodma */ 1015 case -5: /* nodma */
1019 drive->nodma = 1; 1016 drive->nodma = 1;
@@ -1044,7 +1041,6 @@ static int __init ide_setup(char *s)
1044 drive->sect = drive->bios_sect = vals[2]; 1041 drive->sect = drive->bios_sect = vals[2];
1045 drive->present = 1; 1042 drive->present = 1;
1046 drive->forced_geom = 1; 1043 drive->forced_geom = 1;
1047 hwif->noprobe = 0;
1048 goto done; 1044 goto done;
1049 default: 1045 default:
1050 goto bad_option; 1046 goto bad_option;
diff --git a/drivers/ide/mips/swarm.c b/drivers/ide/mips/swarm.c
index bbe8d5853348..4769ec2ff290 100644
--- a/drivers/ide/mips/swarm.c
+++ b/drivers/ide/mips/swarm.c
@@ -113,7 +113,6 @@ static int __devinit swarm_ide_probe(struct device *dev)
113 /* Prevent resource map manipulation. */ 113 /* Prevent resource map manipulation. */
114 hwif->mmio = 1; 114 hwif->mmio = 1;
115 hwif->chipset = ide_generic; 115 hwif->chipset = ide_generic;
116 hwif->noprobe = 0;
117 116
118 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) 117 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
119 hwif->io_ports[i] = 118 hwif->io_ports[i] =
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c
index 3277bf2d66a5..4e0583907413 100644
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -1049,17 +1049,22 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
1049 hwif->mmio = 1; 1049 hwif->mmio = 1;
1050 hwif->hwif_data = pmif; 1050 hwif->hwif_data = pmif;
1051 ide_init_port_hw(hwif, hw); 1051 ide_init_port_hw(hwif, hw);
1052 hwif->noprobe = pmif->mediabay;
1053 hwif->cbl = pmif->cable_80 ? ATA_CBL_PATA80 : ATA_CBL_PATA40; 1052 hwif->cbl = pmif->cable_80 ? ATA_CBL_PATA80 : ATA_CBL_PATA40;
1054 1053
1055 printk(KERN_INFO "ide%d: Found Apple %s controller, bus ID %d%s, irq %d\n", 1054 printk(KERN_INFO "ide%d: Found Apple %s controller, bus ID %d%s, irq %d\n",
1056 hwif->index, model_name[pmif->kind], pmif->aapl_bus_id, 1055 hwif->index, model_name[pmif->kind], pmif->aapl_bus_id,
1057 pmif->mediabay ? " (mediabay)" : "", hwif->irq); 1056 pmif->mediabay ? " (mediabay)" : "", hwif->irq);
1058 1057
1058 if (pmif->mediabay) {
1059#ifdef CONFIG_PMAC_MEDIABAY 1059#ifdef CONFIG_PMAC_MEDIABAY
1060 if (pmif->mediabay && check_media_bay_by_base(pmif->regbase, MB_CD) == 0) 1060 if (check_media_bay_by_base(pmif->regbase, MB_CD)) {
1061 hwif->noprobe = 0; 1061#else
1062#endif /* CONFIG_PMAC_MEDIABAY */ 1062 if (1) {
1063#endif
1064 hwif->drives[0].noprobe = 1;
1065 hwif->drives[1].noprobe = 1;
1066 }
1067 }
1063 1068
1064#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC 1069#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
1065 if (pmif->cable_80 == 0) 1070 if (pmif->cable_80 == 0)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index b594f04a67f4..a612c898baeb 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -515,7 +515,6 @@ typedef struct hwif_s {
515 unsigned long extra_base; /* extra addr for dma ports */ 515 unsigned long extra_base; /* extra addr for dma ports */
516 unsigned extra_ports; /* number of extra dma ports */ 516 unsigned extra_ports; /* number of extra dma ports */
517 517
518 unsigned noprobe : 1; /* don't probe for this interface */
519 unsigned present : 1; /* this interface exists */ 518 unsigned present : 1; /* this interface exists */
520 unsigned serialized : 1; /* serialized all channel operation */ 519 unsigned serialized : 1; /* serialized all channel operation */
521 unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */ 520 unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */