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.
@ -143,8 +143,7 @@ ad1848_isa_read(sc, index)
int index;
{
struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc;
return (bus_space_read_1((sc)->sc_iot, (sc)->sc_ioh,
(isc)->sc_iooffs+(index)));
return (bus_space_read_1((sc)->sc_iot, (sc)->sc_ioh, (index)));
}
void
@ -154,8 +153,7 @@ ad1848_isa_write(sc, index, value)
int value;
{
struct ad1848_isa_softc *isc = (struct ad1848_isa_softc *)sc;
bus_space_write_1((sc)->sc_iot, (sc)->sc_ioh,
(isc)->sc_iooffs+(index), value);
bus_space_write_1((sc)->sc_iot, (sc)->sc_ioh, (index), value);
}
/*
@ -166,7 +164,7 @@ ad1848_isa_mapprobe(isc, iobase)
struct ad1848_isa_softc *isc;
int iobase;
{
struct ad1848_softc *sc = (struct ad1848_softc *)&isc->sc_ad1848;
struct ad1848_softc *sc = &isc->sc_ad1848;
if (!AD1848_BASE_VALID(iobase)) {
#ifdef AUDIO_DEBUG
@ -175,7 +173,6 @@ ad1848_isa_mapprobe(isc, iobase)
return 0;
}
isc->sc_iooffs = 0;
/* Map the AD1848 ports */
if (bus_space_map(sc->sc_iot, iobase, AD1848_NPORT, 0, &sc->sc_ioh))
return 0;
@ -194,7 +191,7 @@ int
ad1848_isa_probe(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;
int i;
@ -381,7 +378,7 @@ void
ad1848_isa_unmap(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);
}
@ -393,7 +390,7 @@ void
ad1848_isa_attach(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_writereg = ad1848_isa_write;
@ -430,8 +427,6 @@ ad1848_isa_open(addr, flags)
DPRINTF(("ad1848_isa_open: sc=%p\n", sc));
sc->sc_intr = 0;
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 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;
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 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;
isa_dmastart(isc->sc_ic, isc->sc_playdrq, start,
@ -527,7 +522,7 @@ ad1848_isa_halt_input(addr)
void *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) {
ad1848_halt_input(sc);
@ -543,7 +538,7 @@ ad1848_isa_halt_output(addr)
void *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) {
ad1848_halt_output(sc);
@ -559,7 +554,7 @@ ad1848_isa_intr(arg)
void *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;
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.
@ -78,7 +78,6 @@ struct ad1848_isa_softc {
struct ad1848_softc sc_ad1848; /* AD1848 device */
void *sc_ih; /* interrupt vectoring */
isa_chipset_tag_t sc_ic; /* ISA chipset info */
int sc_iooffs; /* offset from handle */
char sc_playrun; /* 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.
@ -156,7 +156,6 @@ wss_isapnp_attach(parent, self, aux)
ac->mode = 2;
sc->sc_ad1848.sc_ic = ipa->ipa_ic;
sc->sc_ad1848.sc_iooffs = 0;
sc->wss_ic = ipa->ipa_ic;
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");
if (isapnp_config(ipa->ipa_iot, ipa->ipa_memt, ipa)) {
printf("%s: error in region allocation\n",
ac->sc_dev.dv_xname);
printf("%s: error in region allocation\n", self->dv_xname);
return;
}
@ -127,16 +126,19 @@ ym_isapnp_attach(parent, self, aux)
sc->sc_controlioh = ipa->ipa_io[4].h;
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->MCE_bit = MODE_CHANGE_ENABLE;
ac->chip_name = "OPL3-SA3";
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,
ipa->ipa_devclass);
printf("%s: %s %s", self->dv_xname, ipa->ipa_devident,
ipa->ipa_devclass);
ym_attach(sc);
}