| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
native byte order. No behaviour change, as attach time
parameters are just hints, except thay this makes audioctl
output nicer if the device was never opened.
|
|
|
|
| |
ok ratchov@ deraadt@
|
| |
|
|
|
|
|
| |
control for wskbd. This may fix "record level" keys on certain
keyboards.
|
|
|
|
| |
No binary change.
|
|
|
|
| |
thanks!
|
|
|
|
|
|
|
|
| |
pointers to wrap, recover by detecting and compensating
for the missed interrupts. Fixes certain audio hangs on
MP machines.
with help from armani@, typos fixed by Alexey Suslikov
|
|
|
|
|
|
| |
returned by AUDIO_GETxOFFS and AUDIO_xERROR ioctls.
ok deraadt
|
|
|
|
|
| |
multiply the block count by the block size to get the bytes count
because they won't wrap correctly.
|
|
|
|
| |
just because it's simpler this way. No behaviour change.
|
|
|
|
|
|
| |
functionality. Same API and ABI except for the removed bits and no
behaviour change for programs using libsndio. With help from armani@
and mpi@, thanks.
|
|
|
|
| |
ok ratchov@
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
- rename uiomove() to uiomovei() and update all its users.
- introduce uiomove(), which is similar to uiomovei() but with a size_t.
- rewrite uiomovei() as an uiomove() wrapper.
ok kettenis@
|
|
|
|
|
|
|
| |
hardware behaviour on Thinkpads making it harder for software state and
hardware state get out of sync.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when workqs were introduced, we provided a second argument so you
could pass a thing and some context to work on it in. there were
very few things that took advantage of the second argument, so when
i introduced pools i suggested removing it. since tasks were meant
to replace workqs, it was requested that we keep the second argument
to make porting from workqs to tasks easier.
now that workqs are gone, i had a look at the use of the second
argument again and found only one good use of it (vdsp(4) on sparc64
if you're interested) and a tiny handful of questionable uses. the
vast majority of tasks only used a single argument. i have since
modified all tasks that used two args to only use one, so now we
can remove the second argument.
so this is a mechanical change. all tasks only passed NULL as their
second argument, so we can just remove it.
ok krw@
|
|
|
|
|
|
|
|
|
|
|
| |
task, rather than abusing task arguments to carry long values around.
this is unreliable, but so was the previous mechanism, just in a
different way. if you're so low on memory that you cant change the
volume, you probably have other more important problems going on
too.
tested by jim smith
|
|
|
|
| |
ok dlg@ mpi@ bcook@ millert@ miod@
|
|
|
|
|
|
|
| |
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
| |
|
|
|
|
|
|
| |
There will be slight burps on resume due to other drivers being slow with
wakeup.
ok kettenis ratchov
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
take the temptation of using it elsewhere and fumbling with audio internals
away from the rest of the kernel.
ok mpi@ ratchov@
"if it is worth doing, just do it." deraadt@
|
|
|
|
|
|
| |
being called in a workq.
ok kettenis@
|
|
|
|
| |
ok mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the obvious cases to return EINVAL and ENXIO.
ok tedu deraadt
|
|
|
|
|
|
|
| |
The audio side is a bit lacking; it does not yet mute all types of
devices.
from Alexander Polakov
ok jakemsr
|
|
|
|
|
|
|
|
|
| |
#include "foo.h"
#if NFOO > 0
(whole file)
#endif
since config(8) file inclusion rules already do it for you.
ok deraadt@
|
|
|
|
|
| |
context, because drivers (like eso(4) and envy(4)) might want to sleep
in their halt method.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DVACT_QUIESCE:
1) waits until ringbuffer current position wraps back to the start of
the buffer
2) stops playback and/or recording by way of the hardware drivers' "halt"
audio_hw_if method
3) blocks userland access to audio device
4) saves the current state of the master mute, then mutes it
DVACT_RESUME:
1) reprogram hardware stream parameters for playback or recording
if they were active at DVACT_QUIESCE by way of hardware drivers'
"set_params" audio_hw_if method
2) start playback or recording if they were active at DVACT_QUIESCE
by way of hardware drivers' "trigger" or "start" audio_hw_if method
3) restores master mute state as it was at DVACT_QUIESCE
4) wakes up blocked userland processes accessing the hardware
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
supported it doesn't do any harm), so put the KNOTE() in selwakeup() itself and
remove it from any occurences where both are used, except one for kqueue itself
and one in sys_pipe.c (where the selwakeup is under a PIPE_SEL flag).
Based on a diff from tedu.
ok deraadt
|
|
|
|
|
|
|
| |
pointer to the low level driver's softc, not audio's softc. nothing
is actually using this yet.
ok ratchov
|
|
|
|
|
|
| |
This is needed for the addition of further suspend/resume actions.
Okay deraadt@, marco@.
|
|
|
|
|
|
|
| |
been written to the device, instead of waiting for a write(2)
when the buffer is or will be over the high water mark.
ok ratchov@
|
|
|
|
| |
help from and ok jakemsr
|
|
|
|
|
|
| |
make the audio driver missing blocks and, thus, breaking
full-duplex apps.
help and ok jakemsr
|
|
|
|
| |
discussed with and ok ratchov; manpage tweak from naddy, thanks
|
|
|
|
|
|
|
|
| |
playback parameters (like the macppc i2s devices), be sure to
synchronise recording parameters to playback parameters when
configuring for full-duplex operation, as audio(4) dictates.
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@
|
|
|
|
|
|
| |
ioctls.
ok ratchov@
|
| |
|
|
|
|
|
|
|
|
|
| |
properly in audio_rint(), the periodic boundary conditions aren't met. This
causes, later read(2) to return EFAULT while trying to access unmapped
regions of the kernel address space. Fix this by using the correct pointer
arithmetic.
ok jakemsr@
|
|
|
|
|
|
|
|
|
| |
instead of 8-bit mono mulaw @ 8kHz.
this is just the infrastructure; no drivers are specifying a default
yet.
ok ratchov@, deanna@
|
|
|
|
|
|
| |
for both recording and playback.
ok ratchov
|
|
|
|
|
|
|
|
| |
record modes. This makes possible to have blocks of the same duration if the
play and record formats are different. The API change is backward
compatible, so it shouldn't be noticed by current audio ports.
ok jakemsr
|