04 Sep, 2010
1 commit
-
The Audio Class v2 support code in 2.6.35 added checks for the
bInterfaceProtocol field. However, there are devices (usually those
detected by vendor-specific quirks) that do not have one of the
predefined values in this field, which made the driver reject them.To fix this regression, restore the old behaviour, i.e., assume that
a device with an unknown bInterfaceProtocol field (other than
UAC_VERSION_2) has more or less UAC-v1-compatible descriptors.[compile warning fixes by tiwai]
Signed-off-by: Clemens Ladisch
Cc: Daniel Mack
Cc:
Signed-off-by: Takashi Iwai
24 Jun, 2010
1 commit
-
Replaced the forgotten cval->mixer->ctrlif.
Signed-off-by: Takashi Iwai
23 Jun, 2010
4 commits
-
As the control interface is now carried in struct snd_usb_audio, we can
simplify the API a little and also drop the private ctrlif field from
struct usb_mixer_interface.Also remove a left-over function prototype in pcm.h.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Also add a list of open topics.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Get rid of the last occurances of _v1 suffixes, and move the version
number right after the "uac" string. Now things are consitent again.Sorry for the forth and back, but it just looks much nicer this way.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Some programs like Skype trying to set capture volume automatically.
Normally it will tray, carefully step by step lover or higher, set the volume.
In real word it work not really well, because devises and vendors lie about
real audio settings.
For example most Logitech webcams have 6400 or 3500 steps for capture volume.
They do not tell that actual resolution is 384. So we have only 7 or 18 real
steps. In this patch I set real resolution only for tested devices.Signed-off-by: Alexey Fisher
Signed-off-by: Takashi Iwai
12 Jun, 2010
1 commit
-
For RANGE requests, we should only query as much bytes as we're in fact
interested in.For CUR requests, we shouldn't confuse the firmware with an overlong
request but just ask for 2 bytes.This might need fixing in the future as it's not entirely clear when to
dispatch 1-byte, 2-byte and 4-byte request blocks. For now, we assume
everything is coded in 16bit - this works for all firmware
implementations I've seen.Signed-off-by: Daniel Mack
Reported-by: Alex Lee
Signed-off-by: Takashi Iwai
01 Jun, 2010
6 commits
-
The UAC2 clock selectors are fortunately compatible with UAC1 audio
selector units, so we can simply reuse the same approach to get all the
linked units.Requests to this control need a different CS value though.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Use a struct to parse the audio units, and return usable descriptors
for all types. There's no need to limit the result set, except for some
kind of sanity check.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
The bits to enable them are always 0 for UAC1 devices, so no additional
checks are required.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Move more definitions from private enums to appropriate header files.
Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
So far, UAC2 controls are marked read-only if any of the channels are
marked read-only in the descriptors. Change this behaviour and- mark them writeable unless all channels are read-only
- store the read-only mask in usb_mixer_elem_info and
- check the mask again in set_cur_mix_value(), and bail out for
write-protected channels.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
Introduce two new static inline functions for a more readable parsing
of UAC2 bmaControls.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
28 May, 2010
1 commit
-
Fix a small off-by-one bug which causes the feature unit to announce a
wrong number of channels. This leads to illegal requests sent to the
firmware eventually.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
20 May, 2010
1 commit
12 May, 2010
1 commit
-
For both UAC1 and UAC2, interrupt endpoint messages are now parsed with
structs rather that with anonymous buffer array accesses.For UAC2, only CUR interrupt notifications are supported for now.
snd_usb_mixer_status_complete() was renamed to
snd_usb_mixer_interrupt().Fixed one indentation flaw on the way.
Signed-off-by: Daniel Mack
Cc: Clemens Ladisch
Signed-off-by: Takashi Iwai
08 May, 2010
1 commit
-
Commit 23caaf19b ("ALSA: usb-mixer: Add support for Audio Class v2.0")
broke support for Class1 devices due to two faulty changes. This patch
fixes it.Signed-off-by: Daniel Mack
Reported-and-Tested-by: The Source
Cc: Clemens Ladisch
Signed-off-by: Takashi Iwai
16 Apr, 2010
1 commit
-
Signed-off-by: Jaroslav Kysela
12 Mar, 2010
3 commits
-
USB Audio Class v2.0 compliant devices have different descriptors and a
different way of setting/getting min/max/res/cur properties. This patch
adds support for them.Signed-off-by: Daniel Mack
Cc: Clemens Ladisch
Signed-off-by: Takashi Iwai -
Introduce a number of new structs for mixer, selector, feature and
processing units and some static inline helpers to access fields which
have dynamic offsets. Use them in mixer.c to parse the descriptors. This
is necessary for the upcoming audio v2 parsers.Signed-off-by: Daniel Mack
Cc: Clemens Ladisch
Signed-off-by: Takashi Iwai -
For clearer namespace, also rename usbmixer_maps.c -> mixer_maps.c
Signed-off-by: Daniel Mack
Cc: Clemens Ladisch
Signed-off-by: Takashi Iwai