From 5e2a63b25101c6aaea4b77c014bbad44b04c0b35 Mon Sep 17 00:00:00 2001 From: Alexander Yurchenko Date: Sun, 17 Oct 2004 17:50:49 +0000 Subject: Add a callback drv_probe() to allow underlying ata controller driver to probe for drives in its own way. It's a no-op for now but will be needed for native sata support. --- sys/dev/ic/wdc.c | 14 +++++++++----- sys/dev/ic/wdcvar.h | 5 ++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/sys/dev/ic/wdc.c b/sys/dev/ic/wdc.c index 7aa44ad900b..e17770c97ac 100644 --- a/sys/dev/ic/wdc.c +++ b/sys/dev/ic/wdc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wdc.c,v 1.85 2004/10/17 08:58:56 grange Exp $ */ +/* $OpenBSD: wdc.c,v 1.86 2004/10/17 17:50:48 grange Exp $ */ /* $NetBSD: wdc.c,v 1.68 1999/06/23 19:00:17 bouyer Exp $ */ @@ -792,12 +792,16 @@ wdcattach(chp) if (!chp->_vtbl) chp->_vtbl = &wdc_default_vtbl; - if (wdcprobe(chp) == 0) { - /* If no drives, abort attach here. */ + if (chp->wdc->drv_probe != NULL) { + chp->wdc->drv_probe(chp); + } else { + if (wdcprobe(chp) == 0) { + /* If no drives, abort attach here. */ #ifndef __OpenBSD__ - wdc_delref(chp); + wdc_delref(chp); #endif - return; + return; + } } /* ATAPI drives need settling time. Give them 250ms */ diff --git a/sys/dev/ic/wdcvar.h b/sys/dev/ic/wdcvar.h index 4af1b1d0ecc..d87e15a16a7 100644 --- a/sys/dev/ic/wdcvar.h +++ b/sys/dev/ic/wdcvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: wdcvar.h,v 1.36 2004/10/17 08:58:56 grange Exp $ */ +/* $OpenBSD: wdcvar.h,v 1.37 2004/10/17 17:50:48 grange Exp $ */ /* $NetBSD: wdcvar.h,v 1.17 1999/04/11 20:50:29 bouyer Exp $ */ /*- @@ -203,6 +203,9 @@ struct wdc_softc { /* Per controller state */ /* if WDC_CAPABILITY_IRQACK set in 'cap' */ void (*irqack)(struct channel_softc *); + + /* Driver callback to probe for drives */ + void (*drv_probe)(struct channel_softc *); }; /* -- cgit v1.2.3