Commit graph

2865 commits

Author SHA1 Message Date
Stephen Warren
547300fb35 UCM: Disallow gets of undefined system properties
In UCM, there are various system-defined properties whose names start
with "_". Explicitly prevent any gets from falling back to properties
defined in a config file if the property name starts with "_", in order
to reserve the entire "_" namespace for system-defined properties.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-08 18:21:01 +02:00
Stephen Warren
fc038149c5 UCM: Implement ConflictingDevices, add device list to devices
Wherever SupportedDevice can appear, also allow ConflictingDevice. Only
one or the other (or neither) may be specified. When neither is
specified, allow anything. Sometimes, listing ConflictingDevices may
result in a shorter list than explicitly listing all SupportedDevices.

Add support for SupportedDevice and ConflictingDevice to SectionDevice.
This allows representing devices which are mutually exclusive, e.g. due
to a mux that switches between capturing from two different microphones,
without the possibility of mixing.

Enhance is_modifier_supported to allow ignoring SupportedDevice and
ConflictingDevice. This is useful when querying values from a
SectionModifier; there's no reason we shouldn't be able to query values
just because the current configuration would prevent enabling that
device. The new is_device_supported is implemented similarly.

Enhance switch_device to remove the old device from the current device
list before querying for the new device, and add it back immediately
afterwards. This allows the query for the new device to ignore any
conflicts caused solely by the old device.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-08 18:20:26 +02:00
Stephen Warren
866fa538d4 UCM: Deprecate index on Section{Device,Modifier}
The previous supported "legacy" syntax was:

SectionDevice."Speaker".0 {
SectionModifier."Capture Voice".0 {

This change supports new syntax:

SectionDevice."Speaker" {
SectionModifier."Capture Voice" {

... but also allows the old syntax, iff the index is exactly "0". If an
index is present, but not exactly "0", parsing will appear to succeed,
but produce an empty device or modifier.

When naming devices and modifiers, even if the legacy format is used,
any index is not included in the name; i.e. both sets of syntax above
name the device just "Speaker".

The SupportedDevice list syntax still also accepts either "x" or "x.0",
but internally strips ".0" from the tail of any device name. Any other
name including "." is disallowed.

Finally, when comparing device or modifier names, a simple exact string
compare is now used, since no index data is ever present in device or
modifier names.

The one functional change introduced here is that a SupportedDevice
entry of just "x" will now only ever match a single device. It previously
acted as a wildcard for any device named "x.foo".

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-08 18:20:00 +02:00
Takashi Iwai
e1c876a2f0 Fix missing error code in snd_ctl_hw_open()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 17:27:27 +02:00
Stephen Warren
0a4b1ee746 UCM: Fix deadlock following failed get _verb
When querying the current verb without a verb set, snd_use_case_get bails
out early without unlocking uc_mgr->mutex. This causes subsequent API calls
to hang. Instead, s/return/goto __end/.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-06-03 11:45:17 +02:00
Stephen Warren
0a2fd2d386 UCM: Fix typo in error message
parse_name_is_safe disallows dots in the name, so not is the correct
word to use

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-06-03 11:44:59 +02:00
Alexander Stein
1720d30ad8 ctlparse: Respect softfloat configure option
If we want softlfoat we can't use ceil which uses libm.

Signed-off-by: Alexander Stein <a.stein@systec-electronic.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-20 09:10:04 +02:00
Raymond Yau
ea020c3b2e emu10k1.conf - Fix no sound problem when using SB Live! Platinum
Add asym to front, rear and center_lfe to prevent route change after
removed the lock.

After removed the lock, when application using "hw", "front", "rear",
"surround40" and "surround51",  the route of the front channel is
changed (lost right channel or both channels) when other application
using "front", "rear" or "center_lfe" to record

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-16 14:27:51 +02:00
Takashi Iwai
922ff0da83 Specficy subdevice 0 for front/surround* of HDA-Intel.conf
The subdevice 0 is used for multi-channel outputs.
This fixes the detection of multi-channel devices of VIA codecs
by PulseAudio.

Reported-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-09 14:11:22 +02:00
Baek Chang
516569bbba UCM: fix memory leak when executing cset commands
fix memory leak when executing cset commands.
snd_ctl_elem's are allocated, but never free'ed

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:21:34 +02:00
Takashi Iwai
e4735ddebd Add test/lsb/config to .gitignore
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:20:23 +02:00
Takashi Iwai
6bef13e251 Fix printf for size_t
Need to use z prefix for size_t type.

midiloop.c: In function ‘main’:
midiloop.c:172:2: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘size_t’
....

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:19:09 +02:00
Takashi Iwai
75194776a7 Fix compile warnings
strstr() returns a char pointer

simple_none.c: In function ‘base_len’:
simple_none.c:940:33: warning: ordered comparison of pointer with integer zero
simple_none.c:941:29: warning: ordered comparison of pointer with integer zero

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:14:29 +02:00
Sudarshan Bisht
808ce5deb3 alsa-lib: fixed coverity reported issues under "FORWARD_NULL" checker.
Coverity Static Analysis helps developers find hard-to-spot,
yet potentially crash-causing defects early in the development phase,
reducing the cost,time, and risk of software errors.

This patch has fix for situations where variable can be NULL
but not been checked beforehand

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-04 09:11:46 +02:00
Raymond Yau
6bb36928b1 HDA-Intel.conf - Fix low mic volume due to pulseaudio using "front" device for playback and capture
Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-26 12:42:35 +02:00
Takashi Iwai
16f716eadd EMU10K1.conf: Don't lock hook controls
Locking the controls in hooks causes a BUSY error when multiple
streams are opened, typically in PulseAudio.  Better not to touch
the locking in hooks in such a case.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-20 14:32:06 +02:00
Raymond Yau
7ed19bbc9a test/latency: print error message when 2 periods per buffer not supported
Print error message when playback/capture does not support 2 periods
per buffer.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-20 14:11:59 +02:00
David Henningsson
780f30ab1a Fix typo in comment in surround71.conf
BugLink: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=591318
Reported-by: Ariel <asdebian@dsgml.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-04-19 08:37:02 +02:00
Takashi Iwai
83059ee525 Mark Heaphone {Center|LFE} control of emu10k1 conf as optional
The controls referred in center_lfe definition in EMU10K1.conf should be
marked as optional since some boards don't have these.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-06 08:34:56 +02:00
Jaroslav Kysela
cd20fe3f4d configure: Fail when the user attempts to compile shared and static libs
There are some issues with libtool breaking the possibility to build both
types of libraries in one shot. Compile libraries separately.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-03-30 17:30:09 +02:00
Jaroslav Kysela
e419f63960 UCM: Fix LGPL licence ("how to receive" part referred GPL instead LGPL)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-03-28 11:06:33 +02:00
David Henningsson
d3906a9307 Conf: Fix channels of ICE1712 to 10/12
The ICE1712 kernel driver accepts 10 playback channels and
12 recording channels only. Therefore fix this channel count
in alsa-lib.

BugLink: http://bugs.launchpad.net/bugs/178442
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-03-28 10:42:40 +02:00
Jaroslav Kysela
f2912f5099 UCM: Fix empty get_list - initialize returned pointer to NULL
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-03-19 01:09:41 +01:00
Jaroslav Kysela
60397387ef UCM: comment fixes and fix myvalue initialization fix in add_values()
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-03-19 00:54:43 +01:00
Margarita Olaya
ae0a44c628 alsa-lib: ucm: allow values to be read from devices
This allows devices value to be read using the get_value().
Also fix a little formatting.

Signed-off-by: Margarita Olaya Cabrera <magi@slimlogic.co.uk>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-03-18 18:28:07 +01:00
Clemens Ladisch
8650c02ae2 alsa-lib: add LaCie Firewire Speakers/Griffin FireWave Surround driver
Add configuration files for the "default"/"front"/"surround51" devices
of the FireWire driver.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2011-03-15 08:02:59 +01:00
Raymond Yau
886adf664b Fix alsa-lib to regard 3D control - Depth as Playback Controls
This allow those mixer or recording application to find those controls which
are really used for capturing.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-02-28 11:15:57 +01:00
Jaroslav Kysela
02b2006713 Release v1.0.24.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-31 15:18:50 +01:00
Jaroslav Kysela
038eaa429b ucm: add more error messages for cdev and cset commands
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-31 15:06:03 +01:00
Jaroslav Kysela
37c7e2843f ucm: allow bind modifier to specific instances, other fixes
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-31 14:24:19 +01:00
Pierre-Louis Bossart
a16008023e ucm: make verb comments optional
avoid seg fault if no comment is provided

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-29 11:06:39 +01:00
Jaroslav Kysela
32f9d7f47b Release v1.0.24
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-27 14:58:51 +01:00
Jaroslav Kysela
2b13cf5c9e real fix for the UCM code compilation issue
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-27 14:56:53 +01:00
Jaroslav Kysela
97e1f132e4 Fix UCM component handling in configure.in
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-27 14:40:31 +01:00
Jaroslav Kysela
cf446218c2 Update hdspm.h file from Adrian Knoth - final version
This one matches the settled driver version.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-27 11:50:40 +01:00
Jaroslav Kysela
f0f8d22701 Update hdspm.h file from Adrian Knoth
To satisfy new hdspmixer requirements, update hdspm.h file.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-26 11:36:17 +01:00
Jaroslav Kysela
59977f90b4 Add hdspm.h kernel header to include/alsa/sound tree for the hdspmixer app
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-26 10:35:59 +01:00
Jaroslav Kysela
916a203d94 Merge branch 'ucm' 2011-01-24 14:55:23 +01:00
Francesco Cosoleto
a9855efcb9 pcm: fix typo in snd_pcm_recover() error message
Signed-off-by: Francesco Cosoleto <cosoleto@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-23 14:29:40 +01:00
Liam Girdwood
a618cdf057 ucm: fix switch device & modifier when no transition is found
Fix some logic bugs in switch device and switch modifier when
transition sequences are not found. Also fix check for new device.

Reported-by: w0806.kim@samsung.com
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-01-11 19:05:40 +01:00
Jaroslav Kysela
e1b4bd6c89 ucm: add snd_use_case_verb_list() inline function
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-01-11 19:05:12 +01:00
Clemens Ladisch
45e9496a7a aliases.conf: add aliases for CMI8788-based cards
Add entries for all the aliases of the CMI8788 chip.
(Not all of them are currently used by the driver.)

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2011-01-10 16:22:15 +01:00
Liam Girdwood
7b259bc00e ucm: ctlparse - always terminate cset buffer
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:06:35 +01:00
Liam Girdwood
df760d8b31 ucm: fix handling of cset with spaces in the control name
Always terminate the cset command based on the last space found within the
cset command since the control name may contain spaces.
2010-12-22 08:06:28 +01:00
Liam Girdwood
eba5471819 ucm: only select modifier when supported device is enabled
Make sure the supported device of a modifier is enabled before
we enable the modifier.

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:06:16 +01:00
Liam Girdwood
265cf2c3ee ucm: implement basic script exec functionality
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:06:08 +01:00
Liam Girdwood
116fabd603 ucm: check the correct return value for modifier
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:05:57 +01:00
Liam Girdwood
ebb52f6911 ucm: check for valid value list before dereference.
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:05:50 +01:00
Liam Girdwood
6cda65ba98 ucm: remove unused code.
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:05:44 +01:00
Liam Girdwood
02bc123aae ucm: make sure active modifier and device lists are initialised
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-12-22 08:05:36 +01:00