summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/ata/ata-all.c2
-rw-r--r--sys/dev/ata/ata-card.c14
-rw-r--r--sys/dev/ata/ata-disk.c6
3 files changed, 19 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index e66a4ac..05984d5 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -611,7 +611,9 @@ ata_boot_attach(void)
free(ata_delayed_attach, M_TEMP);
ata_delayed_attach = NULL;
}
+#ifdef DEV_ATADISK
ata_raid_attach();
+#endif
}
static void
diff --git a/sys/dev/ata/ata-card.c b/sys/dev/ata/ata-card.c
index d473ef8..ef1c338 100644
--- a/sys/dev/ata/ata-card.c
+++ b/sys/dev/ata/ata-card.c
@@ -58,11 +58,21 @@ ata_pccard_match(device_t dev)
return (0);
/* other devices might need to be matched here */
-
return(ENXIO);
}
static int
+ata_pccard_intrnoop(struct ata_channel *ch)
+{
+ return 1;
+}
+
+static void
+ata_pccard_locknoop(struct ata_channel *ch, int type)
+{
+}
+
+static int
ata_pccard_probe(device_t dev)
{
struct ata_channel *ch = device_get_softc(dev);
@@ -106,6 +116,8 @@ ata_pccard_probe(device_t dev)
ch->unit = 0;
ch->flags |= (ATA_USE_16BIT | ATA_NO_SLAVE);
+ ch->intr_func = ata_pccard_intrnoop;
+ ch->lock_func = ata_pccard_locknoop;
return ata_probe(dev);
}
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c
index 05e4ad9..9dc33db 100644
--- a/sys/dev/ata/ata-disk.c
+++ b/sys/dev/ata/ata-disk.c
@@ -219,8 +219,10 @@ ad_attach(struct ata_device *atadev)
/* if this disk belongs to an ATA RAID dont print the probe */
if (ata_raiddisk_attach(adp))
adp->flags |= AD_F_RAID_SUBDISK;
- else
- ad_print(adp);
+ else {
+ if (atadev->driver)
+ ad_print(adp);
+ }
}
void
OpenPOWER on IntegriCloud