09 Nov, 2011
2 commits
-
Logitech HD Webcam c510 provide wrong mixer resolution.
Add it to "res = 384" quirk.Signed-off-by: Alexey Fisher
Signed-off-by: Takashi Iwai -
In the recent usb-audio driver, the initialization of volume ranges
may be delayed when the device doesn't respond well at the probing time.
But the volume quirks for certain devices are applied only in
mixer_ctl_feature_info() thus only at the very first probe and will be
missing when the volume range is initialized later.This patch moves the volume quirk code to be always called from the
volume-range extraction (get_min_max()), so that the quirks are properly
applied in the later init time.Reported-and-tested-by: Alexey Fisher
Cc:
Signed-off-by: Takashi Iwai
13 Oct, 2011
1 commit
-
The audio_feature_info[] array should contain all entries for UAC2_FU_*,
but currently a few last entries are missing. Even though, the driver
tries to probe these entries in parse_audio_feature_unit() and may
access the range over the array. This patch fixes the bug by limiting
the loop size properly using ARRAY_SIZE() instead of a hard-coded
magic number.Reported-by: Dan Carpenter
Signed-off-by: Takashi Iwai
27 Sep, 2011
1 commit
-
There are certain devices that are reportedly so slow that they need
more than 100 ms to handle control transfers. Therefore, increase the
timeout in mixer(_quirks).c to 1000 ms.The timeout parameter of snd_usb_ctl_msg() is now constant, so we can
drop it.Reported-by: Felipe Balbi
Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
19 Aug, 2011
2 commits
-
When the initial check of dB-range failed due to the read error, try to
check again at the later read, too. When an invalid dB range is found,
remove TLV flags and notify the mixer info change.Signed-off-by: Takashi Iwai
-
The recent fix for testing dB range at the mixer creation time seems
to cause regressions in some devices. In such devices, reading the dB
info at probing time gives an error, thus both dBmin and dBmax are still
zero, and TLV flag isn't set although the later read of dB info succeeds.This patch adds a workaround for such a case by assuming that the later
read will succeed. In future, a similar test should be performed in a
case where a wrong dB range is seen even in the later read.Signed-off-by: Takashi Iwai
Cc:
04 Aug, 2011
2 commits
-
When creating the mixers for an USB audio device, the current code looks
at the host interface stored in mixer->chip->ctrl_if. Change this and
rather keep a local pointer to the interface that was given when
snd_usb_create_mixer() was called.Signed-off-by: Daniel Mack
Reported-by: Nicolai Krakowiak
Reported-by: Lean-Yves LENHOF
Acked-by: Clemens Ladisch
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai -
Signed-off-by: Nicolai Krakowiak
Acked-by: Daniel Mack
Acked-by: Clemens Ladisch
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai
25 May, 2011
2 commits
-
In order to allow quirks functions to hook up to the standard feature
unit op tables, this patch exports a pointer to the struct that is used
internally.That way, all the code handling the control can be kept private, and
external code can reference the symbol to re-use it.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai -
This patch renames add_control_to_empty() to snd_usb_mixer_add_control()
and exports it, so the quirks functions can make use of it.Also, as "struct mixer_build" is private to mixer.c, rewrite the
function to take an argument of type "struct usb_mixer_interface"
instead.Signed-off-by: Daniel Mack
Signed-off-by: Takashi Iwai
22 May, 2011
1 commit
28 Apr, 2011
1 commit
-
Some crappy USB-audio devices give broken dB ranges, e.g. both min and max
are 0dB. This confuses the volume control that prefers dB expression such
as alsactl or PulseAudio. In such a case, it's much better not to expose
the broken dB information.Signed-off-by: Takashi Iwai
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
11 Mar, 2011
3 commits
-
Devices are autosuspended if no pcm nor midi channel is open
Mixer devices may be opened. This way they are active when
in use to play or record sound, but can be suspended while
users have a mixer application running.[Small clean-ups using static inline by tiwai]
Signed-off-by: Oliver Neukum
Signed-off-by: Takashi Iwai -
- ESHUTDOWN must be correctly handled
- the optional interrupt endpoint's URB must be stopped and restartedSigned-off-by: Oliver Neukum
Signed-off-by: Takashi Iwai
10 Mar, 2011
2 commits
-
One more affected devices: Logitech Webcam C600 (046d:0808)
Volume range before quirk is 6400, after (also real) is 16.
Signed-off-by: Alexey Fisher
Signed-off-by: Takashi Iwai -
Signed-off-by: Alexey Fisher
Signed-off-by: Takashi Iwai
08 Feb, 2011
1 commit
-
Signed-off-by: Joseph Teichman
Signed-off-by: Takashi Iwai
10 Jan, 2011
1 commit
-
Simplify info callbacks by using the snd_ctl_enum_info() helper function.
Signed-off-by: Clemens Ladisch
Signed-off-by: Takashi Iwai
17 Sep, 2010
1 commit
-
"uinfo->value.enumerated.item" is an unsigned int. If it's negative
when we do the comparison:
if ((int)uinfo->value.enumerated.item >= cval->max)
then we would read past the end of the array on the next line.I also changed the strcpy() to strlcpy() out of paranoia.
Signed-off-by: Dan Carpenter
Signed-off-by: Takashi Iwai
16 Sep, 2010
1 commit
-
Used only when CONFIG_SND_DEBUG=y
sound/usb/mixer.c: In function 'get_min_max':
sound/usb/mixer.c:762: warning: unused variable 'chip'Reported-by: Andrew Morton
Signed-off-by: Takashi Iwai
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