OSDN Git Service

android-x86/external-alsa-lib.git
13 years agoAdd hdspm.h kernel header to include/alsa/sound tree for the hdspmixer app
Jaroslav Kysela [Wed, 26 Jan 2011 09:35:56 +0000 (10:35 +0100)]
Add hdspm.h kernel header to include/alsa/sound tree for the hdspmixer app

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoMerge branch 'ucm'
Jaroslav Kysela [Mon, 24 Jan 2011 13:55:23 +0000 (14:55 +0100)]
Merge branch 'ucm'

13 years agopcm: fix typo in snd_pcm_recover() error message
Francesco Cosoleto [Sat, 22 Jan 2011 01:27:54 +0000 (02:27 +0100)]
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>
13 years agoucm: fix switch device & modifier when no transition is found
Liam Girdwood [Tue, 11 Jan 2011 17:56:30 +0000 (18:56 +0100)]
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>
13 years agoucm: add snd_use_case_verb_list() inline function
Jaroslav Kysela [Tue, 11 Jan 2011 18:05:12 +0000 (19:05 +0100)]
ucm: add snd_use_case_verb_list() inline function

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoaliases.conf: add aliases for CMI8788-based cards
Clemens Ladisch [Mon, 10 Jan 2011 15:22:15 +0000 (16:22 +0100)]
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>
13 years agoucm: ctlparse - always terminate cset buffer
Liam Girdwood [Tue, 21 Dec 2010 22:12:00 +0000 (23:12 +0100)]
ucm: ctlparse - always terminate cset buffer

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: fix handling of cset with spaces in the control name
Liam Girdwood [Tue, 21 Dec 2010 22:11:59 +0000 (23:11 +0100)]
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.

13 years agoucm: only select modifier when supported device is enabled
Liam Girdwood [Tue, 21 Dec 2010 22:11:58 +0000 (23:11 +0100)]
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>
13 years agoucm: implement basic script exec functionality
Liam Girdwood [Tue, 21 Dec 2010 22:11:53 +0000 (23:11 +0100)]
ucm: implement basic script exec functionality

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: check the correct return value for modifier
Liam Girdwood [Tue, 21 Dec 2010 22:11:57 +0000 (23:11 +0100)]
ucm: check the correct return value for modifier

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: check for valid value list before dereference.
Liam Girdwood [Tue, 21 Dec 2010 22:11:56 +0000 (23:11 +0100)]
ucm: check for valid value list before dereference.

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: remove unused code.
Liam Girdwood [Tue, 21 Dec 2010 22:11:55 +0000 (23:11 +0100)]
ucm: remove unused code.

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: make sure active modifier and device lists are initialised
Liam Girdwood [Tue, 21 Dec 2010 22:11:54 +0000 (23:11 +0100)]
ucm: make sure active modifier and device lists are initialised

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: remove parse_device() and call parse_compound() directly
Liam Girdwood [Tue, 21 Dec 2010 22:11:52 +0000 (23:11 +0100)]
ucm: remove parse_device() and call parse_compound() directly

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoucm: modifiers names must be compound parse
Liam Girdwood [Tue, 21 Dec 2010 22:11:51 +0000 (23:11 +0100)]
ucm: modifiers names must be compound parse

Modifier names must end in a .index to ensure we can support
same named modifiers. However the modifier index will be for internal
use only and the client will not use the index when setting modifier.

The modifier selection for same name modifiers will be based upon supported
device.

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: removed unused 'active' member in struct use_case_device
Liam Girdwood [Tue, 21 Dec 2010 22:11:50 +0000 (23:11 +0100)]
ucm: removed unused 'active' member in struct use_case_device

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: initial implementation for cdev/cset
Jaroslav Kysela [Mon, 29 Nov 2010 16:33:27 +0000 (17:33 +0100)]
ucm: initial implementation for cdev/cset

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: CTL devices are only one per card (remove DEV from comments)
Jaroslav Kysela [Mon, 29 Nov 2010 14:49:13 +0000 (15:49 +0100)]
ucm: CTL devices are only one per card (remove DEV from comments)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: add ValueDefaults section to the master file
Jaroslav Kysela [Mon, 29 Nov 2010 14:41:34 +0000 (15:41 +0100)]
ucm: add ValueDefaults section to the master file

- the get_value() function is recoded (tries to find the value in
  parent's list)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agopcm_plugin: fix delay
Pierre-Louis Bossart [Tue, 23 Nov 2010 14:47:08 +0000 (08:47 -0600)]
pcm_plugin: fix delay

PulseAudio ALSA modules report errors after calling
snd_pcm_avail_delay(), with a delay lower than the number of samples
available.

Correct delay using Jaroslav's recommendation:
"the result should be 'delay(slave) + mmap_capture_avail(pcm)"

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: add cdev
Jaroslav Kysela [Tue, 23 Nov 2010 14:58:14 +0000 (15:58 +0100)]
ucm: add cdev

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agopcm: add MMAP_EMUL to type names
Jaroslav Kysela [Tue, 23 Nov 2010 12:40:25 +0000 (13:40 +0100)]
pcm: add MMAP_EMUL to type names

If we try to print this then it causes a read past the end of the array
in snd_pcm_type_name().

From: Dan Carpenter <error27@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agopcm_plugin: remove unused client_frames and slave_frames routines
Pierre-Louis Bossart [Fri, 19 Nov 2010 16:35:31 +0000 (10:35 -0600)]
pcm_plugin: remove unused client_frames and slave_frames routines

plug->client_frames and plug->slave_frames are not used by
any plugin, remove dead code.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agopcm: fix snd_pcm_avail_delay() function
Jaroslav Kysela [Thu, 18 Nov 2010 08:27:07 +0000 (09:27 +0100)]
pcm: fix snd_pcm_avail_delay() function

For capture stream, the delay must be obtained as last, but we need to
update the ring buffer pointers for the avail_update call. So, rearrange
the code a bit and add hwsync call as first.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agosupport for period wakeup disabling
Clemens Ladisch [Mon, 15 Nov 2010 09:43:13 +0000 (10:43 +0100)]
support for period wakeup disabling

Add API to disable period wakeups.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
13 years agopcm: pass hw_params flags to slave
Clemens Ladisch [Mon, 15 Nov 2010 09:33:35 +0000 (10:33 +0100)]
pcm: pass hw_params flags to slave

Fix required before interrupt disabling routines patch can be applied.
Without this fix, the interrupts are only disabled when directly
accessing hw devices.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
13 years agoucm: fix parser for sequences and fix wrong strcmp
Jaroslav Kysela [Wed, 10 Nov 2010 15:06:29 +0000 (16:06 +0100)]
ucm: fix parser for sequences and fix wrong strcmp

The sequences are not parsed correctly. First cfg value is the command
and second value is the command argument.

Also, fix strcmp calls in ucm/main.c (reported by
abraham duenas <aduejazz@gmail.com>).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoUSB-Audio.conf: fix Audiophile USB card name
Clemens Ladisch [Wed, 10 Nov 2010 09:11:51 +0000 (10:11 +0100)]
USB-Audio.conf: fix Audiophile USB card name

The device name of the M-Audio AudioPhile USB is actually "Audiophile USB (tm)".
Also keep the old string, just to be sure.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
13 years agocontrol: add ASCII parsers from amixer
Jaroslav Kysela [Thu, 4 Nov 2010 18:58:44 +0000 (19:58 +0100)]
control: add ASCII parsers from amixer

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agopcm direct plugins: change timestamping in dsnoop
Jaroslav Kysela [Fri, 29 Oct 2010 15:36:41 +0000 (17:36 +0200)]
pcm direct plugins: change timestamping in dsnoop

Do not use own timestamps, try to sync hw.ptr with real timestamp.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: debug parser
Jaroslav Kysela [Tue, 26 Oct 2010 12:26:46 +0000 (14:26 +0200)]
ucm: debug parser

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoconfigure.in: don't rely on test -a, not all shells support it
Simon McVittie [Fri, 8 Oct 2010 08:06:58 +0000 (09:06 +0100)]
configure.in: don't rely on test -a, not all shells support it

Notably, /bin/sh in older Debian and Ubuntu is dash, which doesn't.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoVersion-check libtool correctly when doing an out-of-tree build
Simon McVittie [Fri, 8 Oct 2010 08:06:29 +0000 (09:06 +0100)]
Version-check libtool correctly when doing an out-of-tree build

libtool is only created at the end of ./configure, so it doesn't make
sense to grep it in ./configure (the check would always fail the first
time). However, ltmain.sh is copied into the ${srcdir} by libtoolize and
should be safe to check at any time that configure can be run.

Signed-off-by: Simon McVittie <smcv@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agotlv: fix returned dB information for min-is-mute controls
Clemens Ladisch [Fri, 15 Oct 2010 08:33:20 +0000 (10:33 +0200)]
tlv: fix returned dB information for min-is-mute controls

For TLV information that indicates that the minimum value is actually
muted, the returned range used the wrong minimum dB value, and
converting dB values to raw control values did not round up correctly
near the minimum.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoucm: implemented card list feature
Jaroslav Kysela [Wed, 13 Oct 2010 09:48:52 +0000 (11:48 +0200)]
ucm: implemented card list feature

- also added some test files to test/ucm tree

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: unify snd_use_case_geti(), add snd_use_case_card_list() template
Jaroslav Kysela [Tue, 12 Oct 2010 11:29:05 +0000 (13:29 +0200)]
ucm: unify snd_use_case_geti(), add snd_use_case_card_list() template

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoconfig file processing: rewrite the locking - use one recursive mutex
Jaroslav Kysela [Mon, 11 Oct 2010 08:34:12 +0000 (10:34 +0200)]
config file processing: rewrite the locking - use one recursive mutex

Avoid configuration file processing races when multiple threads call
the *open() functions together (for example using alsaloop with
multiple -T jobs can reproduce this issue).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agonamehint: Another fix to properly evaluate hw devices
Jaroslav Kysela [Fri, 1 Oct 2010 12:08:03 +0000 (14:08 +0200)]
namehint: Another fix to properly evaluate hw devices

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agonamehint: Fix hw device evaluation (missing last device)
Jaroslav Kysela [Fri, 1 Oct 2010 11:31:45 +0000 (13:31 +0200)]
namehint: Fix hw device evaluation (missing last device)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: cosmetic fix
Jaroslav Kysela [Fri, 1 Oct 2010 11:30:59 +0000 (13:30 +0200)]
ucm: cosmetic fix

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: added implementation for other ucm parts, only card name list is missing
Jaroslav Kysela [Wed, 22 Sep 2010 13:35:11 +0000 (15:35 +0200)]
ucm: added implementation for other ucm parts, only card name list is missing

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: Introduce "Value {}" section, more implementation work
Jaroslav Kysela [Wed, 22 Sep 2010 12:31:15 +0000 (14:31 +0200)]
ucm: Introduce "Value {}" section, more implementation work

- new "Value {}" section is introduced for read-only values
  describing the PCM and control/mixer IDs (or any other
  things)
- more complete implementation for API functions

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoFix typo for surround PCMs in src/conf/cards/Loopback.conf
Jaroslav Kysela [Wed, 15 Sep 2010 06:11:42 +0000 (08:11 +0200)]
Fix typo for surround PCMs in src/conf/cards/Loopback.conf

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: Moved ucm to src/ucm subdirectory
Jaroslav Kysela [Tue, 7 Sep 2010 13:35:14 +0000 (15:35 +0200)]
ucm: Moved ucm to src/ucm subdirectory

- separate code to more files
- use standard lists to represent structures
- use alsa-lib configuration parser

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoucm: Recode header to be more universal
Jaroslav Kysela [Wed, 25 Aug 2010 07:03:36 +0000 (09:03 +0200)]
ucm: Recode header to be more universal

- merge all similar functions to one - make everything
  string based
- add possibility to create virtual cards
- add comment pairs for the end user interface

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
13 years agoAdd Loopback.conf to define standard PCM devices for snd-aloop driver
Jaroslav Kysela [Wed, 25 Aug 2010 07:04:51 +0000 (09:04 +0200)]
Add Loopback.conf to define standard PCM devices for snd-aloop driver

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoucm: build - add build support for Use Case Manager
Liam Girdwood [Mon, 23 Aug 2010 16:17:19 +0000 (18:17 +0200)]
ucm: build - add build support for Use Case Manager

Add doxygen and make support for UCM.

CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Justin Xu <justinx@slimlogic.co.uk>
Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoucm: core - Add initial Use Case Manager support.
Liam Girdwood [Mon, 23 Aug 2010 16:17:18 +0000 (18:17 +0200)]
ucm: core - Add initial Use Case Manager support.

This patch adds audio Use Case management support to alsa-lib.

UCM is designed to abstract the audio device hardware mixer controls into
high level abstract use cases.

The use case manager works by configuring the sound card ALSA kcontrols to
change the hardware digital and analog audio routing to match the requested
device use case. The use case manager kcontrol configurations are stored in
easy to modify text files.

UCM development has been kindly sponsored by Texas Instruments Inc,
Wolfson Microelectronics PLC and Slimlogic Ltd.

CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Justin Xu <justinx@slimlogic.co.uk>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoucm: header - ALSA Use Case Manager
Liam Girdwood [Mon, 23 Aug 2010 16:17:17 +0000 (18:17 +0200)]
ucm: header - ALSA Use Case Manager

This patch adds the API header for alsa-lib Use Case Management support.

This file defines the public interface exported by UCM to client
applications.

UCM development has been kindly sponsored by Texas Instruments Inc,
Wolfson Microelectronics PLC and Slimlogic Ltd.

CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Justin Xu <justinx@slimlogic.co.uk>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agogeneral: recoded snd_dlobj_ functions
Jaroslav Kysela [Mon, 23 Aug 2010 15:05:36 +0000 (17:05 +0200)]
general: recoded snd_dlobj_ functions

- changed logic to get/put blocks
- added mutex locking of the symbol list
- added reference counting (do not free used dl handles)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoHDA-Intel: do not lock IEC958 Playback switch
Pierre-Louis Bossart [Fri, 20 Aug 2010 01:42:30 +0000 (20:42 -0500)]
HDA-Intel: do not lock IEC958 Playback switch

As discussed with Takashi, removing the lock allows apps to mute
the output using the mixer interface.
Other AES controls remain locked.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agonamehint: Evaluate more possibilities for hw devices
Jaroslav Kysela [Fri, 20 Aug 2010 08:31:17 +0000 (10:31 +0200)]
namehint: Evaluate more possibilities for hw devices

This tries to fix the issue when logical device indexes does not match the
hardware device indexes (like hdmi -> 0:3, 1:7, 2:8, 3:9).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoAdd missing support for 3-byte formats for 16bit put conversion
Takashi Iwai [Fri, 13 Aug 2010 14:11:36 +0000 (16:11 +0200)]
Add missing support for 3-byte formats for 16bit put conversion

In the put conversion, the support for 3-byte formats was missing.
This resulted in inaudible volume with rate plugin & co.

Typos fixed by Mark Hills <mark@pogo.org.uk>

Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agopcm: Fixed typo (wrong deleted line) instroduced in the minperiodsize patch
Jaroslav Kysela [Thu, 12 Aug 2010 06:21:26 +0000 (08:21 +0200)]
pcm: Fixed typo (wrong deleted line) instroduced in the minperiodsize patch

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm: introduce defaults.pcm.compat to change the params choose behaviour
Jaroslav Kysela [Wed, 11 Aug 2010 18:20:40 +0000 (20:20 +0200)]
pcm: introduce defaults.pcm.compat to change the params choose behaviour

Having getenv directly in the function is not a good idea. Allow
configuration of the behaviour change in snd_pcm_param_choose() function
using alsa.conf. Use the environment variable LIBASOUND_COMPAT only
as fallback.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm: add defaults.pcm.minperiodtime parsing
Jaroslav Kysela [Wed, 11 Aug 2010 17:45:40 +0000 (19:45 +0200)]
pcm: add defaults.pcm.minperiodtime parsing

Some broken applications like Audacious don't set any timing parameters.
While the alsa-lib behaviour is to select the smallest period size and
biggest buffer size, the result is the generation of thousands
interrupts per second.

The default value in alsa.conf is 5000usec.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoHDA-Intel: present all 4 HDMI outputs instead of just the first one
Anssi Hannula [Tue, 3 Aug 2010 17:27:49 +0000 (20:27 +0300)]
HDA-Intel: present all 4 HDMI outputs instead of just the first one

Commit 92608badc519a8c1f65d93743396517aaa582b53 in linux kernel added
the possibility of 3 additional HDMI devices on indexes 7-9.

Present all those additional devices using the "hdmi" alias as well.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agotest/latency: fix timediff calculation
Jaroslav Kysela [Wed, 4 Aug 2010 17:47:01 +0000 (19:47 +0200)]
test/latency: fix timediff calculation

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm_plug: fix comparison always true
Anssi Hannula [Mon, 2 Aug 2010 15:50:08 +0000 (18:50 +0300)]
pcm_plug: fix comparison always true

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agopcm - ladspa: fix small memory leak in snd_pcm_ladspa_free_instances()
Jaroslav Kysela [Thu, 22 Jul 2010 09:33:20 +0000 (11:33 +0200)]
pcm - ladspa: fix small memory leak in snd_pcm_ladspa_free_instances()

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoMemory leak in namehint.c
John Lindgren [Tue, 20 Jul 2010 22:38:37 +0000 (00:38 +0200)]
Memory leak in namehint.c

Get_card_name() can be called more than once on the same list, so it
must free the previous list->cardname before replacing it.

Signed-off-by: John Lindgren <john.lindgren@tds.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agotlv: Remove tailing tab after snd_ctl_get_dB_range function
Peter Ujfalusi [Tue, 20 Jul 2010 07:34:54 +0000 (10:34 +0300)]
tlv: Remove tailing tab after snd_ctl_get_dB_range function

Cosmetic fix.
There was a tab instead of new line after snd_ctl_get_dB_range
function.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agotlv: Handle 'holes' in SND_CTL_TLVT_DB_RANGE array
Peter Ujfalusi [Tue, 20 Jul 2010 07:34:53 +0000 (10:34 +0300)]
tlv: Handle 'holes' in SND_CTL_TLVT_DB_RANGE array

When converting from dB to raw value, and DB_RANGE is
used with non overlapping map, dB value in between the
sub ranges will be not found.

For example, if the control has the following:
0: -10dB
1: -5dB
2: 0dB
3: 2dB
4: 4dB

static const unsigned int nonoverlapping_tlv[] = {
        TLV_DB_RANGE_HEAD(2),
        0, 2, TLV_DB_SCALE_ITEM(-1000, 500, 0),
        3, 4, TLV_DB_SCALE_ITEM(200, 200, 0),
};

Range 1: -10 .. 0dB
Range 2: 2 .. 4dB

If user asks for 1dB the snd_tlv_convert_from_dB will not find
the raw value, since the 1dB is not part of either range.

To fix this, we will store the previous non maching range's
maximum raw value. If the dB value is not found in the next range,
we will check, if the requested dB value is in between the current
and the previous range, and if it is than pick the apropriate raw
value based on the xdir (up or down rounding).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agotlv: Check out of range dB with SND_CTL_TLVT_DB_RANGE
Peter Ujfalusi [Tue, 20 Jul 2010 07:34:52 +0000 (10:34 +0300)]
tlv: Check out of range dB with SND_CTL_TLVT_DB_RANGE

When converting from dB value to raw value, the control's
full range was not checked in case of SND_CTL_TLVT_DB_RANGE.

Check out of range dB values, and return apropriate raw
value for the caller.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoalisp - Fix a string format ambiguity
Colin Guthrie [Sun, 28 Feb 2010 22:25:26 +0000 (22:25 +0000)]
alisp - Fix a string format ambiguity

Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agocontrol: tlv: Check dB range only within the control's volume range
Peter Ujfalusi [Wed, 19 May 2010 06:19:26 +0000 (08:19 +0200)]
control: tlv: Check dB range only within the control's volume range

The DB_RANGE need to be used on some HW, since the gain on
volume control is not continuous, and has to be divided into
several sub DB_SCALE ranges.
ASoC has a feature to override the HW default volume range,
and in this case when the volume range is less than the
HW maximum we do not need to go through the whole DB_RANGE,
but we need to stop where the kcontrol's maximum tell us.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoseq: Fix for snd_seq_parse_address()
Pedro Lopez-Cabanillas [Thu, 22 Apr 2010 13:42:20 +0000 (15:42 +0200)]
seq: Fix for snd_seq_parse_address()

snd_seq_parse_address() uses strncmp() to compare the client name
in the string argument with the existing clients, until it finds one
name matching the same leading characters. This may produce wrong
results when there are two sequencer clients with similar names.

Example: "KMidimon" : "Kmid"

Signed-off-by: Pedro Lopez-Cabanillas <pedro.lopez.cabanillas@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoUse thread-safe locale functions if available
Rémi Denis-Courmont [Wed, 21 Apr 2010 16:37:48 +0000 (18:37 +0200)]
Use thread-safe locale functions if available

setlocale() is not thread-safe. It can actually trigger a crash if
another thread uses locale informations at the same time in the process.
Library code should use POSIX newlocale/duplocale/uselocale/freelocale
instead. Those functions only change the locale data for the calling
thread.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoCheck for thread-specific locale support
Rémi Denis-Courmont [Wed, 21 Apr 2010 16:37:47 +0000 (18:37 +0200)]
Check for thread-specific locale support

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoRelease v1.0.23
Jaroslav Kysela [Fri, 16 Apr 2010 11:11:05 +0000 (13:11 +0200)]
Release v1.0.23

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm_share plugin: fix pcm->monotonic setup in open() function
Jaroslav Kysela [Tue, 13 Apr 2010 08:08:56 +0000 (10:08 +0200)]
pcm_share plugin: fix pcm->monotonic setup in open() function

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm_hw - show errno codes
Jaroslav Kysela [Wed, 10 Mar 2010 08:40:02 +0000 (09:40 +0100)]
pcm_hw - show errno codes

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm direct plugins: drain() call might be blocked when threads are used
Jaroslav Kysela [Wed, 3 Mar 2010 09:58:53 +0000 (10:58 +0100)]
pcm direct plugins: drain() call might be blocked when threads are used

Add SETUP state checks and do modifications according latest ALSA driver
(passing wrong event identification).

ALSA bug#4914

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm_dmix: add support for S24_LE format
Jaroslav Kysela [Tue, 2 Mar 2010 13:01:32 +0000 (14:01 +0100)]
pcm_dmix: add support for S24_LE format

From: Bart De Vos <bart_dv@eia.be>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoFix snd_pcm_sw_params_set_period_event() implementation
Jaroslav Kysela [Tue, 23 Feb 2010 09:58:00 +0000 (10:58 +0100)]
Fix snd_pcm_sw_params_set_period_event() implementation

Fix the PCM timer open subdevice number in the pcm_hw plugin.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm: fix read_areas and write_areas
Jaroslav Kysela [Sun, 31 Jan 2010 08:40:08 +0000 (09:40 +0100)]
pcm: fix read_areas and write_areas

The stream state was wrongly updated and handled.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agomodem.conf Off-hook improve behavior
David Fries [Fri, 25 Dec 2009 20:22:38 +0000 (14:22 -0600)]
modem.conf Off-hook improve behavior

Only restore the old value if it differs from the requested
value, because if it has changed restoring the old value
overrides the change.  Take for example, a voice modem with
a .conf that sets preserve off-hook.  Start playback (on-hook
to off-hook), start record (off-hook to off-hook), stop
playback (off-hook to restore on-hook), stop record (on-hook
to restore off-hook), Clearly you don't want to leave the
modem "on the phone" now that there isn't any playback or
recording active.

Signed-off-by: David Fries <david@fries.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoadd atomic operations for Blackfin parts
Mike Frysinger [Sun, 17 Jan 2010 21:55:03 +0000 (16:55 -0500)]
add atomic operations for Blackfin parts

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agopcm: Fix the sound distortions for S24_3LE stream in pcm_softvol plugin
Zerg Cannibal [Mon, 21 Dec 2009 21:19:14 +0000 (22:19 +0100)]
pcm: Fix the sound distortions for S24_3LE stream in pcm_softvol plugin

This patch fixes sound distortions in alsa-lib "softvol"
for S24_3LE sound stream, when softvol slider is not at 0.0dB
position.

Signed-off-by: CannibalZerg <cnb_zerg@yahoo.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agopcm: Close event timer in pcm_hw plugin
Jaroslav Kysela [Mon, 21 Dec 2009 08:09:42 +0000 (09:09 +0100)]
pcm: Close event timer in pcm_hw plugin

Dan McCombs discovered that snd_pcm_close() invocations are not leading
to associated timers being closed, which results in successively more
timers being created but not freed.

Original patch from Daniel T Chen <crimsun@ubuntu.com>.

BugLink: https://bugs.launchpad.net/bugs/451893
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoRelease v1.0.22
Jaroslav Kysela [Wed, 16 Dec 2009 15:18:51 +0000 (16:18 +0100)]
Release v1.0.22

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agomixer: fix enum check
Clemens Ladisch [Mon, 23 Nov 2009 09:56:46 +0000 (10:56 +0100)]
mixer: fix enum check

The recent CHECK_ENUM fix uncovered a bug in snd_mixer_selem_is_enumerated()
which would now return -EINVAL for any non-enum control, which would be
interpreted as 'true' by callers like amixer or alsamixer.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
14 years agosimple_none.c uses HAVE_SOFT_FLOAT it has to include config.h
Michael Olbrich [Mon, 16 Nov 2009 10:31:49 +0000 (11:31 +0100)]
simple_none.c uses HAVE_SOFT_FLOAT it has to include config.h
for this to work properly.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoconfigure.in: fix --without-softfloat
Marc Kleine-Budde [Mon, 16 Nov 2009 10:14:54 +0000 (11:14 +0100)]
configure.in: fix --without-softfloat

Using --without-softfloat or --with-softfloat=no results in using
softfloat. This patch fixes the problem.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoUpdate pcm doc strings
Mads Kiilerich [Sat, 14 Nov 2009 12:48:25 +0000 (13:48 +0100)]
Update pcm doc strings

This is information I needed and is based on my understanding of information
from Takashi Iwai.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoRemove redefinition of _GNU_SOURCE and __USE_GNU
Takashi Iwai [Sun, 8 Nov 2009 08:28:07 +0000 (09:28 +0100)]
Remove redefinition of _GNU_SOURCE and __USE_GNU

Now _GNU_SOURCE is already defined globally in configure.in.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoFix CHECK_ENUM() in simple.c
Takashi Iwai [Sun, 8 Nov 2009 08:26:23 +0000 (09:26 +0100)]
Fix CHECK_ENUM() in simple.c

simple.c: In function ‘snd_mixer_selem_is_enumerated’:
simple.c:881: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’

Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoDefine _GNU_SOURCE so that <fcntl.h> gives O_CLOEXEC
Rémi Denis-Courmont [Thu, 5 Nov 2009 19:17:42 +0000 (21:17 +0200)]
Define _GNU_SOURCE so that <fcntl.h> gives O_CLOEXEC

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoRemove old commented-out FD_CLOEXEC code
Rémi Denis-Courmont [Thu, 5 Nov 2009 19:17:41 +0000 (21:17 +0200)]
Remove old commented-out FD_CLOEXEC code

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoOpen device nodes with close-on-exec flag
Rémi Denis-Courmont [Sat, 7 Nov 2009 19:29:23 +0000 (21:29 +0200)]
Open device nodes with close-on-exec flag

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agoDefined symbols exposing the hrtimer to applications.
Pedro Lopez-Cabanillas [Sat, 7 Nov 2009 23:01:06 +0000 (00:01 +0100)]
Defined symbols exposing the hrtimer to applications.

Signed-off-by: Pedro Lopez-Cabanillas <pedro.lopez.cabanillas@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agonamehint: list card independent devices only once
Jaroslav Kysela [Tue, 3 Nov 2009 15:44:51 +0000 (16:44 +0100)]
namehint: list card independent devices only once

Card-independent devices such as "null" or "pulse" should only be
added once, not once for each card.

Signed-off-by: John Lindgren <john.lindgren@tds.net>\
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agonamehint: Allow snd_device_name_hint to search for CTL devices.
Jaroslav Kysela [Tue, 3 Nov 2009 15:38:30 +0000 (16:38 +0100)]
namehint: Allow snd_device_name_hint to search for CTL devices.

Signed-off-by: John Lindgren <john.lindgren@tds.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agonamehint: add missing list->card initialization
Jaroslav Kysela [Tue, 3 Nov 2009 15:36:55 +0000 (16:36 +0100)]
namehint: add missing list->card initialization

list->card is wrongly assumed to be initialized, but the previous
initialization is within a conditional that is false when only
card-independent devices are found.  (This is the case when searching
for mixers on my system; the end result is that the "pulse" mixer is
listed three times.)

Signed-off-by: John Lindgren <john.lindgren@tds.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoCache libasound.so access in snd_dlopen
Jaroslav Kysela [Tue, 3 Nov 2009 15:34:34 +0000 (16:34 +0100)]
Cache libasound.so access in snd_dlopen

Speed up repeated calls to snd_dlopen by caching the path to
libasound.so; this reduces the instructions executed by
snd_device_name_hint by 40 percent.

Signed-off-by: John Lindgren <john.lindgren@tds.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoFix corruption after snd_device_name_hint()
Takashi Iwai [Tue, 3 Nov 2009 07:57:10 +0000 (08:57 +0100)]
Fix corruption after snd_device_name_hint()

snd_device_name_hint() corrupts the config name space after its call.
This results in the error from the suceeding calls of snd_pcm_open()
after snd_device_name_hint().

The bug is in try_config() in namehint.c; it calls snd_config_delete(res)
but res can be two different objects in the function.  One is the object
obtained via snd_config_search_definition(), and another is the one from
snd_config_search_alias_hooks().  The former is the expanded objects,
thus it should be freed.  But, the latter is a reference, and must not be
freed.

This patch adds the check to free or not.

Reported-by: John Lindgren <john.lindgren@tds.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agohcontrol: fix compare_default function to handle also id.device and id.subdevice
Jaroslav Kysela [Tue, 6 Oct 2009 08:46:54 +0000 (10:46 +0200)]
hcontrol: fix compare_default function to handle also id.device and id.subdevice

In case when kcontrol differs only by device or subdevice numbers, the
find function can give wrong results.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
14 years agoalisp: Comment out an unused function to avoid compiler warnings.
Stefan Schmidt [Wed, 30 Sep 2009 10:36:14 +0000 (12:36 +0200)]
alisp: Comment out an unused function to avoid compiler warnings.

The function should be useful later so keep it in place and just comment it out
until it is actually used.

Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 years agopcm_rate_linear: Annotate unused function parameter to avoid compiler warnings.
Stefan Schmidt [Wed, 30 Sep 2009 10:36:13 +0000 (12:36 +0200)]
pcm_rate_linear: Annotate unused function parameter to avoid compiler warnings.

Signed-off-by: Stefan Schmidt <stefan@slimlogic.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>