Module Name:    src
Committed By:   tsutsui
Date:           Mon Sep 21 08:12:47 UTC 2009

Modified Files:
        src/sys/dev/ic: aha.c ahavar.h
        src/sys/dev/isa: aha_isa.c
        src/sys/dev/isapnp: aha_isapnp.c
        src/sys/dev/mca: aha_mca.c

Log Message:
Split device_t/softc.  Tested on AHA-1542CF.


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/ic/aha.c
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ic/ahavar.h
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/isa/aha_isa.c
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/isapnp/aha_isapnp.c
cvs rdiff -u -r1.20 -r1.21 src/sys/dev/mca/aha_mca.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/aha.c
diff -u src/sys/dev/ic/aha.c:1.58 src/sys/dev/ic/aha.c:1.59
--- src/sys/dev/ic/aha.c:1.58	Sat Mar 14 15:36:17 2009
+++ src/sys/dev/ic/aha.c	Mon Sep 21 08:12:47 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: aha.c,v 1.58 2009/03/14 15:36:17 dsl Exp $	*/
+/*	$NetBSD: aha.c,v 1.59 2009/09/21 08:12:47 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aha.c,v 1.58 2009/03/14 15:36:17 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aha.c,v 1.59 2009/09/21 08:12:47 tsutsui Exp $");
 
 #include "opt_ddb.h"
 
@@ -134,7 +134,7 @@
 	u_char opcode = ibuf[0];
 
 	if (sc != NULL)
-		name = device_xname(&sc->sc_dev);
+		name = device_xname(sc->sc_dev);
 	else
 		name = "(aha probe)";
 
@@ -250,7 +250,7 @@
 	 * Fill in the scsipi_adapter.
 	 */
 	memset(adapt, 0, sizeof(*adapt));
-	adapt->adapt_dev = &sc->sc_dev;
+	adapt->adapt_dev = sc->sc_dev;
 	adapt->adapt_nchannels = 1;
 	/* adapt_openings initialized below */
 	/* adapt_max_periph initialized below */
@@ -277,7 +277,7 @@
 	/*
 	 * ask the adapter what subunits are present
 	 */
-	config_found(&sc->sc_dev, &sc->sc_channel, scsiprint);
+	config_found(sc->sc_dev, &sc->sc_channel, scsiprint);
 }
 
 static void
@@ -297,7 +297,7 @@
 		for (i = 0; i < AHA_MBX_SIZE; i++) {
 			if (wmbi->stat != AHA_MBI_FREE) {
 				printf("%s: mbi not in round-robin order\n",
-				    device_xname(&sc->sc_dev));
+				    device_xname(sc->sc_dev));
 				goto AGAIN;
 			}
 			aha_nextmbx(wmbi, wmbx, mbi);
@@ -307,7 +307,7 @@
 		}
 #ifdef AHADIAGnot
 		printf("%s: mbi interrupt with no full mailboxes\n",
-		    device_xname(&sc->sc_dev));
+		    device_xname(sc->sc_dev));
 #endif
 		return;
 	}
@@ -317,7 +317,7 @@
 		ccb = aha_ccb_phys_kv(sc, phystol(wmbi->ccb_addr));
 		if (!ccb) {
 			printf("%s: bad mbi ccb pointer; skipping\n",
-			    device_xname(&sc->sc_dev));
+			    device_xname(sc->sc_dev));
 			goto next;
 		}
 
@@ -362,7 +362,7 @@
 
 		default:
 			printf("%s: bad mbi status %02x; skipping\n",
-			    device_xname(&sc->sc_dev), wmbi->stat);
+			    device_xname(sc->sc_dev), wmbi->stat);
 			goto next;
 		}
 
@@ -395,7 +395,7 @@
 	u_char sts;
 
 #ifdef AHADEBUG
-	printf("%s: aha_intr ", device_xname(&sc->sc_dev));
+	printf("%s: aha_intr ", device_xname(sc->sc_dev));
 #endif /*AHADEBUG */
 
 	/*
@@ -464,7 +464,8 @@
 	error = bus_dmamap_create(dmat, AHA_MAXXFER, AHA_NSEG, AHA_MAXXFER,
 	    0, BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW, &ccb->dmamap_xfer);
 	if (error) {
-		aprint_error_dev(&sc->sc_dev, "unable to create ccb DMA map, error = %d\n",
+		aprint_error_dev(sc->sc_dev,
+		    "unable to create ccb DMA map, error = %d\n",
 		    error);
 		return (error);
 	}
@@ -496,7 +497,8 @@
 	for (i = 0; i < count; i++) {
 		ccb = &ccbstore[i];
 		if ((error = aha_init_ccb(sc, ccb)) != 0) {
-			aprint_error_dev(&sc->sc_dev, "unable to initialize ccb, error = %d\n",
+			aprint_error_dev(sc->sc_dev,
+			    "unable to initialize ccb, error = %d\n",
 			    error);
 			goto out;
 		}
@@ -679,13 +681,15 @@
 	 */
 #ifdef AHADIAG
 	if (ccb->flags & CCB_SENDING) {
-		printf("%s: exiting ccb still in transit!\n", device_xname(&sc->sc_dev));
+		printf("%s: exiting ccb still in transit!\n",
+		    device_xname(sc->sc_dev));
 		Debugger();
 		return;
 	}
 #endif
 	if ((ccb->flags & CCB_ALLOC) == 0) {
-		printf("%s: exiting ccb not allocated!\n", device_xname(&sc->sc_dev));
+		printf("%s: exiting ccb not allocated!\n",
+		    device_xname(sc->sc_dev));
 		Debugger();
 		return;
 	}
@@ -697,7 +701,7 @@
 				break;
 			default:	/* Other scsi protocol messes */
 				printf("%s: host_stat %x\n",
-				    device_xname(&sc->sc_dev), ccb->host_stat);
+				    device_xname(sc->sc_dev), ccb->host_stat);
 				xs->error = XS_DRIVER_STUFFUP;
 				break;
 			}
@@ -715,7 +719,7 @@
 				break;
 			default:
 				printf("%s: target_stat %x\n",
-				    device_xname(&sc->sc_dev), ccb->target_stat);
+				    device_xname(sc->sc_dev), ccb->target_stat);
 				xs->error = XS_DRIVER_STUFFUP;
 				break;
 			}
@@ -860,7 +864,8 @@
 		struct aha_extbios extbios;
 		struct aha_unlock unlock;
 
-		printf("%s: unlocking mailbox interface\n", device_xname(&sc->sc_dev));
+		printf("%s: unlocking mailbox interface\n",
+		    device_xname(sc->sc_dev));
 		extbios.cmd.opcode = AHA_EXT_BIOS;
 		aha_cmd(iot, ioh, sc,
 		    sizeof(extbios.cmd), (u_char *)&extbios.cmd,
@@ -868,7 +873,7 @@
 
 #ifdef AHADEBUG
 		printf("%s: flags=%02x, mailboxlock=%02x\n",
-		    device_xname(&sc->sc_dev),
+		    device_xname(sc->sc_dev),
 		    extbios.reply.flags, extbios.reply.mailboxlock);
 #endif /* AHADEBUG */
 
@@ -916,7 +921,7 @@
 	    sizeof(setup.reply), (u_char *)&setup.reply);
 
 	printf("%s: %s, %s\n",
-	    device_xname(&sc->sc_dev),
+	    device_xname(sc->sc_dev),
 	    setup.reply.sync_neg ? "sync" : "async",
 	    setup.reply.parity ? "parity" : "no parity");
 
@@ -925,7 +930,7 @@
 		    (!setup.reply.sync[i].offset && !setup.reply.sync[i].period))
 			continue;
 		printf("%s targ %d: sync, offset %d, period %dnsec\n",
-		    device_xname(&sc->sc_dev), i,
+		    device_xname(sc->sc_dev), i,
 		    setup.reply.sync[i].offset, setup.reply.sync[i].period * 50 + 200);
 	}
 
@@ -934,14 +939,16 @@
 	 */
 	if ((error = bus_dmamem_alloc(sc->sc_dmat, sizeof(struct aha_control),
 	    PAGE_SIZE, 0, &seg, 1, &rseg, BUS_DMA_NOWAIT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "unable to allocate control structures, "
+		aprint_error_dev(sc->sc_dev,
+		    "unable to allocate control structures, "
 		    "error = %d\n", error);
 		return (error);
 	}
 	if ((error = bus_dmamem_map(sc->sc_dmat, &seg, rseg,
 	    sizeof(struct aha_control), (void **)&sc->sc_control,
 	    BUS_DMA_NOWAIT|BUS_DMA_COHERENT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "unable to map control structures, error = %d\n", error);
+		aprint_error_dev(sc->sc_dev,
+		    "unable to map control structures, error = %d\n", error);
 		return (error);
 	}
 
@@ -952,14 +959,16 @@
 	if ((error = bus_dmamap_create(sc->sc_dmat, sizeof(struct aha_control),
 	    1, sizeof(struct aha_control), 0, BUS_DMA_NOWAIT,
 	    &sc->sc_dmamap_control)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "unable to create control DMA map, error = %d\n",
+		aprint_error_dev(sc->sc_dev,
+		    "unable to create control DMA map, error = %d\n",
 		    error);
 		return (error);
 	}
 	if ((error = bus_dmamap_load(sc->sc_dmat, sc->sc_dmamap_control,
 	    sc->sc_control, sizeof(struct aha_control), NULL,
 	    BUS_DMA_NOWAIT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "unable to load control DMA map, error = %d\n",
+		aprint_error_dev(sc->sc_dev,
+		    "unable to load control DMA map, error = %d\n",
 		    error);
 		return (error);
 	}
@@ -969,11 +978,12 @@
 	 */
 	i = aha_create_ccbs(sc, sc->sc_control->ac_ccbs, initial_ccbs);
 	if (i == 0) {
-		aprint_error_dev(&sc->sc_dev, "unable to create control blocks\n");
+		aprint_error_dev(sc->sc_dev,
+		    "unable to create control blocks\n");
 		return (ENOMEM);
 	} else if (i != initial_ccbs) {
 		printf("%s: WARNING: only %d of %d control blocks created\n",
-		    device_xname(&sc->sc_dev), i, initial_ccbs);
+		    device_xname(sc->sc_dev), i, initial_ccbs);
 	}
 
 	sc->sc_adapter.adapt_openings = i;
@@ -1053,7 +1063,7 @@
 
 #ifdef AHADEBUG
 	printf("%s: inquire %x, %x, %x, %x\n",
-	    device_xname(&sc->sc_dev),
+	    device_xname(sc->sc_dev),
 	    revision.reply.boardid, revision.reply.spec_opts,
 	    revision.reply.revision_1, revision.reply.revision_2);
 #endif /* AHADEBUG */
@@ -1092,7 +1102,7 @@
 
 noinquire:
 	printf("%s: model AHA-%s, firmware %s\n",
-	       device_xname(&sc->sc_dev),
+	       device_xname(sc->sc_dev),
 	       sc->sc_model, sc->sc_firmware);
 }
 
@@ -1116,7 +1126,7 @@
 {
 	struct scsipi_xfer *xs;
 	struct scsipi_periph *periph;
-	struct aha_softc *sc = (void *)chan->chan_adapter->adapt_dev;
+	struct aha_softc *sc = device_private(chan->chan_adapter->adapt_dev);
 	bus_dma_tag_t dmat = sc->sc_dmat;
 	struct aha_ccb *ccb;
 	int error, seg, flags, s;
@@ -1157,7 +1167,7 @@
 			/* can't use S/G if zero length */
 			if (xs->cmdlen > sizeof(ccb->scsi_cmd)) {
 				printf("%s: cmdlen %d too large for CCB\n",
-				    device_xname(&sc->sc_dev), xs->cmdlen);
+				    device_xname(sc->sc_dev), xs->cmdlen);
 				xs->error = XS_DRIVER_STUFFUP;
 				goto out_bad;
 			}
@@ -1205,9 +1215,10 @@
 				if (error == EFBIG) {
 					printf("%s: aha_scsi_cmd, more than %d"
 					    " DMA segments\n",
-					    device_xname(&sc->sc_dev), AHA_NSEG);
+					    device_xname(sc->sc_dev), AHA_NSEG);
 				} else {
-					aprint_error_dev(&sc->sc_dev, "error %d loading DMA map\n",
+					aprint_error_dev(sc->sc_dev,
+					    "error %d loading DMA map\n",
 					    error);
 				}
 out_bad:
@@ -1323,7 +1334,7 @@
 	struct scsipi_xfer *xs = ccb->xs;
 	struct scsipi_periph *periph = xs->xs_periph;
 	struct aha_softc *sc =
-	    (void *)periph->periph_channel->chan_adapter->adapt_dev;
+	    device_private(periph->periph_channel->chan_adapter->adapt_dev);
 	int s;
 
 	scsipi_printaddr(periph);
@@ -1337,7 +1348,7 @@
 	 */
 	aha_collect_mbo(sc);
 	if (ccb->flags & CCB_SENDING) {
-		aprint_error_dev(&sc->sc_dev, "not taking commands!\n");
+		aprint_error_dev(sc->sc_dev, "not taking commands!\n");
 		Debugger();
 	}
 #endif

Index: src/sys/dev/ic/ahavar.h
diff -u src/sys/dev/ic/ahavar.h:1.14 src/sys/dev/ic/ahavar.h:1.15
--- src/sys/dev/ic/ahavar.h:1.14	Mon Apr 28 20:23:49 2008
+++ src/sys/dev/ic/ahavar.h	Mon Sep 21 08:12:47 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ahavar.h,v 1.14 2008/04/28 20:23:49 martin Exp $	*/
+/*	$NetBSD: ahavar.h,v 1.15 2009/09/21 08:12:47 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
 };
 
 struct aha_softc {
-	struct device sc_dev;
+	device_t sc_dev;
 
 	bus_space_tag_t sc_iot;
 	bus_space_handle_t sc_ioh;

Index: src/sys/dev/isa/aha_isa.c
diff -u src/sys/dev/isa/aha_isa.c:1.27 src/sys/dev/isa/aha_isa.c:1.28
--- src/sys/dev/isa/aha_isa.c:1.27	Tue May 12 09:10:15 2009
+++ src/sys/dev/isa/aha_isa.c	Mon Sep 21 08:12:47 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: aha_isa.c,v 1.27 2009/05/12 09:10:15 cegger Exp $	*/
+/*	$NetBSD: aha_isa.c,v 1.28 2009/09/21 08:12:47 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aha_isa.c,v 1.27 2009/05/12 09:10:15 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aha_isa.c,v 1.28 2009/09/21 08:12:47 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -54,7 +54,7 @@
 int	aha_isa_probe(device_t, cfdata_t, void *);
 void	aha_isa_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(aha_isa, sizeof(struct aha_softc),
+CFATTACH_DECL_NEW(aha_isa, sizeof(struct aha_softc),
     aha_isa_probe, aha_isa_attach, NULL, NULL);
 
 /*
@@ -121,17 +121,19 @@
 aha_isa_attach(device_t parent, device_t self, void *aux)
 {
 	struct isa_attach_args *ia = aux;
-	struct aha_softc *sc = (void *)self;
+	struct aha_softc *sc = device_private(self);
 	bus_space_tag_t iot = ia->ia_iot;
 	bus_space_handle_t ioh;
 	struct aha_probe_data apd;
 	isa_chipset_tag_t ic = ia->ia_ic;
 	int error;
 
+	sc->sc_dev = self;
+
 	printf("\n");
 
 	if (bus_space_map(iot, ia->ia_io[0].ir_addr, AHA_ISA_IOSIZE, 0, &ioh)) {
-		aprint_error_dev(&sc->sc_dev, "can't map i/o space\n");
+		aprint_error_dev(self, "can't map i/o space\n");
 		return;
 	}
 
@@ -139,13 +141,14 @@
 	sc->sc_ioh = ioh;
 	sc->sc_dmat = ia->ia_dmat;
 	if (!aha_find(iot, ioh, &apd)) {
-		aprint_error_dev(&sc->sc_dev, "aha_find failed\n");
+		aprint_error_dev(self, "aha_find failed\n");
 		return;
 	}
 
 	if (apd.sc_drq != -1) {
 		if ((error = isa_dmacascade(ic, apd.sc_drq)) != 0) {
-			aprint_error_dev(&sc->sc_dev, "unable to cascade DRQ, error = %d\n", error);
+			aprint_error_dev(self,
+			    "unable to cascade DRQ, error = %d\n", error);
 			return;
 		}
 	}
@@ -153,7 +156,7 @@
 	sc->sc_ih = isa_intr_establish(ic, apd.sc_irq, IST_EDGE, IPL_BIO,
 	    aha_intr, sc);
 	if (sc->sc_ih == NULL) {
-		aprint_error_dev(&sc->sc_dev, "couldn't establish interrupt\n");
+		aprint_error_dev(self, "couldn't establish interrupt\n");
 		return;
 	}
 

Index: src/sys/dev/isapnp/aha_isapnp.c
diff -u src/sys/dev/isapnp/aha_isapnp.c:1.17 src/sys/dev/isapnp/aha_isapnp.c:1.18
--- src/sys/dev/isapnp/aha_isapnp.c:1.17	Tue May 12 10:16:35 2009
+++ src/sys/dev/isapnp/aha_isapnp.c	Mon Sep 21 08:12:47 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: aha_isapnp.c,v 1.17 2009/05/12 10:16:35 cegger Exp $	*/
+/*	$NetBSD: aha_isapnp.c,v 1.18 2009/09/21 08:12:47 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aha_isapnp.c,v 1.17 2009/05/12 10:16:35 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aha_isapnp.c,v 1.18 2009/09/21 08:12:47 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -56,7 +56,7 @@
 int	aha_isapnp_probe(device_t, cfdata_t, void *);
 void	aha_isapnp_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(aha_isapnp, sizeof(struct aha_softc),
+CFATTACH_DECL_NEW(aha_isapnp, sizeof(struct aha_softc),
     aha_isapnp_probe, aha_isapnp_attach, NULL, NULL);
 
 int
@@ -77,10 +77,12 @@
 	struct aha_probe_data apd;
 	struct isapnp_attach_args *ipa = aux;
 
+	sc->sc_dev = self;
+
 	printf("\n");
 
 	if (isapnp_config(ipa->ipa_iot, ipa->ipa_memt, ipa)) {
-		aprint_error_dev(&sc->sc_dev, "error in region allocation\n");
+		aprint_error_dev(self, "error in region allocation\n");
 		return;
 	}
 
@@ -89,32 +91,32 @@
 	sc->sc_dmat = ipa->ipa_dmat;
 
 	if (!aha_find(sc->sc_iot, sc->sc_ioh, &apd)) {
-		aprint_error_dev(&sc->sc_dev, "aha_find failed\n");
+		aprint_error_dev(self, "aha_find failed\n");
 		return;
 	}
 
 	if (ipa->ipa_ndrq == 0) {
 		if (apd.sc_drq != -1) {
 			printf("%s: no PnP drq, but card has one\n",
-			    device_xname(&sc->sc_dev));
+			    device_xname(self));
 			return;
 		}
 	} else if (apd.sc_drq != ipa->ipa_drq[0].num) {
 		printf("%s: card drq # (%d) != PnP # (%d)\n",
-		    device_xname(&sc->sc_dev), apd.sc_drq, ipa->ipa_drq[0].num);
+		    device_xname(self), apd.sc_drq, ipa->ipa_drq[0].num);
 		return;
 	} else {
 		int error = isa_dmacascade(ipa->ipa_ic, ipa->ipa_drq[0].num);
 		if (error) {
-			aprint_error_dev(&sc->sc_dev, "unable to cascade DRQ, error = %d\n",
-			    error);
+			aprint_error_dev(self,
+			    "unable to cascade DRQ, error = %d\n", error);
 			return;
 		}
 	}
 
 	if (apd.sc_irq != ipa->ipa_irq[0].num) {
 		printf("%s: card irq # (%d) != PnP # (%d)\n",
-		    device_xname(&sc->sc_dev), apd.sc_irq, ipa->ipa_irq[0].num);
+		    device_xname(self), apd.sc_irq, ipa->ipa_irq[0].num);
 		return;
 	}
 
@@ -123,7 +125,7 @@
 	    ipa->ipa_irq[0].type, IPL_BIO, aha_intr, sc);
 
 	if (sc->sc_ih == NULL) {
-		aprint_error_dev(&sc->sc_dev, "couldn't establish interrupt\n");
+		aprint_error_dev(self, "couldn't establish interrupt\n");
 		return;
 	}
 

Index: src/sys/dev/mca/aha_mca.c
diff -u src/sys/dev/mca/aha_mca.c:1.20 src/sys/dev/mca/aha_mca.c:1.21
--- src/sys/dev/mca/aha_mca.c:1.20	Tue May 12 14:31:00 2009
+++ src/sys/dev/mca/aha_mca.c	Mon Sep 21 08:12:47 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: aha_mca.c,v 1.20 2009/05/12 14:31:00 cegger Exp $	*/
+/*	$NetBSD: aha_mca.c,v 1.21 2009/09/21 08:12:47 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 2000-2002 The NetBSD Foundation, Inc.
@@ -52,7 +52,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aha_mca.c,v 1.20 2009/05/12 14:31:00 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aha_mca.c,v 1.21 2009/09/21 08:12:47 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -80,12 +80,11 @@
 int	aha_mca_probe(device_t, cfdata_t, void *);
 void	aha_mca_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(aha_mca, sizeof(struct aha_softc),
+CFATTACH_DECL_NEW(aha_mca, sizeof(struct aha_softc),
     aha_mca_probe, aha_mca_attach, NULL, NULL);
 
 int
-aha_mca_probe(device_t parent, cfdata_t match,
-    void *aux)
+aha_mca_probe(device_t parent, cfdata_t match, void *aux)
 {
 	register struct mca_attach_args *ma = aux;
 
@@ -107,6 +106,8 @@
 	mca_chipset_tag_t mc = ma->ma_mc;
 	bus_addr_t iobase;
 
+	sc->sc_dev =self;
+
 	/*
 	 * POS registers differ much between 8003 and 8013, so they are
 	 * divided to two sections.
@@ -151,7 +152,7 @@
 		 ((ma->ma_pos[3] & 0x40) >> 4);
 
 	if (bus_space_map(iot, iobase, AHA_ISA_IOSIZE, 0, &ioh)) {
-		aprint_error_dev(&sc->sc_dev, "can't map i/o space\n");
+		aprint_error_dev(self, "can't map i/o space\n");
 		return;
 	}
 
@@ -166,7 +167,7 @@
 
 	sc->sc_ih = mca_intr_establish(mc, apd.sc_irq, IPL_BIO, aha_intr, sc);
 	if (sc->sc_ih == NULL) {
-		aprint_error_dev(&sc->sc_dev, "couldn't establish interrupt\n");
+		aprint_error_dev(self, "couldn't establish interrupt\n");
 		return;
 	}
 

Reply via email to