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, ®, 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);