aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1999-01-17 05:46:25 +0000
committerBruce Evans <bde@FreeBSD.org>1999-01-17 05:46:25 +0000
commit555421cf40f64773b7a644e7fa2f2276ba3d93cb (patch)
treee96439a47cf4b8572a6c52fa449119e79e10a99e /sys
parent0abd5201528f0cceabc5b42ce649cc1ccc049d59 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/i386/isa/wd.c8
-rw-r--r--sys/i386/isa/wdreg.h4
-rw-r--r--sys/pci/ide_pci.c11
3 files changed, 13 insertions, 10 deletions
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c
index fc16d7c19bf3..488615575464 100644
--- a/sys/i386/isa/wd.c
+++ b/sys/i386/isa/wd.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wd.c 7.2 (Berkeley) 5/9/91
- * $Id: wd.c,v 1.184 1999/01/12 01:04:38 eivind Exp $
+ * $Id: wd.c,v 1.185 1999/01/16 01:06:23 bde Exp $
*/
/* TODO:
@@ -314,7 +314,8 @@ wdprobe(struct isa_device *dvp)
du->dk_port = dvp->id_iobase;
if (wddma[interface].wdd_candma != NULL) {
du->dk_dmacookie =
- wddma[interface].wdd_candma(dvp->id_iobase, du->dk_ctrlr);
+ wddma[interface].wdd_candma(dvp->id_iobase, du->dk_ctrlr,
+ du->dk_unit);
du->dk_altport =
wddma[interface].wdd_altiobase(du->dk_dmacookie);
}
@@ -1878,7 +1879,8 @@ failed:
* check drive's DMA capability
*/
if (wddma[du->dk_interface].wdd_candma) {
- du->dk_dmacookie = wddma[du->dk_interface].wdd_candma(du->dk_port, du->dk_ctrlr);
+ du->dk_dmacookie = wddma[du->dk_interface].wdd_candma(
+ du->dk_port, du->dk_ctrlr, du->dk_unit);
/* does user want this? */
if ((du->cfg_flags & WDOPT_DMA) &&
/* have we got a DMA controller? */
diff --git a/sys/i386/isa/wdreg.h b/sys/i386/isa/wdreg.h
index 0c06aa92a163..88a0fecb2b27 100644
--- a/sys/i386/isa/wdreg.h
+++ b/sys/i386/isa/wdreg.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wdreg.h 7.1 (Berkeley) 5/9/91
- * $Id: wdreg.h,v 1.23 1998/10/22 05:58:41 bde Exp $
+ * $Id: wdreg.h,v 1.24 1999/01/12 01:04:38 eivind Exp $
*/
/*
@@ -262,7 +262,7 @@ int wdformat(struct buf *bp);
*/
struct wddma {
void *(*wdd_candma) /* returns a cookie if PCI */
- __P((int ctlr, int drive));
+ __P((int iobase_wd, int ctlr, int unit));
int (*wdd_dmaverify) /* verify that request is DMA-able */
__P((void *cookie, char *vaddr, u_long len, int direction));
int (*wdd_dmaprep) /* prepare DMA hardware */
diff --git a/sys/pci/ide_pci.c b/sys/pci/ide_pci.c
index 099aed4628ec..39c53a562b32 100644
--- a/sys/pci/ide_pci.c
+++ b/sys/pci/ide_pci.c
@@ -26,7 +26,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ide_pci.c,v 1.26 1999/01/16 19:48:01 bde Exp $
+ * $Id: ide_pci.c,v 1.27 1999/01/17 05:18:54 bde Exp $
*/
#include "pci.h"
@@ -159,7 +159,7 @@ mkcookie(int iobase_wd,
static void ide_pci_attach(pcici_t tag, int unit);
-static void *ide_pci_candma(int, int);
+static void *ide_pci_candma(int, int, int);
static int ide_pci_dmainit(void *,
struct wdparams *,
int (*)(int, void *),
@@ -1449,16 +1449,17 @@ static struct pci_device ide_pci_device = {
DATA_SET(pcidevice_set, ide_pci_device);
/*
- * Return a cookie if we can do DMA on the specified (iobase_wd, ctlr).
+ * Return a cookie if we may be able to do DMA on the specified
+ * (iobase_wd, ctlr, unit).
*/
static void *
-ide_pci_candma(int iobase_wd, int ctlr)
+ide_pci_candma(int iobase_wd, int ctlr, int unit)
{
struct ide_pci_cookie *cp;
cp = softc.cookies.lh_first;
while(cp) {
- if (cp->ctlr == ctlr &&
+ if (cp->ctlr == ctlr && cp->unit == unit &&
((iobase_wd == 0) || (cp->iobase_wd == iobase_wd)))
break;
cp = cp->le.le_next;