| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
To maintain the correct refs count, blocking calls to uaudio are
wrapped in usbd_ref_incr() and usbd_ref_decr() calls.
suggested by mpi@ and ok visa@
|
|
|
|
|
|
| |
Fixes coverity CID 1492830.
ok sthen, deraadt
|
|
|
|
|
|
| |
Besides making things simpler, this allows libsndio to figure out that
this is a control affecting all inputs (outputs) that needs to be
exposed.
|
|
|
|
|
|
|
| |
There's no reliable way to decide whether a control must belong
to "inputs" or to "record". In other words both classes were
used for the same thing. Furthermore we've no "play" class which
tends to make things more confusing.
|
|
|
|
|
| |
All other drivers use "dac" and libsndio needs the control name to
be "dac" for the control to be exposed.
|
|
|
|
|
| |
Makes the code simpler and more flexible as the naming is done in a
single place where the full units list is available.
|
|
|
|
| |
No object change.
|
|
|
|
|
|
| |
Hardware may expose per-channel controls and equivalent ones affecting
all channels, which is redundant. In this case expose only the
per-channel ones as they are more flexible.
|
|
|
|
|
|
|
|
|
| |
The audio(9) mixer API can't represent such per-channel controls with
a single entry, so we've to expose one mixer entry (with an unique
name) per control.
Fixes name clashes on usb audio devices with per-channel mute
controls.
|
|
|
|
|
|
|
| |
fail early in uaudio(4). This prevents negative safe_blksz and
integer overflow in nframes_max in case of a bad call to
uaudio_stream_open() or a hardware bug.
OK ratchov@
|
|
|
|
|
|
|
|
| |
playing, the uaudio(4) driver selected a wrong rate. Then recording
failed with "block size too large". The v1_rates field of the
parameters contains the correct intersection of valid rates. Use
it for v1 devices.
OK ratchov@
|
|
|
|
|
|
|
|
| |
USB audio devices with empty AC descriptor (i.e. emtpy devices) don't
exist as they would be of no use. So this fix is mostly to properly
skip broken hardware.
Found by coverity.
|
|
|
|
|
|
|
|
| |
Certain devices (like the AudioQuest DragonFly Red) don't provide the
per-channel control bitmaps in the feature unit descriptor. Make this
part of the descriptor as optional.
With help from Claus <claus at mailbox.org>, thanks.
|
|
|
|
|
| |
This may fix rare stuttering caused by underruns in case device clock
drifts with respect to the bus clock.
|
|
|
|
|
|
|
| |
This simplifies the code and allows any block size multiple of 1ms to
be used when play and recording number of channels are not the same.
ok mpi@
|
| |
|
|
|
|
|
|
|
| |
Currently we send the request to the unit indicated as clock source of
the terminals, which may be a clock selector unit that doesn't support
the request. Fix this by following the clock source path until the
clock source unit is found.
|
|
|
|
| |
a random streaming iface.
|
|
|
|
|
|
| |
Even if having multiple control interface descriptors is not allowed
by the UAC spec, there's no reason to stop as long as a proper control
interface was processed.
|
|
|
|
|
| |
Fixes STALL errors in mixer requests causing the mixer to be unusable.
With help from Claus <claus at mailbox.org>. Thanks.
|
|
|
|
| |
ok deraadt
|
|
|
|
|
| |
This makes the code less bug prone as the "rare" underruns
conditions are handled by the main non-underrun code.
|
| |
|
|
|
|
|
| |
No behavior change as we don't call uaudio_pdata_copy() in situations
when bounce buffers may not be available.
|
|
|
|
|
| |
No behavior change. The new representation is equivalent but eases
detection of overflows and underflows.
|
|
|
|
|
|
|
|
| |
At least my uaudio(4) over ohci is encountering a fair amount of USBD_IOERROR
when the system is busy (most probably because the deadline is missed because
of the big lock being hold). With this in, playing music while running a
make build no longer stops after a few seconds.
OK ratchov@
|
|
|
|
|
|
|
|
|
|
| |
current one for UAC v1.0 devices.
The main difference with the old driver is that now we map audio
blocks to USB transfers, which allows precise synchronization and
reliability, including during low-latency operation.
with help from many, ok mpi
|
|
|
|
|
|
|
| |
has no side effect, so setting value for ich can be moved under
UAUDIO_DEBUG.
ok ratchov
|
|
|
|
| |
Michael W. Bombardieri. Thanks.
|
|
|
|
| |
"looks good" kn@
|
|
|
|
| |
Michael W. Bombardieri. Thanks!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Those devices have a broken AudioControl descriptor which advertises a
bad value for bLength for the FEATURE_UNIT sub-descriptor, so add a
quirk 'fixing' this bLength so that uaudio(4) attaches properly instead
of bailing out with 'audio descriptors make no sense, error=4'.
My C310 now properly attaches but doesnt seem to work right now, this is
a different issue that will be worked on.
Thanks to tb@, remi@, weerd@, Raf Czlonka, Base Pr1me, Jordan Geoghegan,
Peter J. Philipp, Alfredo Vogel, James Hastings, Bruno Flueckiger,
Remco & Alex Tsang for providing lsusb -v output for a large variety of
Logitech Webcams.
ok mpi@ ratchov@
|
|
|
|
| |
ok deraadt@ krw@
|
|
|
|
| |
Bombardieri" <mb@ii.net>.
|
|
|
|
|
| |
Errors will result in nice clean panic messages so we know what's wrong.
Reviewed by dhill visa natano jsg.
|
| |
|
|
|
|
| |
Thanks.
|
|
|
|
| |
From Michael Reed
|
| |
|
|
|
|
| |
Michael W. Bombardieri <mb at ii.net>
|
| |
|
|
|
|
|
| |
as source and destination never overlap in this case. From
Michael W. Bombardieri <mb at ii.net>.
|
| |
|
|
|
|
| |
From Michael W. Bombardieri <mb at ii.net>
|
|
|
|
| |
Michael W. Bombardieri <mb at ii.net>. Thanks!
|
| |
|
|
|
|
|
| |
methods from all audio drivers and from the audio_if structure as they
are never called.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reduces differences between non-isoch and isoch transfers submissions,
makes the generic DMA buffer overrun check work with isoch transfers and
will allow some code simplifications in HC drivers.
Since short-transfers were never checked for isoch transfers, we now need to
pass the USBD_SHORT_XFER_OK flag to not change this behavior. This might be
revisited later.
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@
|