Nuke sc_iooffs from orbit. This is exactly what bus_space_subregion() is for.

This commit is contained in:
mycroft 1999-03-22 14:29:14 +00:00
parent 18e25765c1
commit f887d74c45
4 changed files with 23 additions and 28 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: ad1848_isa.c,v 1.9 1999/03/22 07:27:46 mycroft Exp $ */ /* $NetBSD: ad1848_isa.c,v 1.10 1999/03/22 14:29:14 mycroft Exp $ */
/*- /*-
* Copyright (c) 1999 The NetBSD Foundation, Inc. * Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -143,8 +143,7 @@ ad1848_isa_read(sc, index)
int index; int index;
{ {
struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc; struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc;
return (bus_space_read_1((sc)->sc_iot, (sc)->sc_ioh, return (bus_space_read_1((sc)->sc_iot, (sc)->sc_ioh, (index)));
(isc)->sc_iooffs+(index)));
} }
void void
@ -154,8 +153,7 @@ ad1848_isa_write(sc, index, value)
int value; int value;
{ {
struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc; struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc;
bus_space_write_1((sc)->sc_iot, (sc)->sc_ioh, bus_space_write_1((sc)->sc_iot, (sc)->sc_ioh, (index), value);
(isc)->sc_iooffs+(index), value);
} }
/* /*
@ -166,7 +164,7 @@ ad1848_isa_mapprobe(isc, iobase)
struct ad1848_isa_softc *isc; struct ad1848_isa_softc *isc;
int iobase; int iobase;
{ {
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
if (!AD1848_BASE_VALID(iobase)) { if (!AD1848_BASE_VALID(iobase)) {
#ifdef AUDIO_DEBUG #ifdef AUDIO_DEBUG
@ -175,7 +173,6 @@ ad1848_isa_mapprobe(isc, iobase)
return 0; return 0;
} }
isc->sc_iooffs = 0;
/* Map the AD1848 ports */ /* Map the AD1848 ports */
if (bus_space_map(sc->sc_iot, iobase, AD1848_NPORT, 0, &sc->sc_ioh)) if (bus_space_map(sc->sc_iot, iobase, AD1848_NPORT, 0, &sc->sc_ioh))
return 0; return 0;
@ -194,7 +191,7 @@ int
ad1848_isa_probe(isc) ad1848_isa_probe(isc)
struct ad1848_isa_softc *isc; struct ad1848_isa_softc *isc;
{ {
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
u_char tmp, tmp1 = 0xff, tmp2 = 0xff; u_char tmp, tmp1 = 0xff, tmp2 = 0xff;
int i; int i;
@ -381,7 +378,7 @@ void
ad1848_isa_unmap(isc) ad1848_isa_unmap(isc)
struct ad1848_isa_softc *isc; struct ad1848_isa_softc *isc;
{ {
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
bus_space_unmap(sc->sc_iot, sc->sc_ioh, AD1848_NPORT); bus_space_unmap(sc->sc_iot, sc->sc_ioh, AD1848_NPORT);
} }
@ -393,7 +390,7 @@ void
ad1848_isa_attach(isc) ad1848_isa_attach(isc)
struct ad1848_isa_softc *isc; struct ad1848_isa_softc *isc;
{ {
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
sc->sc_readreg = ad1848_isa_read; sc->sc_readreg = ad1848_isa_read;
sc->sc_writereg = ad1848_isa_write; sc->sc_writereg = ad1848_isa_write;
@ -430,8 +427,6 @@ ad1848_isa_open(addr, flags)
DPRINTF(("ad1848_isa_open: sc=%p\n", sc)); DPRINTF(("ad1848_isa_open: sc=%p\n", sc));
sc->sc_intr = 0;
return (ad1848_open(&sc->sc_ad1848, flags)); return (ad1848_open(&sc->sc_ad1848, flags));
} }
@ -463,7 +458,7 @@ ad1848_isa_trigger_input(addr, start, end, blksize, intr, arg, param)
struct audio_params *param; struct audio_params *param;
{ {
struct ad1848_isa_softc *isc = addr; struct ad1848_isa_softc *isc = addr;
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
u_int8_t reg; u_int8_t reg;
isa_dmastart(isc->sc_ic, isc->sc_recdrq, start, isa_dmastart(isc->sc_ic, isc->sc_recdrq, start,
@ -500,7 +495,7 @@ ad1848_isa_trigger_output(addr, start, end, blksize, intr, arg, param)
struct audio_params *param; struct audio_params *param;
{ {
struct ad1848_isa_softc *isc = addr; struct ad1848_isa_softc *isc = addr;
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
u_int8_t reg; u_int8_t reg;
isa_dmastart(isc->sc_ic, isc->sc_playdrq, start, isa_dmastart(isc->sc_ic, isc->sc_playdrq, start,
@ -527,7 +522,7 @@ ad1848_isa_halt_input(addr)
void *addr; void *addr;
{ {
struct ad1848_isa_softc *isc = addr; struct ad1848_isa_softc *isc = addr;
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
if (isc->sc_recrun) { if (isc->sc_recrun) {
ad1848_halt_input(sc); ad1848_halt_input(sc);
@ -543,7 +538,7 @@ ad1848_isa_halt_output(addr)
void *addr; void *addr;
{ {
struct ad1848_isa_softc *isc = addr; struct ad1848_isa_softc *isc = addr;
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
if (isc->sc_playrun) { if (isc->sc_playrun) {
ad1848_halt_output(sc); ad1848_halt_output(sc);
@ -559,7 +554,7 @@ ad1848_isa_intr(arg)
void *arg; void *arg;
{ {
struct ad1848_isa_softc *isc = arg; struct ad1848_isa_softc *isc = arg;
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848; struct ad1848_softc *sc = &isc->sc_ad1848;
int retval = 0; int retval = 0;
u_char status; u_char status;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ad1848var.h,v 1.29 1999/02/19 16:15:06 mycroft Exp $ */ /* $NetBSD: ad1848var.h,v 1.30 1999/03/22 14:29:14 mycroft Exp $ */
/*- /*-
* Copyright (c) 1999 The NetBSD Foundation, Inc. * Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -78,7 +78,6 @@ struct ad1848_isa_softc {
struct ad1848_softc sc_ad1848; /* AD1848 device */ struct ad1848_softc sc_ad1848; /* AD1848 device */
void *sc_ih; /* interrupt vectoring */ void *sc_ih; /* interrupt vectoring */
isa_chipset_tag_t sc_ic; /* ISA chipset info */ isa_chipset_tag_t sc_ic; /* ISA chipset info */
int sc_iooffs; /* offset from handle */
char sc_playrun; /* running in continuous mode */ char sc_playrun; /* running in continuous mode */
char sc_recrun; /* running in continuous mode */ char sc_recrun; /* running in continuous mode */

View File

@ -1,4 +1,4 @@
/* $NetBSD: wss_isapnp.c,v 1.8 1999/03/22 10:00:13 mycroft Exp $ */ /* $NetBSD: wss_isapnp.c,v 1.9 1999/03/22 14:29:14 mycroft Exp $ */
/* /*
* Copyright (c) 1997, 1999 The NetBSD Foundation, Inc. * Copyright (c) 1997, 1999 The NetBSD Foundation, Inc.
@ -156,7 +156,6 @@ wss_isapnp_attach(parent, self, aux)
ac->mode = 2; ac->mode = 2;
sc->sc_ad1848.sc_ic = ipa->ipa_ic; sc->sc_ad1848.sc_ic = ipa->ipa_ic;
sc->sc_ad1848.sc_iooffs = 0;
sc->wss_ic = ipa->ipa_ic; sc->wss_ic = ipa->ipa_ic;
sc->wss_irq = ipa->ipa_irq[0].num; sc->wss_irq = ipa->ipa_irq[0].num;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ym_isapnp.c,v 1.8 1999/03/22 10:00:13 mycroft Exp $ */ /* $NetBSD: ym_isapnp.c,v 1.9 1999/03/22 14:29:14 mycroft Exp $ */
/* /*
@ -111,8 +111,7 @@ ym_isapnp_attach(parent, self, aux)
printf("\n"); printf("\n");
if (isapnp_config(ipa->ipa_iot, ipa->ipa_memt, ipa)) { if (isapnp_config(ipa->ipa_iot, ipa->ipa_memt, ipa)) {
printf("%s: error in region allocation\n", printf("%s: error in region allocation\n", self->dv_xname);
ac->sc_dev.dv_xname);
return; return;
} }
@ -127,16 +126,19 @@ ym_isapnp_attach(parent, self, aux)
sc->sc_controlioh = ipa->ipa_io[4].h; sc->sc_controlioh = ipa->ipa_io[4].h;
ac->sc_iot = sc->sc_iot; ac->sc_iot = sc->sc_iot;
ac->sc_ioh = sc->sc_ioh; if (bus_space_subregion(sc->sc_iot, sc->sc_ioh, WSS_CODEC, 4,
&ac->sc_ioh)) {
printf("%s: bus_space_subregion failed\n", self->dv_xname);
return;
}
ac->mode = 2; ac->mode = 2;
ac->MCE_bit = MODE_CHANGE_ENABLE; ac->MCE_bit = MODE_CHANGE_ENABLE;
ac->chip_name = "OPL3-SA3"; ac->chip_name = "OPL3-SA3";
sc->sc_ad1848.sc_ic = sc->sc_ic; sc->sc_ad1848.sc_ic = sc->sc_ic;
sc->sc_ad1848.sc_iooffs = WSS_CODEC;
printf("%s: %s %s", ac->sc_dev.dv_xname, ipa->ipa_devident, printf("%s: %s %s", self->dv_xname, ipa->ipa_devident,
ipa->ipa_devclass); ipa->ipa_devclass);
ym_attach(sc); ym_attach(sc);
} }