| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
ok ratchov@
|
| |
|
|
|
|
|
| |
methods from all audio drivers and from the audio_if structure as they
are never called.
|
|
|
|
|
|
|
|
|
| |
the kernel_lock), as we already do better conversions in
user-mode. Yet, no need for every single driver to fiddle with the
conversion code as they are done transparently by common MI code. With
help from armani and miod, support from mpi
ok armani@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
| |
autoconf(9)ally passed to the children of a device.
ok ratchov@
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
| |
|
|
|
|
|
|
|
|
| |
kernel resumes normal (non-cold, able to run processes, etc) operation.
Previously we were relying on specific DVACT_RESUME op's in drivers
creating callback/threads themselves, but that has become too common,
indicating the need for a built-in mechanism.
ok dlg kettenis, tested by a sufficient amount of people
|
|
|
|
|
|
|
|
| |
with the IPL_MPSAFE flag. In certain circumstances, this prevents
interrupt handlers from waiting the global kernel_lock possibly (hold
by slower code) to be released.
ok kettenis
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
structures (including sound-card registers) from concurent
access by syscall and interrupt code-paths. Since critical
sections remain the same, calls to splraise/spllower can be
safely replaced by calls to mtx_enter/mtx_leave with two
exceptions: (1) mutexes are not reentrant (the inner splraise
is thus removed), and (2) we're not allowed to sleep with a
mutex (either msleep is used or the mutex is released before
sleeping).
ok and help from kettenis, a lot of work from armani
|
|
|
|
| |
ok miod@
|
|
|
|
|
|
|
|
| |
that's ever used it, and it's long since been changed to use
DVACT_{QUIESCE,SUSPEND,RESUME} instead.
ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it
up a few weeks ago
|
|
|
|
| |
ok claudio@
|
| |
|
| |
|
|
|
|
|
| |
traversal code to suspend/resume
ok oga kettenis blambert
|
| |
|
|
|
|
|
|
|
|
| |
DVACT_SUSPEND, therefore DVACT_QUIECE can do standard sleeping operations
to get ready.
Discussed quite a while back with kettenis and jakemsr, oga suddenly needed
it as well and wrote half of it, so it was time to finish it.
proofread by miod.
|
| |
|
|
|
|
|
| |
mechnical changes work in these drivers too. Testing can occur after
this commit.
|
|
|
|
| |
ok deraadt
|
|
|
|
| |
"commit" deraadt
|
|
|
|
| |
ok deraadt
|
|
|
|
|
|
|
|
|
|
| |
for both structs, the new members are 'bps' and 'msb', which
describe the number of bytes per sample and data alignment in the
sample, respectively. drivers must properly set these fields in
the 'query_encoding', 'set_parameters' and 'get_default_params'
hardware interface methods.
discussed with ratchov, deraadt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- rework auich_halt_pipe() and use it to ensure AUICH_RR is
set only after DMA is halted (spec says to do so)
- rework auich_calibrate(): clear interrupt and event bits in
AUICH_STS and ensure CIV counter is not changed.
- in the interrupt handler, set LVI to (qptr - 1) rather than
the max value (bug introduced by previous commit)
All fixes are from Christopher Zimmermann <madroach at zakweb.de>,
Thanks!
tested on two different intel-based auich devices,
ok jakemsr
|
|
|
|
|
|
| |
Adapted from NetBSD
OK jakemsr@
|
|
|
|
|
|
|
|
|
|
| |
dma to start at the wrong place. Workaround this limitation by
starting at the current offset.
From Christopher Zimmermann <madroach at zakweb.de>
Thanks a lot!
ok jakemsr
|
|
|
|
| |
from Brad
|
|
|
|
|
|
| |
makes 4 channel output work for Anathae Townsend. thanks for testing.
ok ratchov@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
values of the audio_params structure during AUDIO_SETINFO if the
hardware cannot be set to exactly the requested mode.
some drivers do this sometimes. others always return EINVAL if there
isn't an exact match.
be more consistent. only return EINVAL if an absurd parameter was
requested, otherwise return a supported set of parameters, as close
as possible to what was requested.
with/ok ratchov@
|
|
|
|
|
|
|
|
| |
from NetBSD
tested by a few with no regressions. optical works for jsg@.
ok ratchov@
|
|
|
|
|
|
|
| |
tested by a few. no regressions, but 4 and 6 channel playback
is not working with all codecs yet.
ok ratchov@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of using a linked list to describe the dma segments
use three distinct pointers.
also, this driver only needs 1 buffer descriptor for each dma
segment, since each buffer descriptor can handle as many samples
as each segment can hold.
makes the code a little easier to read and allows us to free
the calibration buffer when we're done with it.
idea originally from ratchov@ a while back. tested by ratchov@
and myself.
ok ratchov@
|
|
|
|
|
|
| |
they may have codecs which only handle 48kHz sampling rates.
ok ratchov@
|
|
|
|
|
|
|
|
|
| |
instead of 8-bit mono mulaw @ 8kHz.
this is just the infrastructure; no drivers are specifying a default
yet.
ok ratchov@, deanna@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixed-rate, regardless of what sample rate we tried to set, without
an error.
so, instead of checking for an error after we've set the rate on all
dacs, we need to check that ac97_set_rate() successfully set the rate
we wanted, which may not be exactly the rate the user specified, due to
auich's sample rate scaling.
finally, we need to set the sample rate for the dacs in this order:
lfe, surround, front. this is necessary because ac97_set_rate()
will return without checking for fixed-rate if the dac is
unsupported. so, if the lfe dac is set last on a stereo only
fixed-rate codec, then we will not know whether we have a fixed-rate
codec. all codecs have a front dac, and some codecs may have a
surround dac but not lfe.
discussed with brad@, who noticed that the previous commit was
slightly bogus.
|
|
|
|
|
|
|
|
| |
when configuring for full-duplex.
fixes problem noticed by todd@
ok todd@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
user visible changes:
- when setting up ac97(4) mixer items, for some features like surround
sound, check if the feature if supported by the codec and only add
items for that feature if it is
- auvia(4) now supports multichannel playback with at least some
multichannel ac97(4) codecs
fixes problems for me and ajacoutot with different auvia(4)
devices/codecs. no regressions reported by testers.
if you have an ac97(4) audio device and are using mixerctl.conf(5),
you may want/need to update it.
ok ratchov
|
|
|
|
|
|
| |
machine-dependent #defines
- use the correct conversions for slinear_le:16 -> ulinear_be:16
- fix mono recording by using various stereo -> mono conversions
|
|
|
|
|
|
|
| |
auich. fixes recording from the microphone input as well as
full-duplex operation.
tested by brad@, sthen@, deanna@ and ckuethe@. thanks.
|
| |
|
|
|
|
| |
tested by brad@
|
| |
|