| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
use it during suspend/resume. Remove driver-specific mixer
save/restore bits that don't need to be duplicated in every
low-lever driver.
ok mpi
|
| |
|
|
|
|
|
| |
methods from all audio drivers and from the audio_if structure as they
are never called.
|
|
|
|
| |
mistakes.
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
| |
CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.
ok millert@
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
| |
no functional change.
ok sthen@
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Furthermore, all the extra powering up and down caused resumes to not
work.
ok ratchov
|
| |
|
|
|
|
|
| |
traversal code to suspend/resume
ok oga kettenis blambert
|
|
|
|
|
| |
mechnical changes work in these drivers too. Testing can occur after
this commit.
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
between instances, saving space in the kernel. feedback from many (some
incorporated, some left for future work).
ok deraadt, kettenis, "why not" miod.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
|
| |
this makes the emulation expansion factor 1 by default since there's no
emulation. previously the factor was 2 because these drivers emulate
8-bit ulaw playback with 16-bit linear encodings. having a factor
other than 1 by default creates block size and hiwat/lowat issues
with applications that set the block size and hiwat before other
parameters.
ok ratchov@
|
|
|
|
|
|
|
|
|
| |
instead of 8-bit mono mulaw @ 8kHz.
this is just the infrastructure; no drivers are specifying a default
yet.
ok ratchov@, deanna@
|
|
|
|
|
|
|
|
| |
"busy state" in which it's not writeable. This fix tags the host as unable
to read the codec, so the ac97 driver doesn't try to read it, instead it
keeps in memory copy of all codec registers. Fixes pr 2451
ok jakemsr
|
|
|
|
| |
ok krw@
|
| |
|
|
|
|
| |
okay deraadt@
|
| |
|
| |
|
| |
|
|
|
|
|
| |
error. problem and patch by Gabriel Kihlman in PR/2856.
millert@ ok.
|
| |
|
| |
|
|
|
|
| |
will ease porting, and generally cleans up a bit
|
|
|
|
| |
as the mmap offset.
|
|
|
|
| |
correct order.
|
|
|
|
|
|
|
|
| |
Idea from FreeBSD.
This code was not put in initially because I had no problematic
card to test.
Thanks to Chris Kuethe <ckuethe@pyxis.cns.ualberta.ca> for having
such a card and testing this code.
|
|
|
|
|
|
|
|
|
|
|
| |
All callers actually took all arguments to pci_intr_map from pci_attach_args
structs, so this simplifies code.
This also allows more complicated interrupt assignment schemes like the one
on sparc64.
This makes sparc64 pci interrupts work.
Inspired by the same change in NetBSD.
|
|
|
|
|
|
| |
Add workaround for uvm brain-deadness (allow open O_RDWR, which is
necessary for mmap to work, since mmap(PROT_WRITE) does NOT work on
devices)
|
|
|
|
|
|
|
| |
put a size limitation of the PCI region to map. That makes the PERC 3/Di
raid controller usable, as it publishes too much PCI memory for us to map
in the kernel virtual memory. As we only access the first 256 byte it is
of no use to map 128MB of kvm.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
audio/maestro without a functional mixer.
Add hardware volume support, enable corresponding interrupt so that volume
control works within cdio.
|
| |
|
|
the FreeBSD driver, and some linux code. Probably some tweaks to
reach out for more pci cards (some models are currently commented out,
and we have yet to find a card where stereo output gets de-synchronized,
as the FreeBSD driver claims happens).
Suspends/resume works, recording and keyboard volume control on the way.
This is not derived from the NetBSD driver in any way. Just happens
that both works reached completion at the same time.
|