summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/audio.c446
-rw-r--r--sys/dev/audio_if.h19
-rw-r--r--sys/dev/audiovar.h6
3 files changed, 235 insertions, 236 deletions
diff --git a/sys/dev/audio.c b/sys/dev/audio.c
index 7260653e923..7b840c672d2 100644
--- a/sys/dev/audio.c
+++ b/sys/dev/audio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: audio.c,v 1.39 2002/06/16 01:36:22 mickey Exp $ */
+/* $OpenBSD: audio.c,v 1.40 2002/08/26 16:20:04 mickey Exp $ */
/* $NetBSD: audio.c,v 1.105 1998/09/27 16:43:56 christos Exp $ */
/*
@@ -36,7 +36,7 @@
/*
* This is a (partially) SunOS-compatible /dev/audio driver for NetBSD.
- *
+ *
* This code tries to do something half-way sensible with
* half-duplex hardware, such as with the SoundBlaster hardware. With
* half-duplex hardware allowing O_RDWR access doesn't really make
@@ -57,7 +57,7 @@
/*
* Todo:
- * - Add softaudio() isr processing for wakeup, poll, signals,
+ * - Add softaudio() isr processing for wakeup, poll, signals,
* and silence fill.
*/
@@ -118,7 +118,7 @@ int mixer_close(dev_t, int, int, struct proc *);
int mixer_ioctl(dev_t, u_long, caddr_t, int, struct proc *);
static void mixer_remove(struct audio_softc *, struct proc *p);
static void mixer_signal(struct audio_softc *);
-
+
void audio_init_record(struct audio_softc *);
void audio_init_play(struct audio_softc *);
int audiostartr(struct audio_softc *);
@@ -158,8 +158,8 @@ int audiodetach(struct device *, int);
int audioactivate(struct device *, enum devact);
struct portname {
- char *name;
- int mask;
+ char *name;
+ int mask;
};
static struct portname itable[] = {
{ AudioNmicrophone, AUDIO_MICROPHONE },
@@ -173,10 +173,10 @@ static struct portname otable[] = {
{ AudioNline, AUDIO_LINE_OUT },
{ 0 }
};
-void au_check_ports(struct audio_softc *, struct au_mixer_ports *,
+void au_check_ports(struct audio_softc *, struct au_mixer_ports *,
mixer_devinfo_t *, int, char *, char *,
struct portname *);
-int au_set_gain(struct audio_softc *, struct au_mixer_ports *,
+int au_set_gain(struct audio_softc *, struct au_mixer_ports *,
int, int);
void au_get_gain(struct audio_softc *, struct au_mixer_ports *,
u_int *, u_char *);
@@ -191,7 +191,7 @@ int au_portof(struct audio_softc *, char *);
/* The default audio mode: 8 kHz mono ulaw */
-struct audio_params audio_default =
+struct audio_params audio_default =
{ 8000, AUDIO_ENCODING_ULAW, 8, 1, 0, 1 };
struct cfattach audio_ca = {
@@ -204,16 +204,16 @@ struct cfdriver audio_cd = {
};
void filt_audiowdetach(struct knote *kn);
-int filt_audiowrite(struct knote *kn, long hint);
-
+int filt_audiowrite(struct knote *kn, long hint);
+
struct filterops audiowrite_filtops =
- { 1, NULL, filt_audiowdetach, filt_audiowrite};
+ { 1, NULL, filt_audiowdetach, filt_audiowrite};
void filt_audiordetach(struct knote *kn);
-int filt_audioread(struct knote *kn, long hint);
-
+int filt_audioread(struct knote *kn, long hint);
+
struct filterops audioread_filtops =
- { 1, NULL, filt_audiordetach, filt_audioread};
+ { 1, NULL, filt_audiordetach, filt_audioread};
int
audioprobe(parent, match, aux)
@@ -227,7 +227,7 @@ audioprobe(parent, match, aux)
{
struct audio_attach_args *sa = aux;
- DPRINTF(("audioprobe: type=%d sa=%p hw=%p\n",
+ DPRINTF(("audioprobe: type=%d sa=%p hw=%p\n",
sa->type, sa, sa->hwif));
return (sa->type == AUDIODEV_TYPE_AUDIO) ? 1 : 0;
}
@@ -265,7 +265,7 @@ audioattach(parent, self, aux)
printf("audio: missing method\n");
sc->hw_if = 0;
return;
- }
+ }
#endif
sc->hw_if = hwp;
@@ -285,7 +285,7 @@ audioattach(parent, self, aux)
printf("audio: could not allocate record buffer\n");
return;
}
-
+
/*
* Set default softc params
*/
@@ -325,11 +325,11 @@ audioattach(parent, self, aux)
break;
if (mi.type == AUDIO_MIXER_CLASS)
continue;
- au_check_ports(sc, &sc->sc_inports, &mi, iclass,
- AudioNsource, AudioNrecord, itable);
- au_check_ports(sc, &sc->sc_outports, &mi, oclass,
- AudioNoutput, AudioNmaster, otable);
- if (mi.mixer_class == oclass &&
+ au_check_ports(sc, &sc->sc_inports, &mi, iclass,
+ AudioNsource, AudioNrecord, itable);
+ au_check_ports(sc, &sc->sc_outports, &mi, oclass,
+ AudioNoutput, AudioNmaster, otable);
+ if (mi.mixer_class == oclass &&
strcmp(mi.label.name, AudioNmonitor) == 0)
sc->sc_monitor_port = mi.index;
}
@@ -339,63 +339,63 @@ audioattach(parent, self, aux)
int
audioactivate(self, act)
- struct device *self;
- enum devact act;
+ struct device *self;
+ enum devact act;
{
- struct audio_softc *sc = (struct audio_softc *)self;
+ struct audio_softc *sc = (struct audio_softc *)self;
- switch (act) {
- case DVACT_ACTIVATE:
- return (EOPNOTSUPP);
- break;
+ switch (act) {
+ case DVACT_ACTIVATE:
+ return (EOPNOTSUPP);
+ break;
- case DVACT_DEACTIVATE:
- sc->sc_dying = 1;
- break;
- }
- return (0);
+ case DVACT_DEACTIVATE:
+ sc->sc_dying = 1;
+ break;
+ }
+ return (0);
}
int
audiodetach(self, flags)
- struct device *self;
- int flags;
+ struct device *self;
+ int flags;
{
- struct audio_softc *sc = (struct audio_softc *)self;
- int maj, mn;
- int s;
+ struct audio_softc *sc = (struct audio_softc *)self;
+ int maj, mn;
+ int s;
- DPRINTF(("audio_detach: sc=%p flags=%d\n", sc, flags));
+ DPRINTF(("audio_detach: sc=%p flags=%d\n", sc, flags));
- sc->sc_dying = 1;
+ sc->sc_dying = 1;
- wakeup(&sc->sc_wchan);
- wakeup(&sc->sc_rchan);
- s = splaudio();
- if (--sc->sc_refcnt >= 0) {
- if (tsleep(&sc->sc_refcnt, PZERO, "auddet", hz * 120))
- printf("audiodetach: %s didn't detach\n",
- sc->dev.dv_xname);
- }
- splx(s);
+ wakeup(&sc->sc_wchan);
+ wakeup(&sc->sc_rchan);
+ s = splaudio();
+ if (--sc->sc_refcnt >= 0) {
+ if (tsleep(&sc->sc_refcnt, PZERO, "auddet", hz * 120))
+ printf("audiodetach: %s didn't detach\n",
+ sc->dev.dv_xname);
+ }
+ splx(s);
- /* free resources */
- audio_free_ring(sc, &sc->sc_pr);
- audio_free_ring(sc, &sc->sc_rr);
+ /* free resources */
+ audio_free_ring(sc, &sc->sc_pr);
+ audio_free_ring(sc, &sc->sc_rr);
- /* locate the major number */
- for (maj = 0; maj < nchrdev; maj++)
- if (cdevsw[maj].d_open == audioopen)
- break;
+ /* locate the major number */
+ for (maj = 0; maj < nchrdev; maj++)
+ if (cdevsw[maj].d_open == audioopen)
+ break;
- /* Nuke the vnodes for any open instances (calls close). */
- mn = self->dv_unit;
- vdevgone(maj, mn | SOUND_DEVICE, mn | SOUND_DEVICE, VCHR);
- vdevgone(maj, mn | AUDIO_DEVICE, mn | AUDIO_DEVICE, VCHR);
- vdevgone(maj, mn | AUDIOCTL_DEVICE, mn | AUDIOCTL_DEVICE, VCHR);
- vdevgone(maj, mn | MIXER_DEVICE, mn | MIXER_DEVICE, VCHR);
+ /* Nuke the vnodes for any open instances (calls close). */
+ mn = self->dv_unit;
+ vdevgone(maj, mn | SOUND_DEVICE, mn | SOUND_DEVICE, VCHR);
+ vdevgone(maj, mn | AUDIO_DEVICE, mn | AUDIO_DEVICE, VCHR);
+ vdevgone(maj, mn | AUDIOCTL_DEVICE, mn | AUDIOCTL_DEVICE, VCHR);
+ vdevgone(maj, mn | MIXER_DEVICE, mn | MIXER_DEVICE, VCHR);
- return (0);
+ return (0);
}
int
@@ -405,7 +405,7 @@ au_portof(sc, name)
{
mixer_devinfo_t mi;
- for(mi.index = 0;
+ for(mi.index = 0;
sc->hw_if->query_devinfo(sc->hw_hdl, &mi) == 0;
mi.index++)
if (strcmp(mi.label.name, name) == 0)
@@ -438,10 +438,10 @@ au_check_ports(sc, ports, mi, cls, name, mname, tbl)
for(i = 0; tbl[i].name; i++) {
for(j = 0; j < mi->un.e.num_mem; j++) {
if (strcmp(mi->un.e.member[j].label.name,
- tbl[i].name) == 0) {
+ tbl[i].name) == 0) {
ports->aumask[ports->nports] = tbl[i].mask;
ports->misel [ports->nports] = mi->un.e.member[j].ord;
- ports->miport[ports->nports++] =
+ ports->miport[ports->nports++] =
au_portof(sc, mi->un.e.member[j].label.name);
ports->allports |= tbl[i].mask;
}
@@ -453,10 +453,10 @@ au_check_ports(sc, ports, mi, cls, name, mname, tbl)
for(i = 0; tbl[i].name; i++) {
for(j = 0; j < mi->un.s.num_mem; j++) {
if (strcmp(mi->un.s.member[j].label.name,
- tbl[i].name) == 0) {
+ tbl[i].name) == 0) {
ports->aumask[ports->nports] = tbl[i].mask;
ports->misel [ports->nports] = mi->un.s.member[j].mask;
- ports->miport[ports->nports++] =
+ ports->miport[ports->nports++] =
au_portof(sc, mi->un.s.member[j].label.name);
ports->allports |= tbl[i].mask;
}
@@ -479,7 +479,7 @@ audio_attach_mi(ahwp, hdlp, dev)
#ifdef DIAGNOSTIC
if (ahwp == NULL) {
- printf ("audio_attach_mi: NULL\n");
+ printf ("audio_attach_mi: NULL\n");
return 0;
}
#endif
@@ -498,7 +498,7 @@ audioprint(aux, pnp)
{
struct audio_attach_args *arg = aux;
const char *type;
-
+
if (pnp != NULL) {
switch (arg->type) {
case AUDIODEV_TYPE_AUDIO:
@@ -543,7 +543,7 @@ audio_print_params(s, p)
struct audio_params *p;
{
printf("audio: %s sr=%ld, enc=%d, chan=%d, prec=%d\n", s,
- p->sample_rate, p->encoding, p->channels, p->precision);
+ p->sample_rate, p->encoding, p->channels, p->precision);
}
#endif
@@ -566,7 +566,7 @@ audio_alloc_ring(sc, r, direction, bufsize)
bufsize = hw->round_buffersize(hdl, direction, bufsize);
r->bufsize = bufsize;
if (hw->allocm)
- r->start = hw->allocm(hdl, direction, r->bufsize, M_DEVBUF,
+ r->start = hw->allocm(hdl, direction, r->bufsize, M_DEVBUF,
M_WAITOK);
else
r->start = malloc(bufsize, M_DEVBUF, M_WAITOK);
@@ -597,12 +597,12 @@ audioopen(dev, flags, ifmt, p)
struct audio_softc *sc;
int error;
- if (unit >= audio_cd.cd_ndevs ||
+ if (unit >= audio_cd.cd_ndevs ||
(sc = audio_cd.cd_devs[unit]) == NULL)
return ENXIO;
if (sc->sc_dying)
- return (EIO);
+ return (EIO);
if (!sc->hw_if)
return (ENXIO);
@@ -615,7 +615,7 @@ audioopen(dev, flags, ifmt, p)
error = audio_open(dev, sc, flags, ifmt, p);
break;
case MIXER_DEVICE:
- error = mixer_open(dev, sc, flags, ifmt, p);
+ error = mixer_open(dev, sc, flags, ifmt, p);
break;
default:
error = ENXIO;
@@ -623,7 +623,7 @@ audioopen(dev, flags, ifmt, p)
}
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (error);
}
@@ -658,12 +658,12 @@ audioread(dev, uio, ioflag)
struct audio_softc *sc;
int error;
- if (unit >= audio_cd.cd_ndevs ||
- (sc = audio_cd.cd_devs[unit]) == NULL)
- return ENXIO;
+ if (unit >= audio_cd.cd_ndevs ||
+ (sc = audio_cd.cd_devs[unit]) == NULL)
+ return ENXIO;
- if (sc->sc_dying)
- return (EIO);
+ if (sc->sc_dying)
+ return (EIO);
sc->sc_refcnt ++;
switch (AUDIODEV(dev)) {
@@ -679,9 +679,9 @@ audioread(dev, uio, ioflag)
error = ENXIO;
break;
}
-
+
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (error);
}
@@ -696,17 +696,17 @@ audiowrite(dev, uio, ioflag)
int error;
if (unit >= audio_cd.cd_ndevs ||
- (sc = audio_cd.cd_devs[unit]) == NULL)
+ (sc = audio_cd.cd_devs[unit]) == NULL)
return ENXIO;
- if (sc->sc_dying)
- return (EIO);
+ if (sc->sc_dying)
+ return (EIO);
sc->sc_refcnt ++;
switch (AUDIODEV(dev)) {
case SOUND_DEVICE:
case AUDIO_DEVICE:
- error = audio_write(dev, uio, ioflag);
+ error = audio_write(dev, uio, ioflag);
break;
case AUDIOCTL_DEVICE:
case MIXER_DEVICE:
@@ -716,9 +716,9 @@ audiowrite(dev, uio, ioflag)
error = ENXIO;
break;
}
-
+
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (error);
}
@@ -734,12 +734,12 @@ audioioctl(dev, cmd, addr, flag, p)
struct audio_softc *sc;
int error;
- if (unit >= audio_cd.cd_ndevs ||
- (sc = audio_cd.cd_devs[unit]) == NULL)
- return ENXIO;
+ if (unit >= audio_cd.cd_ndevs ||
+ (sc = audio_cd.cd_devs[unit]) == NULL)
+ return ENXIO;
- if (sc->sc_dying)
- return (EIO);
+ if (sc->sc_dying)
+ return (EIO);
sc->sc_refcnt ++;
switch (AUDIODEV(dev)) {
@@ -755,9 +755,9 @@ audioioctl(dev, cmd, addr, flag, p)
error = ENXIO;
break;
}
-
+
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (error);
}
@@ -767,16 +767,16 @@ audioselect(dev, events, p)
int events;
struct proc *p;
{
- int unit = AUDIOUNIT(dev);
- struct audio_softc *sc;
+ int unit = AUDIOUNIT(dev);
+ struct audio_softc *sc;
int error;
- if (unit >= audio_cd.cd_ndevs ||
- (sc = audio_cd.cd_devs[unit]) == NULL)
- return ENXIO;
+ if (unit >= audio_cd.cd_ndevs ||
+ (sc = audio_cd.cd_devs[unit]) == NULL)
+ return ENXIO;
- if (sc->sc_dying)
- return (EIO);
+ if (sc->sc_dying)
+ return (EIO);
sc->sc_refcnt ++;
switch (AUDIODEV(dev)) {
@@ -792,9 +792,9 @@ audioselect(dev, events, p)
error = 0;
break;
}
-
+
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (error);
}
@@ -804,16 +804,16 @@ audiommap(dev, off, prot)
off_t off;
int prot;
{
- int unit = AUDIOUNIT(dev);
- struct audio_softc *sc;
+ int unit = AUDIOUNIT(dev);
+ struct audio_softc *sc;
int ret;
- if (unit >= audio_cd.cd_ndevs ||
- (sc = audio_cd.cd_devs[unit]) == NULL)
- return (-1);
+ if (unit >= audio_cd.cd_ndevs ||
+ (sc = audio_cd.cd_devs[unit]) == NULL)
+ return (-1);
- if (sc->sc_dying)
- return (-1);
+ if (sc->sc_dying)
+ return (-1);
sc->sc_refcnt ++;
switch (AUDIODEV(dev)) {
@@ -831,7 +831,7 @@ audiommap(dev, off, prot)
}
if (--sc->sc_refcnt < 0)
- wakeup(&sc->sc_refcnt);
+ wakeup(&sc->sc_refcnt);
return (ret);
}
@@ -878,7 +878,7 @@ audio_initbufs(sc)
audio_init_ringbuffer(&sc->sc_rr);
if (hw->init_input && (sc->sc_mode & AUMODE_RECORD)) {
error = hw->init_input(sc->hw_hdl, sc->sc_rr.start,
- sc->sc_rr.end - sc->sc_rr.start);
+ sc->sc_rr.end - sc->sc_rr.start);
if (error)
return error;
}
@@ -896,19 +896,19 @@ audio_initbufs(sc)
#define double u_long
sc->sc_pnintr = 0;
sc->sc_pblktime = (u_long)(
- (double)sc->sc_pr.blksize * 100000 /
- (double)(sc->sc_pparams.precision / NBBY *
- sc->sc_pparams.channels *
- sc->sc_pparams.sample_rate)) * 10;
- DPRINTF(("audio: play blktime = %lu for %d\n",
+ (double)sc->sc_pr.blksize * 100000 /
+ (double)(sc->sc_pparams.precision / NBBY *
+ sc->sc_pparams.channels *
+ sc->sc_pparams.sample_rate)) * 10;
+ DPRINTF(("audio: play blktime = %lu for %d\n",
sc->sc_pblktime, sc->sc_pr.blksize));
sc->sc_rnintr = 0;
sc->sc_rblktime = (u_long)(
- (double)sc->sc_rr.blksize * 100000 /
- (double)(sc->sc_rparams.precision / NBBY *
- sc->sc_rparams.channels *
- sc->sc_rparams.sample_rate)) * 10;
- DPRINTF(("audio: record blktime = %lu for %d\n",
+ (double)sc->sc_rr.blksize * 100000 /
+ (double)(sc->sc_rparams.precision / NBBY *
+ sc->sc_rparams.channels *
+ sc->sc_rparams.sample_rate)) * 10;
+ DPRINTF(("audio: record blktime = %lu for %d\n",
sc->sc_rblktime, sc->sc_rr.blksize));
#undef double
#endif
@@ -939,8 +939,8 @@ audio_sleep_timo(chan, label, timo)
if (!label)
label = "audio";
- DPRINTFN(3, ("audio_sleep_timo: chan=%p, label=%s, timo=%d\n",
- chan, label, timo));
+ DPRINTFN(3, ("audio_sleep_timo: chan=%p, label=%s, timo=%d\n",
+ chan, label, timo));
*chan = 1;
st = tsleep(chan, PWAIT | PCATCH, label, timo);
*chan = 0;
@@ -1048,7 +1048,7 @@ audio_open(dev, sc, flags, ifmt, p)
ai.record.channels = sc->sc_rparams.channels;
ai.record.precision = sc->sc_rparams.precision;
ai.play.sample_rate = sc->sc_pparams.sample_rate;
- ai.play.encoding = sc->sc_pparams.encoding;
+ ai.play.encoding = sc->sc_pparams.encoding;
ai.play.channels = sc->sc_pparams.channels;
ai.play.precision = sc->sc_pparams.precision;
ai.mode = mode;
@@ -1058,7 +1058,7 @@ audio_open(dev, sc, flags, ifmt, p)
goto bad;
DPRINTF(("audio_open: done sc_mode = 0x%x\n", sc->sc_mode));
-
+
return 0;
bad:
@@ -1107,8 +1107,8 @@ audio_drain(sc)
struct audio_ringbuffer *cb = &sc->sc_pr;
int s;
- DPRINTF(("audio_drain: enter busy=%d used=%d\n",
- sc->sc_pbus, sc->sc_pr.used));
+ DPRINTF(("audio_drain: enter busy=%d used=%d\n",
+ sc->sc_pbus, sc->sc_pr.used));
if (sc->sc_pr.mmapped || sc->sc_pr.used <= 0)
return 0;
if (!sc->sc_pbus) {
@@ -1131,7 +1131,7 @@ audio_drain(sc)
if (error)
return error;
}
- /*
+ /*
* Play until a silence block has been played, then we
* know all has been drained.
* XXX This should be done some other way to avoid
@@ -1154,7 +1154,7 @@ audio_drain(sc)
*/
error = audio_sleep_timo(&sc->sc_wchan, "aud_dr", 30*hz);
if (sc->sc_dying)
- error = EIO;
+ error = EIO;
}
splx(s);
return error;
@@ -1178,9 +1178,9 @@ audio_close(dev, flags, ifmt, p)
DPRINTF(("audio_close: unit=%d flags=0x%x\n", unit, flags));
s = splaudio();
- /* Stop recording. */
+ /* Stop recording. */
if ((flags & FREAD) && sc->sc_rbus) {
- /*
+ /*
* XXX Some drivers (e.g. SB) use the same routine
* to halt input and output so don't halt input if
* in full duplex mode. These drivers should be fixed.
@@ -1203,9 +1203,9 @@ audio_close(dev, flags, ifmt, p)
sc->hw_if->halt_output(sc->hw_hdl);
sc->sc_pbus = 0;
}
-
+
hw->close(sc->hw_hdl);
-
+
/*
* If flags has neither read nor write then reset both
* directions. Encountered when someone runs revoke(2).
@@ -1243,8 +1243,8 @@ audio_read(dev, uio, ioflag)
if (cb->mmapped)
return EINVAL;
- DPRINTFN(1,("audio_read: cc=%d mode=%d\n",
- uio->uio_resid, sc->sc_mode));
+ DPRINTFN(1,("audio_read: cc=%d mode=%d\n",
+ uio->uio_resid, sc->sc_mode));
error = 0;
/*
@@ -1259,7 +1259,7 @@ audio_read(dev, uio, ioflag)
cc = sc->sc_pr.stamp - sc->sc_wstamp;
if (cc > 0)
break;
- DPRINTF(("audio_read: stamp=%lu, wstamp=%lu\n",
+ DPRINTF(("audio_read: stamp=%lu, wstamp=%lu\n",
sc->sc_pr.stamp, sc->sc_wstamp));
if (ioflag & IO_NDELAY) {
splx(s);
@@ -1267,7 +1267,7 @@ audio_read(dev, uio, ioflag)
}
error = audio_sleep(&sc->sc_rchan, "aud_hr");
if (sc->sc_dying)
- error = EIO;
+ error = EIO;
if (error) {
splx(s);
return error;
@@ -1280,7 +1280,7 @@ audio_read(dev, uio, ioflag)
DPRINTFN(1, ("audio_read: reading in write mode, cc=%d\n", cc));
error = audio_silence_copyout(sc, cc, uio);
sc->sc_wstamp += cc;
- }
+ }
return (error);
}
while (uio->uio_resid > 0 && !error) {
@@ -1300,7 +1300,7 @@ audio_read(dev, uio, ioflag)
DPRINTFN(2, ("audio_read: sleep used=%d\n", cb->used));
error = audio_sleep(&sc->sc_rchan, "aud_rd");
if (sc->sc_dying)
- error = EIO;
+ error = EIO;
if (error) {
splx(s);
return error;
@@ -1314,7 +1314,7 @@ audio_read(dev, uio, ioflag)
n = cb->end - outp;
if (n < cc)
cc = n; /* don't read beyond end of buffer */
-
+
if (uio->uio_resid < cc)
cc = uio->uio_resid; /* and no more than we want */
@@ -1362,7 +1362,7 @@ audio_calc_blksize(sc, mode)
struct audio_hw_if *hw = sc->hw_if;
struct audio_params *parm;
struct audio_ringbuffer *rb;
- int bs;
+ int bs;
if (sc->sc_blkset)
return;
@@ -1374,7 +1374,7 @@ audio_calc_blksize(sc, mode)
parm = &sc->sc_rparams;
rb = &sc->sc_rr;
}
-
+
bs = parm->sample_rate * audio_blk_ms / 1000 *
parm->channels * parm->precision / NBBY *
parm->factor;
@@ -1383,22 +1383,22 @@ audio_calc_blksize(sc, mode)
bs = hw->round_blocksize(sc->hw_hdl, bs);
rb->blksize = bs;
- DPRINTF(("audio_calc_blksize: %s blksize=%d\n",
+ DPRINTF(("audio_calc_blksize: %s blksize=%d\n",
mode == AUMODE_PLAY ? "play" : "record", bs));
}
void
audio_fill_silence(params, p, n)
struct audio_params *params;
- u_char *p;
- int n;
+ u_char *p;
+ int n;
{
u_char auzero0, auzero1 = 0; /* initialize to please gcc */
int nfill = 1;
switch (params->encoding) {
case AUDIO_ENCODING_ULAW:
- auzero0 = 0x7f;
+ auzero0 = 0x7f;
break;
case AUDIO_ENCODING_ALAW:
auzero0 = 0x55;
@@ -1458,12 +1458,12 @@ audio_silence_copyout(sc, n, uio)
audio_fill_silence(&sc->sc_rparams, zerobuf, sizeof zerobuf);
error = 0;
- while (n > 0 && uio->uio_resid > 0 && !error) {
+ while (n > 0 && uio->uio_resid > 0 && !error) {
k = min(n, min(uio->uio_resid, sizeof zerobuf));
error = uiomove(zerobuf, k, uio);
n -= k;
}
- return (error);
+ return (error);
}
int
@@ -1511,15 +1511,15 @@ audio_write(dev, uio, ioflag)
}
DPRINTFN(1, ("audio_write: sr=%ld, enc=%d, prec=%d, chan=%d, sw=%p, fact=%d\n",
- sc->sc_pparams.sample_rate, sc->sc_pparams.encoding,
- sc->sc_pparams.precision, sc->sc_pparams.channels,
- sc->sc_pparams.sw_code, sc->sc_pparams.factor));
+ sc->sc_pparams.sample_rate, sc->sc_pparams.encoding,
+ sc->sc_pparams.precision, sc->sc_pparams.channels,
+ sc->sc_pparams.sw_code, sc->sc_pparams.factor));
error = 0;
while (uio->uio_resid > 0 && !error) {
s = splaudio();
while (cb->used >= cb->usedhigh) {
- DPRINTFN(2, ("audio_write: sleep used=%d lowat=%d hiwat=%d\n",
+ DPRINTFN(2, ("audio_write: sleep used=%d lowat=%d hiwat=%d\n",
cb->used, cb->usedlow, cb->usedhigh));
if (ioflag & IO_NDELAY) {
splx(s);
@@ -1527,7 +1527,7 @@ audio_write(dev, uio, ioflag)
}
error = audio_sleep(&sc->sc_wchan, "aud_wr");
if (sc->sc_dying)
- error = EIO;
+ error = EIO;
if (error) {
splx(s);
return error;
@@ -1537,7 +1537,7 @@ audio_write(dev, uio, ioflag)
inp = cb->inp;
cb->copying = 1;
splx(s);
- cc = cb->usedhigh - used; /* maximum to write */
+ cc = cb->usedhigh - used; /* maximum to write */
n = cb->end - inp;
if (sc->sc_pparams.factor != 1) {
/* Compensate for software coding expansion factor. */
@@ -1547,31 +1547,31 @@ audio_write(dev, uio, ioflag)
if (n < cc)
cc = n; /* don't write beyond end of buffer */
if (uio->uio_resid < cc)
- cc = uio->uio_resid; /* and no more than we have */
+ cc = uio->uio_resid; /* and no more than we have */
#ifdef DIAGNOSTIC
- /*
+ /*
* This should never happen since the block size and and
- * block pointers are always nicely aligned.
+ * block pointers are always nicely aligned.
*/
if (cc == 0) {
printf("audio_write: cc == 0, swcode=%p, factor=%d\n",
- sc->sc_pparams.sw_code, sc->sc_pparams.factor);
+ sc->sc_pparams.sw_code, sc->sc_pparams.factor);
cb->copying = 0;
return EINVAL;
}
#endif
- DPRINTFN(1, ("audio_write: uiomove cc=%d inp=%p, left=%d\n",
- cc, inp, uio->uio_resid));
+ DPRINTFN(1, ("audio_write: uiomove cc=%d inp=%p, left=%d\n",
+ cc, inp, uio->uio_resid));
n = uio->uio_resid;
error = uiomove(inp, cc, uio);
cc = n - uio->uio_resid; /* number of bytes actually moved */
#ifdef AUDIO_DEBUG
if (error)
- printf("audio_write:(1) uiomove failed %d; cc=%d inp=%p\n",
- error, cc, inp);
+ printf("audio_write:(1) uiomove failed %d; cc=%d inp=%p\n",
+ error, cc, inp);
#endif
- /*
+ /*
* Continue even if uiomove() failed because we may have
* gotten a partial block.
*/
@@ -1601,7 +1601,7 @@ audio_write(dev, uio, ioflag)
* be padded.
*/
if (cb->needfill &&
- (inp - cb->start) / cb->blksize ==
+ (inp - cb->start) / cb->blksize ==
(einp - cb->start) / cb->blksize) {
/* Figure out how many bytes there is to a block boundary. */
cc = cb->blksize - (einp - cb->start) % cb->blksize;
@@ -1640,10 +1640,10 @@ audio_ioctl(dev, cmd, addr, flag, p)
struct audio_hw_if *hw = sc->hw_if;
struct audio_offset *ao;
int error = 0, s, offs, fd;
- int rbus, pbus;
+ int rbus, pbus;
DPRINTF(("audio_ioctl(%d,'%c',%d)\n",
- IOCPARM_LEN(cmd), IOCGROUP(cmd), cmd&0xff));
+ IOCPARM_LEN(cmd), IOCGROUP(cmd), cmd&0xff));
switch (cmd) {
case FIONBIO:
/* All handled in the upper FS layer. */
@@ -1661,8 +1661,8 @@ audio_ioctl(dev, cmd, addr, flag, p)
case AUDIO_FLUSH:
DPRINTF(("AUDIO_FLUSH\n"));
- rbus = sc->sc_rbus;
- pbus = sc->sc_pbus;
+ rbus = sc->sc_rbus;
+ pbus = sc->sc_pbus;
audio_clear(sc);
s = splaudio();
error = audio_initbufs(sc);
@@ -1747,7 +1747,7 @@ audio_ioctl(dev, cmd, addr, flag, p)
DPRINTF(("AUDIO_GETDEV\n"));
error = hw->getdev(sc->hw_hdl, (audio_device_t *)addr);
break;
-
+
case AUDIO_GETENC:
DPRINTF(("AUDIO_GETENC\n"));
/* Pass read/write info down to query_encoding */
@@ -1789,7 +1789,7 @@ audio_ioctl(dev, cmd, addr, flag, p)
break;
}
DPRINTF(("audio_ioctl(%d,'%c',%d) result %d\n",
- IOCPARM_LEN(cmd), IOCGROUP(cmd), cmd&0xff, error));
+ IOCPARM_LEN(cmd), IOCGROUP(cmd), cmd&0xff, error));
return (error);
}
@@ -1912,9 +1912,9 @@ audiostartr(sc)
struct audio_softc *sc;
{
int error;
-
- DPRINTF(("audiostartr: start=%p used=%d(hi=%d) mmapped=%d\n",
- sc->sc_rr.start, sc->sc_rr.used, sc->sc_rr.usedhigh,
+
+ DPRINTF(("audiostartr: start=%p used=%d(hi=%d) mmapped=%d\n",
+ sc->sc_rr.start, sc->sc_rr.used, sc->sc_rr.usedhigh,
sc->sc_rr.mmapped));
if (sc->hw_if->trigger_input)
@@ -1922,7 +1922,7 @@ audiostartr(sc)
sc->sc_rr.end, sc->sc_rr.blksize,
audio_rint, (void *)sc, &sc->sc_rparams);
else
- error = sc->hw_if->start_input(sc->hw_hdl, sc->sc_rr.start,
+ error = sc->hw_if->start_input(sc->hw_hdl, sc->sc_rr.start,
sc->sc_rr.blksize, audio_rint, (void *)sc);
if (error) {
DPRINTF(("audiostartr failed: %d\n", error));
@@ -1937,11 +1937,11 @@ audiostartp(sc)
struct audio_softc *sc;
{
int error;
-
- DPRINTF(("audiostartp: start=%p used=%d(hi=%d) mmapped=%d\n",
+
+ DPRINTF(("audiostartp: start=%p used=%d(hi=%d) mmapped=%d\n",
sc->sc_pr.start, sc->sc_pr.used, sc->sc_pr.usedhigh,
sc->sc_pr.mmapped));
-
+
if (!sc->sc_pr.mmapped && sc->sc_pr.used < sc->sc_pr.blksize)
return 0;
@@ -1954,7 +1954,7 @@ audiostartp(sc)
sc->sc_pr.blksize, audio_pint, (void *)sc);
if (error) {
DPRINTF(("audiostartp failed: %d\n", error));
- return error;
+ return error;
}
sc->sc_pbus = 1;
return 0;
@@ -1995,18 +1995,18 @@ audio_pint_silence(sc, cb, inp, cc)
s <= q && q <= e)) {
if (s <= p)
sc->sc_sil_count = max(sc->sc_sil_count, q-s);
- DPRINTFN(5, ("audio_pint_silence: fill cc=%d inp=%p, count=%d size=%d\n",
- cc, inp, sc->sc_sil_count, (int)(cb->end - cb->start)));
+ DPRINTFN(5, ("audio_pint_silence: fill cc=%d inp=%p, count=%d size=%d\n",
+ cc, inp, sc->sc_sil_count, (int)(cb->end - cb->start)));
audio_fill_silence(&sc->sc_pparams, inp, cc);
} else {
DPRINTFN(5, ("audio_pint_silence: already silent cc=%d inp=%p\n", cc, inp));
-
+
}
} else {
sc->sc_sil_start = inp;
sc->sc_sil_count = cc;
- DPRINTFN(5, ("audio_pint_silence: start fill %p %d\n",
- inp, cc));
+ DPRINTFN(5, ("audio_pint_silence: start fill %p %d\n",
+ inp, cc));
audio_fill_silence(&sc->sc_pparams, inp, cc);
}
}
@@ -2029,8 +2029,8 @@ audio_pint(v)
int blksize;
int error;
- if (!sc->sc_open)
- return; /* ignore interrupt if not open */
+ if (!sc->sc_open)
+ return; /* ignore interrupt if not open */
blksize = cb->blksize;
@@ -2041,14 +2041,14 @@ audio_pint(v)
cb->outp = cb->start;
cb->stamp += blksize / sc->sc_pparams.factor;
if (cb->mmapped) {
- DPRINTFN(5, ("audio_pint: mmapped outp=%p cc=%d inp=%p\n",
- cb->outp, blksize, cb->inp));
+ DPRINTFN(5, ("audio_pint: mmapped outp=%p cc=%d inp=%p\n",
+ cb->outp, blksize, cb->inp));
if (!hw->trigger_output)
(void)hw->start_output(sc->hw_hdl, cb->outp,
blksize, audio_pint, (void *)sc);
return;
}
-
+
#ifdef AUDIO_INTR_TIME
{
struct timeval tv;
@@ -2059,13 +2059,13 @@ audio_pint(v)
long lastdelta, totdelta;
lastdelta = t - sc->sc_plastintr - sc->sc_pblktime;
if (lastdelta > sc->sc_pblktime / 3) {
- printf("audio: play interrupt(%d) off relative by %ld us (%lu)\n",
- sc->sc_pnintr, lastdelta, sc->sc_pblktime);
+ printf("audio: play interrupt(%d) off relative by %ld us (%lu)\n",
+ sc->sc_pnintr, lastdelta, sc->sc_pblktime);
}
totdelta = t - sc->sc_pfirstintr - sc->sc_pblktime * sc->sc_pnintr;
if (totdelta > sc->sc_pblktime) {
- printf("audio: play interrupt(%d) off absolute by %ld us (%lu) (LOST)\n",
- sc->sc_pnintr, totdelta, sc->sc_pblktime);
+ printf("audio: play interrupt(%d) off absolute by %ld us (%lu) (LOST)\n",
+ sc->sc_pnintr, totdelta, sc->sc_pblktime);
sc->sc_pnintr++; /* avoid repeated messages */
}
} else
@@ -2117,7 +2117,7 @@ audio_pint(v)
}
DPRINTFN(2, ("audio_pint: mode=%d pause=%d used=%d lowat=%d\n",
- sc->sc_mode, cb->pause, cb->used, cb->usedlow));
+ sc->sc_mode, cb->pause, cb->used, cb->usedlow));
if ((sc->sc_mode & AUMODE_PLAY) && !cb->pause &&
cb->used <= cb->usedlow)
audio_selwakeup(sc, 1);
@@ -2142,8 +2142,8 @@ audio_rint(v)
int blksize;
int error;
- if (!sc->sc_open)
- return; /* ignore interrupt if not open */
+ if (!sc->sc_open)
+ return; /* ignore interrupt if not open */
add_audio_randomness((long)cb);
@@ -2154,8 +2154,8 @@ audio_rint(v)
cb->inp = cb->start;
cb->stamp += blksize;
if (cb->mmapped) {
- DPRINTFN(2, ("audio_rint: mmapped inp=%p cc=%d\n",
- cb->inp, blksize));
+ DPRINTFN(2, ("audio_rint: mmapped inp=%p cc=%d\n",
+ cb->inp, blksize));
if (!hw->trigger_input)
(void)hw->start_input(sc->hw_hdl, cb->inp, blksize,
audio_rint, (void *)sc);
@@ -2172,14 +2172,14 @@ audio_rint(v)
long lastdelta, totdelta;
lastdelta = t - sc->sc_rlastintr - sc->sc_rblktime;
if (lastdelta > sc->sc_rblktime / 5) {
- printf("audio: record interrupt(%d) off relative by %ld us (%lu)\n",
- sc->sc_rnintr, lastdelta, sc->sc_rblktime);
+ printf("audio: record interrupt(%d) off relative by %ld us (%lu)\n",
+ sc->sc_rnintr, lastdelta, sc->sc_rblktime);
}
totdelta = t - sc->sc_rfirstintr - sc->sc_rblktime * sc->sc_rnintr;
if (totdelta > sc->sc_rblktime / 2) {
sc->sc_rnintr++;
- printf("audio: record interrupt(%d) off absolute by %ld us (%lu)\n",
- sc->sc_rnintr, totdelta, sc->sc_rblktime);
+ printf("audio: record interrupt(%d) off absolute by %ld us (%lu)\n",
+ sc->sc_rnintr, totdelta, sc->sc_rblktime);
sc->sc_rnintr++; /* avoid repeated messages */
}
} else
@@ -2202,8 +2202,8 @@ audio_rint(v)
cb->used -= blksize;
}
- DPRINTFN(2, ("audio_rint: inp=%p cc=%d used=%d\n",
- cb->inp, blksize, cb->used));
+ DPRINTFN(2, ("audio_rint: inp=%p cc=%d used=%d\n",
+ cb->inp, blksize, cb->used));
if (!hw->trigger_input) {
error = hw->start_input(sc->hw_hdl, cb->inp, blksize,
audio_rint, (void *)sc);
@@ -2419,7 +2419,7 @@ au_get_gain(sc, ports, pgain, pbalance)
if (ports->misel[i] == ct.un.ord) {
ct.dev = ports->miport[i];
if (ct.dev == -1 ||
- au_get_lr_value(sc, &ct,
+ au_get_lr_value(sc, &ct,
&lgain, &rgain))
goto usemaster;
else
@@ -2495,7 +2495,7 @@ au_set_port(sc, ports, port)
ct.type = AUDIO_MIXER_SET;
ct.un.mask = 0;
for(i = 0; i < ports->nports; i++)
- if (ports->aumask[i] & port)
+ if (ports->aumask[i] & port)
ct.un.mask |= ports->misel[i];
if (port != 0 && ct.un.mask == 0)
error = EINVAL;
@@ -2551,7 +2551,7 @@ audiosetinfo(sc, ai)
int rbus, pbus;
u_int gain;
u_char balance;
-
+
if (hw == 0) /* HW has not attached */
return(ENXIO);
@@ -2575,7 +2575,7 @@ audiosetinfo(sc, ai)
if (p->encoding != ~0) {
pp.encoding = p->encoding;
np++;
- }
+ }
if (r->encoding != ~0) {
rp.encoding = r->encoding;
nr++;
@@ -2709,7 +2709,7 @@ audiosetinfo(sc, ai)
if (error)
return(error);
}
-
+
if (p->balance != (u_char)~0) {
au_get_gain(sc, &sc->sc_outports, &gain, &balance);
error = au_set_gain(sc, &sc->sc_outports, gain, p->balance);
@@ -2726,7 +2726,7 @@ audiosetinfo(sc, ai)
if (ai->monitor_gain != ~0 &&
sc->sc_monitor_port != -1) {
mixer_ctrl_t ct;
-
+
ct.dev = sc->sc_monitor_port;
ct.type = AUDIO_MIXER_VALUE;
ct.un.value.num_channels = 1;
@@ -2799,7 +2799,7 @@ audiosetinfo(sc, ai)
if ((sc->sc_mode & AUMODE_PLAY) &&
pbus && !sc->sc_pbus)
error = audiostartp(sc);
- if (!error &&
+ if (!error &&
(sc->sc_mode & AUMODE_RECORD) &&
rbus && !sc->sc_rbus)
error = audiostartr(sc);
@@ -2808,7 +2808,7 @@ audiosetinfo(sc, ai)
if (error)
return error;
}
-
+
/* Change water marks after initializing the buffers. */
if (ai->hiwat != ~0) {
blks = ai->hiwat;
@@ -2839,10 +2839,10 @@ audiogetinfo(sc, ai)
{
struct audio_prinfo *r = &ai->record, *p = &ai->play;
struct audio_hw_if *hw = sc->hw_if;
-
+
if (hw == 0) /* HW has not attached */
return(ENXIO);
-
+
p->sample_rate = sc->sc_pparams.sample_rate;
r->sample_rate = sc->sc_rparams.sample_rate;
p->channels = sc->sc_pparams.channels;
@@ -2863,14 +2863,14 @@ audiogetinfo(sc, ai)
if (sc->sc_monitor_port != -1) {
mixer_ctrl_t ct;
-
+
ct.dev = sc->sc_monitor_port;
ct.type = AUDIO_MIXER_VALUE;
ct.un.value.num_channels = 1;
if (sc->hw_if->get_port(sc->hw_hdl, &ct))
ai->monitor_gain = 0;
else
- ai->monitor_gain =
+ ai->monitor_gain =
ct.un.value.level[AUDIO_MIXER_LEVEL_MONO];
} else
ai->monitor_gain = 0;
@@ -2971,7 +2971,7 @@ mixer_close(dev, flags, ifmt, p)
struct audio_softc *sc = audio_cd.cd_devs[unit];
DPRINTF(("mixer_close: unit %d\n", AUDIOUNIT(dev)));
-
+
mixer_remove(sc, p);
return (0);
@@ -2999,7 +2999,7 @@ mixer_ioctl(dev, cmd, addr, flag, p)
if (*(int *)addr) {
struct mixer_asyncs *ma;
ma = malloc(sizeof (struct mixer_asyncs),
- M_DEVBUF, M_WAITOK);
+ M_DEVBUF, M_WAITOK);
ma->next = sc->sc_async_mixer;
ma->proc = p;
sc->sc_async_mixer = ma;
@@ -3011,7 +3011,7 @@ mixer_ioctl(dev, cmd, addr, flag, p)
DPRINTF(("AUDIO_GETDEV\n"));
error = hw->getdev(sc->hw_hdl, (audio_device_t *)addr);
break;
-
+
case AUDIO_MIXER_DEVINFO:
DPRINTF(("AUDIO_MIXER_DEVINFO\n"));
((mixer_devinfo_t *)addr)->un.v.delta = 0; /* default */
diff --git a/sys/dev/audio_if.h b/sys/dev/audio_if.h
index 90ae5a7ef2d..5620ff53e91 100644
--- a/sys/dev/audio_if.h
+++ b/sys/dev/audio_if.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: audio_if.h,v 1.19 2002/07/23 17:53:25 drahn Exp $ */
+/* $OpenBSD: audio_if.h,v 1.20 2002/08/26 16:20:04 mickey Exp $ */
/* $NetBSD: audio_if.h,v 1.24 1998/01/10 14:07:25 tv Exp $ */
/*
@@ -65,20 +65,20 @@ struct audio_hw_if {
int (*open)(void *, int); /* open hardware */
void (*close)(void *); /* close hardware */
int (*drain)(void *); /* Optional: drain buffers */
-
+
/* Encoding. */
/* XXX should we have separate in/out? */
int (*query_encoding)(void *, struct audio_encoding *);
/* Set the audio encoding parameters (record and play).
- * Return 0 on success, or an error code if the
+ * Return 0 on success, or an error code if the
* requested parameters are impossible.
* The values in the params struct may be changed (e.g. rounding
* to the nearest sample rate.)
*/
- int (*set_params)(void *, int, int, struct audio_params *,
+ int (*set_params)(void *, int, int, struct audio_params *,
struct audio_params *);
-
+
/* Hardware may have some say in the blocksize to choose */
int (*round_blocksize)(void *, int);
@@ -106,13 +106,13 @@ struct audio_hw_if {
int (*getdev)(void *, struct audio_device *);
int (*setfd)(void *, int);
-
+
/* Mixer (in/out ports) */
int (*set_port)(void *, struct mixer_ctrl *);
int (*get_port)(void *, struct mixer_ctrl *);
int (*query_devinfo)(void *, struct mixer_devinfo *);
-
+
/* Allocate/free memory for the ring buffer. Usually malloc/free. */
/* The _old interfaces have been deprecated and will not be
called in newer kernels if the new interfaces are present */
@@ -121,7 +121,7 @@ struct audio_hw_if {
size_t (*round_buffersize)(void *, int, size_t);
paddr_t (*mappage)(void *, void *, off_t, int);
- int (*get_props)(void *); /* device properties */
+ int (*get_props)(void *); /* device properties */
int (*trigger_output)(void *, void *, void *, int,
void (*)(void *), void *, struct audio_params *);
@@ -141,8 +141,7 @@ struct audio_attach_args {
#define AUDIODEV_TYPE_RADIO 4
/* Attach the MI driver(s) to the MD driver. */
-struct device *audio_attach_mi(struct audio_hw_if *, void *,
- struct device *);
+struct device *audio_attach_mi(struct audio_hw_if *, void *, struct device *);
int audioprint(void *, const char *);
/* Device identity flags */
diff --git a/sys/dev/audiovar.h b/sys/dev/audiovar.h
index d5a44d2987d..51e70d58472 100644
--- a/sys/dev/audiovar.h
+++ b/sys/dev/audiovar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: audiovar.h,v 1.8 2000/05/24 13:44:18 ho Exp $ */
+/* $OpenBSD: audiovar.h,v 1.9 2002/08/26 16:20:04 mickey Exp $ */
/* $NetBSD: audiovar.h,v 1.18 1998/03/03 09:16:16 augustss Exp $ */
/*
@@ -133,8 +133,8 @@ struct audio_softc {
struct au_mixer_ports sc_inports, sc_outports;
int sc_monitor_port;
- int sc_refcnt;
- int sc_dying;
+ int sc_refcnt;
+ int sc_dying;
#ifdef AUDIO_INTR_TIME
u_long sc_pfirstintr; /* first time we saw a play interrupt */