Nuke sc_iooffs from orbit. This is exactly what bus_space_subregion() is for.
This commit is contained in:
parent
18e25765c1
commit
f887d74c45
@ -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;
|
||||||
|
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user