Module Name:    src
Committed By:   tsutsui
Date:           Sat May 22 16:35:00 UTC 2010

Modified Files:
        src/sys/arch/i386/pnpbios: ess_pnpbios.c
        src/sys/dev/isa: ess.c ess_isa.c essvar.h
        src/sys/dev/isapnp: ess_isapnp.c
        src/sys/dev/ofisa: ess_ofisa.c

Log Message:
Split device_t/softc. Based on patch from ceg...@.
ess_pnpbios.c and ess_ofisa.c fixes by me.

Tested on ess_isapnp.c, and no crash with ess_ofisa.c on shark.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/i386/pnpbios/ess_pnpbios.c
cvs rdiff -u -r1.77 -r1.78 src/sys/dev/isa/ess.c
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/isa/ess_isa.c
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/isa/essvar.h
cvs rdiff -u -r1.21 -r1.22 src/sys/dev/isapnp/ess_isapnp.c
cvs rdiff -u -r1.24 -r1.25 src/sys/dev/ofisa/ess_ofisa.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/arch/i386/pnpbios/ess_pnpbios.c
diff -u src/sys/arch/i386/pnpbios/ess_pnpbios.c:1.20 src/sys/arch/i386/pnpbios/ess_pnpbios.c:1.21
--- src/sys/arch/i386/pnpbios/ess_pnpbios.c:1.20	Tue Oct 20 10:34:21 2009
+++ src/sys/arch/i386/pnpbios/ess_pnpbios.c	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess_pnpbios.c,v 1.20 2009/10/20 10:34:21 cegger Exp $	*/
+/*	$NetBSD: ess_pnpbios.c,v 1.21 2010/05/22 16:35:00 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess_pnpbios.c,v 1.20 2009/10/20 10:34:21 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess_pnpbios.c,v 1.21 2010/05/22 16:35:00 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -58,7 +58,7 @@
 int ess_pnpbios_match(device_t, cfdata_t, void *);
 void ess_pnpbios_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(ess_pnpbios, sizeof(struct ess_softc),
+CFATTACH_DECL_NEW(ess_pnpbios, sizeof(struct ess_softc),
     ess_pnpbios_match, ess_pnpbios_attach, NULL, NULL);
 
 int
@@ -87,6 +87,8 @@
 	struct ess_softc *sc = device_private(self);
 	struct pnpbiosdev_attach_args *aa = aux;
 
+	sc->sc_dev = self;
+
 	if (pnpbios_io_map(aa->pbt, aa->resc, 0, &sc->sc_iot, &sc->sc_ioh)) {
 		aprint_error(": can't map i/o space\n");
 		return;

Index: src/sys/dev/isa/ess.c
diff -u src/sys/dev/isa/ess.c:1.77 src/sys/dev/isa/ess.c:1.78
--- src/sys/dev/isa/ess.c:1.77	Sat Jan 23 17:22:04 2010
+++ src/sys/dev/isa/ess.c	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess.c,v 1.77 2010/01/23 17:22:04 cegger Exp $	*/
+/*	$NetBSD: ess.c,v 1.78 2010/05/22 16:35:00 tsutsui Exp $	*/
 
 /*
  * Copyright 1997
@@ -66,7 +66,7 @@
 */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.77 2010/01/23 17:22:04 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.78 2010/05/22 16:35:00 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -930,21 +930,21 @@
 		sc->sc_audio1.ih = isa_intr_establish(sc->sc_ic,
 		    sc->sc_audio1.irq, sc->sc_audio1.ist, IPL_AUDIO,
 		    ess_audio1_intr, sc);
-		aprint_normal_dev(&sc->sc_dev,
+		aprint_normal_dev(sc->sc_dev,
 		    "audio1 interrupting at irq %d\n", sc->sc_audio1.irq);
 	} else
-		aprint_normal_dev(&sc->sc_dev, "audio1 polled\n");
+		aprint_normal_dev(sc->sc_dev, "audio1 polled\n");
 	sc->sc_audio1.maxsize = isa_dmamaxsize(sc->sc_ic, sc->sc_audio1.drq);
 
 	if (isa_drq_alloc(sc->sc_ic, sc->sc_audio1.drq) != 0) {
-		aprint_error_dev(&sc->sc_dev, "can't reserve drq %d\n",
+		aprint_error_dev(sc->sc_dev, "can't reserve drq %d\n",
 		    sc->sc_audio1.drq);
 		return;
 	}
 
 	if (isa_dmamap_create(sc->sc_ic, sc->sc_audio1.drq,
 	    sc->sc_audio1.maxsize, BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW)) {
-		aprint_error_dev(&sc->sc_dev, "can't create map for drq %d\n",
+		aprint_error_dev(sc->sc_dev, "can't create map for drq %d\n",
 		    sc->sc_audio1.drq);
 		return;
 	}
@@ -955,23 +955,23 @@
 			sc->sc_audio2.ih = isa_intr_establish(sc->sc_ic,
 			    sc->sc_audio2.irq, sc->sc_audio2.ist, IPL_AUDIO,
 			    ess_audio2_intr, sc);
-			aprint_normal_dev(&sc->sc_dev,
+			aprint_normal_dev(sc->sc_dev,
 			    "audio2 interrupting at irq %d\n",
 			    sc->sc_audio2.irq);
 		} else
-			aprint_normal_dev(&sc->sc_dev, "audio2 polled\n");
+			aprint_normal_dev(sc->sc_dev, "audio2 polled\n");
 		sc->sc_audio2.maxsize = isa_dmamaxsize(sc->sc_ic,
 		    sc->sc_audio2.drq);
 
 		if (isa_drq_alloc(sc->sc_ic, sc->sc_audio2.drq) != 0) {
-			aprint_error_dev(&sc->sc_dev, "can't reserve drq %d\n",
+			aprint_error_dev(sc->sc_dev, "can't reserve drq %d\n",
 			    sc->sc_audio2.drq);
 			return;
 		}
 
 		if (isa_dmamap_create(sc->sc_ic, sc->sc_audio2.drq,
 		    sc->sc_audio2.maxsize, BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW)) {
-			aprint_error_dev(&sc->sc_dev, "can't create map for drq %d\n",
+			aprint_error_dev(sc->sc_dev, "can't create map for drq %d\n",
 			    sc->sc_audio2.drq);
 			return;
 		}
@@ -1044,14 +1044,14 @@
 	    sc->sc_version);
 
 	if (ESS_USE_AUDIO1(sc->sc_model))
-		audio_attach_mi(&ess_1788_hw_if, sc, &sc->sc_dev);
+		audio_attach_mi(&ess_1788_hw_if, sc, sc->sc_dev);
 	else
-		audio_attach_mi(&ess_1888_hw_if, sc, &sc->sc_dev);
+		audio_attach_mi(&ess_1888_hw_if, sc, sc->sc_dev);
 
 	arg.type = AUDIODEV_TYPE_OPL;
 	arg.hwif = 0;
 	arg.hdl = 0;
-	(void)config_found(&sc->sc_dev, &arg, audioprint);
+	(void)config_found(sc->sc_dev, &arg, audioprint);
 
 #if NJOY_ESS > 0
 	if (sc->sc_model == ESS_1888 && enablejoy) {
@@ -1062,7 +1062,7 @@
 		ess_write_mix_reg(sc, 0x40, m40);
 
 		arg.type = AUDIODEV_TYPE_AUX;
-		(void)config_found(&sc->sc_dev, &arg, audioprint);
+		(void)config_found(sc->sc_dev, &arg, audioprint);
 	}
 #endif
 

Index: src/sys/dev/isa/ess_isa.c
diff -u src/sys/dev/isa/ess_isa.c:1.23 src/sys/dev/isa/ess_isa.c:1.24
--- src/sys/dev/isa/ess_isa.c:1.23	Tue Sep 29 11:01:39 2009
+++ src/sys/dev/isa/ess_isa.c	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess_isa.c,v 1.23 2009/09/29 11:01:39 cegger Exp $	*/
+/*	$NetBSD: ess_isa.c,v 1.24 2010/05/22 16:35:00 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess_isa.c,v 1.23 2009/09/29 11:01:39 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess_isa.c,v 1.24 2010/05/22 16:35:00 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -55,7 +55,7 @@
 int ess_isa_probe(device_t, cfdata_t, void *);
 void ess_isa_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(ess_isa, sizeof(struct ess_softc),
+CFATTACH_DECL_NEW(ess_isa, sizeof(struct ess_softc),
     ess_isa_probe, ess_isa_attach, NULL, NULL);
 
 int
@@ -127,6 +127,8 @@
 	int enablejoy;
 
 	sc = device_private(self);
+
+	sc->sc_dev = self;
 	ia = aux;
 	enablejoy = 0;
 

Index: src/sys/dev/isa/essvar.h
diff -u src/sys/dev/isa/essvar.h:1.24 src/sys/dev/isa/essvar.h:1.25
--- src/sys/dev/isa/essvar.h:1.24	Sun Dec 11 12:22:02 2005
+++ src/sys/dev/isa/essvar.h	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: essvar.h,v 1.24 2005/12/11 12:22:02 christos Exp $	*/
+/*	$NetBSD: essvar.h,v 1.25 2010/05/22 16:35:00 tsutsui Exp $	*/
 /*
  * Copyright 1997
  * Digital Equipment Corporation. All rights reserved.
@@ -33,7 +33,7 @@
  */
 
 /*
-** @(#) $RCSfile: essvar.h,v $ $Revision: 1.24 $ (SHARK) $Date: 2005/12/11 12:22:02 $
+** @(#) $RCSfile: essvar.h,v $ $Revision: 1.25 $ (SHARK) $Date: 2010/05/22 16:35:00 $
 **
 **++
 **
@@ -123,7 +123,7 @@
 
 struct ess_softc
 {
-	struct	device sc_dev;		/* base device */
+	device_t sc_dev;		/* base device */
 	isa_chipset_tag_t sc_ic;
 	bus_space_tag_t sc_iot;		/* tag */
 	bus_space_handle_t sc_ioh;	/* handle */

Index: src/sys/dev/isapnp/ess_isapnp.c
diff -u src/sys/dev/isapnp/ess_isapnp.c:1.21 src/sys/dev/isapnp/ess_isapnp.c:1.22
--- src/sys/dev/isapnp/ess_isapnp.c:1.21	Tue Sep 29 11:01:39 2009
+++ src/sys/dev/isapnp/ess_isapnp.c	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess_isapnp.c,v 1.21 2009/09/29 11:01:39 cegger Exp $	*/
+/*	$NetBSD: ess_isapnp.c,v 1.22 2010/05/22 16:35:00 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 1991-1993 Regents of the University of California.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess_isapnp.c,v 1.21 2009/09/29 11:01:39 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess_isapnp.c,v 1.22 2010/05/22 16:35:00 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -64,7 +64,7 @@
 int	ess_isapnp_match(device_t, cfdata_t, void *);
 void	ess_isapnp_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(ess_isapnp, sizeof(struct ess_softc),
+CFATTACH_DECL_NEW(ess_isapnp, sizeof(struct ess_softc),
     ess_isapnp_match, ess_isapnp_attach, NULL, NULL);
 
 /*
@@ -97,6 +97,7 @@
 	struct isapnp_attach_args *ipa;
 
 	sc = device_private(self);
+	sc->sc_dev = self;
 	ipa = aux;
 
 	aprint_naive("\n");

Index: src/sys/dev/ofisa/ess_ofisa.c
diff -u src/sys/dev/ofisa/ess_ofisa.c:1.24 src/sys/dev/ofisa/ess_ofisa.c:1.25
--- src/sys/dev/ofisa/ess_ofisa.c:1.24	Tue May 12 14:38:56 2009
+++ src/sys/dev/ofisa/ess_ofisa.c	Sat May 22 16:35:00 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess_ofisa.c,v 1.24 2009/05/12 14:38:56 cegger Exp $	*/
+/*	$NetBSD: ess_ofisa.c,v 1.25 2010/05/22 16:35:00 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess_ofisa.c,v 1.24 2009/05/12 14:38:56 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess_ofisa.c,v 1.25 2010/05/22 16:35:00 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -54,7 +54,7 @@
 int	ess_ofisa_match(device_t, cfdata_t, void *);
 void	ess_ofisa_attach(device_t, device_t, void *);
 
-CFATTACH_DECL(ess_ofisa, sizeof(struct ess_softc),
+CFATTACH_DECL_NEW(ess_ofisa, sizeof(struct ess_softc),
     ess_ofisa_match, ess_ofisa_attach, NULL, NULL);
 
 int
@@ -88,6 +88,8 @@
 	int n, ndrq;
 	char *model;
 
+	sc->sc_dev = self;
+
 	/*
 	 * We're living on an OFW.  We have to ask the OFW what our
 	 * registers and interrupts properties look like.
@@ -101,15 +103,15 @@
 
 	n = ofisa_reg_get(aa->oba.oba_phandle, &reg, 1);
 	if (n != 1) {
-		printf(": error getting register data\n");
+		aprint_error(": error getting register data\n");
 		return;
 	}
 	if (reg.type != OFISA_REG_TYPE_IO) {
-		printf(": register type not i/o\n");
+		aprint_error(": register type not i/o\n");
 		return;
 	}
 	if (reg.len != ESS_NPORT) {
-		printf(": weird register size (%lu, expected %d)\n",
+		aprint_error(": weird register size (%lu, expected %d)\n",
 		    (unsigned long)reg.len, ESS_NPORT);
 		return;
 	}
@@ -126,13 +128,13 @@
 		sc->sc_audio2.irq = intr[1].irq;
 		sc->sc_audio2.ist = intr[1].share;
 	} else {
-		printf(": error getting interrupt data\n");
+		aprint_error(": error getting interrupt data\n");
 		return;
 	}
 
 	ndrq = ofisa_dma_get(aa->oba.oba_phandle, dma, 2);
 	if (ndrq != 2) {
-		printf(": error getting DMA data\n");
+		aprint_error(": error getting DMA data\n");
 		return;
 	}
 	sc->sc_audio1.drq = dma[0].drq;
@@ -144,7 +146,7 @@
 	sc->sc_iobase = reg.addr;
 	if (bus_space_map(sc->sc_iot, sc->sc_iobase, reg.len, 0,
 	    &sc->sc_ioh)) {
-		printf(": unable to map register space\n");
+		aprint_error(": unable to map register space\n");
 		return;
 	}
 
@@ -156,15 +158,17 @@
 	if (ess_config_addr(sc))
 		return;
 	if (essmatch(sc) == 0) {
-		printf(": essmatch failed\n");
+		aprint_error(": essmatch failed\n");
 		return;
 	}
 
 	n = OF_getproplen(aa->oba.oba_phandle, "model");
 	if (n > 0) {
 		model = alloca(n);
-		if (OF_getprop(aa->oba.oba_phandle, "model", model, n) == n)
-			printf(": %s\n%s", model, device_xname(&sc->sc_dev));
+		if (OF_getprop(aa->oba.oba_phandle, "model", model, n) == n) {
+			aprint_normal(": %s\n", model);
+			aprint_normal_dev(self, "");
+		}
 	}
 
 	essattach(sc, 0);

Reply via email to