Annotation of sys/dev/isa/mpu_isapnp.c, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: mpu_isapnp.c,v 1.6 2002/11/28 23:24:53 mickey Exp $ */
2:
3: #include "midi.h"
4:
5: #include <sys/param.h>
6: #include <sys/systm.h>
7: #include <sys/errno.h>
8: #include <sys/ioctl.h>
9: #include <sys/syslog.h>
10: #include <sys/device.h>
11: #include <sys/proc.h>
12:
13: #include <machine/bus.h>
14:
15: #include <sys/audioio.h>
16: #include <dev/audio_if.h>
17: #include <dev/midi_if.h>
18: #include <dev/mulaw.h>
19:
20: #include <dev/isa/isavar.h>
21: #include <dev/isa/isadmavar.h>
22:
23: #include <dev/ic/mpuvar.h>
24:
25: int mpu_isapnp_match(struct device *, void *, void *);
26: void mpu_isapnp_attach(struct device *, struct device *, void *);
27:
28: struct mpu_isapnp_softc {
29: struct device sc_dev;
30: void *sc_ih;
31:
32: struct mpu_softc sc_mpu;
33: };
34:
35: struct cfattach mpu_isapnp_ca = {
36: sizeof(struct mpu_isapnp_softc), mpu_isapnp_match, mpu_isapnp_attach
37: };
38:
39: int
40: mpu_isapnp_match(parent, match, aux)
41: struct device *parent;
42: void *match, *aux;
43: {
44: struct isa_attach_args *ipa = aux;
45:
46: if (ipa->ipa_nirq != 1)
47: return 0;
48: return 1;
49: }
50:
51: void
52: mpu_isapnp_attach(parent, self, aux)
53: struct device *parent, *self;
54: void *aux;
55: {
56: struct mpu_isapnp_softc *sc = (struct mpu_isapnp_softc *)self;
57: struct isa_attach_args *ipa = aux;
58:
59: printf("\n");
60:
61: sc->sc_mpu.iot = ipa->ia_iot;
62: sc->sc_mpu.ioh = ipa->ipa_io[0].h;
63:
64: sc->sc_ih = isa_intr_establish(ipa->ia_ic, ipa->ipa_irq[0].num,
65: ipa->ipa_irq[0].type, IPL_AUDIO, mpu_intr, &sc->sc_mpu,
66: sc->sc_dev.dv_xname);
67:
68: if (!mpu_find(&sc->sc_mpu)) {
69: printf("%s: find failed\n", sc->sc_dev.dv_xname);
70: return;
71: }
72:
73: printf("%s: %s %s\n", sc->sc_dev.dv_xname, ipa->ipa_devident,
74: ipa->ipa_devclass);
75:
76: midi_attach_mi(&mpu_midi_hw_if, &sc->sc_mpu, &sc->sc_dev);
77: }
CVSweb