Commit Graph

87 Commits

Author SHA1 Message Date
xuxuehai
582d7b6130 commit msg
Signed-off-by: xuxuehai <xuxuehai2@huawei.com>
2024-05-16 17:35:05 +08:00
Jaroslav Kysela
85b3c276d2 Release v1.2.6
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-06 11:17:27 +01:00
Jaroslav Kysela
0e2b167e93 configure: bumb version to 1.2.6pre1 (for alsactl/alsa-utils)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-10-28 12:13:44 +02:00
Chih-Wei Huang
76d1aa0cd7 configure: check if eaccess() is available
To fix the build error on Android:
  src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (eaccess(filename, R_OK))
                    ^
  src/ucm/parser.c:2521:7: note: did you mean 'access'?

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-06-14 10:10:58 +02:00
Jaroslav Kysela
9f16fa5729 Release v1.2.5
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-05-27 23:30:16 +02:00
Jaroslav Kysela
278462583c control: add missing src/conf/ctl/Makefile.am
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-04-23 13:06:07 +02:00
Jaroslav Kysela
a64391a428 control: remap plugin - initial version
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-04-07 16:22:50 +02:00
Jaroslav Kysela
33ddf2e1c7 configure: bumb version to 1.2.5pre1 (for CI tests)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-03-05 18:36:01 +01:00
Jaroslav Kysela
49bd4b198e Release v1.2.4
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-10-19 11:45:13 +02:00
Takashi Iwai
4759865c86 pcm: dmix: make lockless operation optional
The recently reported (but a long-standing) bug about the
unconditional semaphore usage in the dmix implies that basically we've
had no problem with the locking in the practical usages over years.
Although the lockless operation has a clear merit, it's a much higher
CPU usage (especially on some uncached pages), and it might lead to a
potential deadlock in theory (which is hard to reproduce at will,
though).

This patch introduces a new configure option "--enable-lockless-dmix"
or "--disable-lockless-dmix" to let user choose the default dmix
operation mode.  The usage of the lockless mixing has been already
conditionally enabled via asoundrc and card config
"direct_memory_access", so we just need to set the default value based
on it.

In this patch, the default is set off to the lockless mixing, i.e. the
generic mixing is chosen.  It makes more sense from the performance
POV.  For any users who still require the lockless operation, it can
be enabled either via configure option or the asoundrc.

The magic number used in the shmem is also changed depending on the
operation mode.  It's just for safety, not to conflict both operation
modes with each other.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-07-07 11:56:41 +02:00
Jaroslav Kysela
cac5a62dcf Release v1.2.3.2
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-06-29 12:51:08 +02:00
Jaroslav Kysela
b13b911605 Release v1.2.3.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-06-18 19:24:32 +02:00
Jaroslav Kysela
141acab892 Release v1.2.3
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-06-08 13:42:38 +02:00
Frédéric Recoules
0fd7f0cdc5 pcm: dmix: assembly: fix the interface for safety (mmx)
- add mm0 in the clobber list if the compiler
  is aware of the mmx technology;
- otherwise, add the mmx aliased x87 floating point
  registers in the clobbers;
- the configure now checks if the compiler is aware of
  the MMX technology.

  The compiler assumes none of the mmx or x87 registers are used
  by the function. If it chooses to store some data in them, they
  will be overwritten by the chunk.
  Recall that any mmx instruction invalidate the whole set of
  x87 floating point registers.

  Note: currently does not impact the binary output.

Signed-off-by: Frédéric Recoules <frederic.recoules@orange.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-05-06 22:26:04 +02:00
Jaroslav Kysela
1654f38a29 configure: add --embed for python3-config (python 3.8)
Fixes: https://github.com/alsa-project/alsa-lib/issues/33

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-03-04 11:28:53 +01:00
Jaroslav Kysela
717a8425ff Release v1.2.2
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-02-19 10:35:39 +01:00
Tanu Kaskinen
b2fe99277a configure.ac: remove an unnecessary libtool fix
This code was added in commit 75d393a563
without explaining why. I assume it was a mistake, since it looks like
the libtool problem should have gone away a long time ago. The referenced
wiki page https://wiki.debian.org/RpathIssue says:

    Since libtool 1.5.2 (released 2004-01-25), on Linux libtool no
    longer sets RPATH for any directories in the dynamic linker search
    path, so this should no longer be an issue unless upstream used a
    really old version of libtool when creating their distribution
    tarball.

This code caused problems in OpenEmbedded, where the libtool script is
named "x86_64-oe-linux-libtool" or similar rather than just "libtool",
so the sed command failed with a file not found error. Rather than
adapting the code to OpenEmbedded's peculiarities, it seems best to just
remove the unnecessary code altogether.

Note: The rpath is set (hardcoded) for 'make' but it is corrected
for 'make install' by libtool.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-01-24 09:55:51 +01:00
Takashi Iwai
ae564665ec Fix alsa/sound/*.h for external programs
The recent update of sound/*.h to sync with the latest Linus uapi
files broke the build of alsa-tools programs.  These files used to be
a modified version of Linux sound/* header files, so that they could
be built without Linux headers.  The special prefix like __user and
other things were worked around there.

We may do that again, but a better approach is to fix those things in
Linux kernel uapi side, while we keep the minimal workaround in
alsa-lib such as the __u16 and co type definitions.

This patch is such an attempt, namely:
- Keep the original $LINUX/uapi/sound/*.h in include/sound/uapi
  directory
- The "fixes" are applied to some uapi headers, so that they don't
  contain Linux-specific prefix and use of opaque struct like
  snd_ctl_elem_id
- The uapi headers are included indirectly from include/sound/*.h
- Some headers have inclusion of type_compat.h for the Linux variable
  types and prefixes
- type_compat.h tries to use <linux/types.h> when __linux__ is
  defined, instead of the own conflicting definitions

The last type might need a bit more adjustment depending on the
compiler, but it can be fixed locally without disturbing else.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-12-20 16:43:50 +01:00
Jaroslav Kysela
1c7e46d5d8 Release v1.2.1.2
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-29 16:35:31 +01:00
Jaroslav Kysela
1d848ab739 Release v1.2.1.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-19 14:16:27 +01:00
Jaroslav Kysela
8006a8e03c Release v1.2.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-14 18:02:27 +01:00
Jaroslav Kysela
cdc8aacbb5 topology: remove configuration files (moved to alsa-topology-conf repository)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-14 15:01:16 +01:00
Jaroslav Kysela
75d393a563 create separated libatopology library with the topology routines
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-14 15:01:12 +01:00
Jaroslav Kysela
1f37ba2a2b ucm: remove configuration files (moved to alsa-ucm-conf repository)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-11-14 15:00:54 +01:00
Takashi Iwai
108a2f4379 ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
Adding a new Conexant CX2072X codec profile and reusing the existing
BYT/CHT platform snippets.

Currently tested only on ASUS E200HA laptop.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-05-23 17:42:42 +02:00
Jaroslav Kysela
9122992a91 Release v1.1.9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-05-10 08:57:21 +02:00
Srinivas Kandagatla
7442c8b9be ucm: Add ucm files for DB820c board
DB820c board is based of MSM8996 Qualcomm SoC, which has support for both
Digital and Analog audio. Digital audio is over HDMI and analog is over
WCD9335 codec via SLIMbus.

Board itself has HDMI port, a 3.5mm audio Jack and an Audio expansion
connector.
This patch adds support for HDMI port and 3.5mm jack.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-01-29 14:33:17 +01:00
Jaroslav Kysela
ef7b098deb Release v1.1.8
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-01-07 13:55:38 +01:00
Hans de Goede
f664a7aec9 conf/ucm: bytcht-es8316: Add long-name UCM profiles
After recent kernel work, the kernel now sets a long-name for bytcht-es8316
boards which indicates if a single (mono) speaker or stereo speakers are
used and if in1 or in2 is used for the internal mic (the headset mic will
be on the other input).

This commit adds UCM profiles for bytcht-es8316 boards using these new
long-names, based on the generic bytcht-es8316 profile.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-01-07 12:41:42 +01:00
Hans de Goede
506cca6eaa conf/ucm: Add UCM profile for bytcht-es8316 boards
Add an UCM profile for Bay Trail and Cherry Trail boards with an
ES8316 codec.

Re-use the existing platform enable and disable sequences for BYT/CHT SST
support and add a codecs/es8316 dir with codec specific enable / disable
sequences for the various inputs and outputs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-01-07 12:41:28 +01:00
Russell Parker
e850d8e2e3 Create shared {En,Dis}ableSeq.conf components for rt5645 variants
Factor out the common enable and disable sequences used
in rt5645 variants, including the rt5650. Move the sequences
into a new component directory codecs/rt5645/ along with
a Makefile.

Some lines like
    cset "name='Stereo1 ADC1 Mux' 1"
and
    cset "name='I2S2 Func Switch' on"
are not set set in the chtrt5650 UCM sequences and thus are not present
in the new component, in order to maximize reuse.

Signed-off-by: Russell Parker <russell.parker7@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-01-07 11:26:28 +01:00
Hans de Goede
ce674664d2 conf/ucm: bytcr-rt5651: Add bytcr-rt5651-stereo-spk-dmic-mic config
Add a config for boards which use a digital mic as internal mic,
combined with having the headset mic on in2.

An example of such a board is the Point of View TAB-P1006W-232 (v1.0) tablet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-01-01 20:37:16 +01:00
Hui Wang
05aab8deab conf/ucm: kblrt5660: Add ucm setting for Dell Edge IoT platform
The new generation of Dell Edge IoT platform is based on Intel
Kabylake platform, and the audio codec is ALC3277 which is 100%
compatible with RT5660 in I2S mode.

The audio design on this IoT platform is as below:
 - Intel kabylake platform
 - connect the codec ALC3277 via SSP0
 - line-out and line-in with Micbias jacks
 - line-out mute control and jack detection of line-out and line-in
 - two HDMI ports with audio capability

Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-01-01 09:36:17 +01:00
Russell Parker
1da297fa5d conf/ucm: chtrt5650: Add UCM config for chtrt5650
Add a UCM configuration for the rt5650 codec. Tested on
a Samsung Chromebook 3. Adapted with minor modifications
from GitHub user evan-a-a's gist:
https://gist.github.com/evan-a-a/86b2a698708074530e2d0ee7c6498767

Signed-off-by: Russell Parker <russell.parker7@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-12-30 11:26:38 +01:00
Takashi Iwai
d48adc2a20 conf: Move UCM profile snippets into components subdirectory
We have placed UCM profile snippets to be included by the main config
files also in the same directory, src/conf/ucm, it confuses alsaucm
program that scans over all subdirectories.  It thinks such a file is
also the main config file, and spews errors like:
  % alsaucm
  ALSA lib utils.c:67:(uc_mgr_config_load) could not open configuration file /usr/share/alsa/ucm/bytcr/bytcr.conf
  ALSA lib parser.c:1427:(load_master_config) error: could not parse configuration for card bytcr
  alsaucm: unable to obtain card list: No such file or directory

Actually we already defined the subdirectory for such components, and
they are skipped at parsing the main configs.  So we just need to move
the files there -- this is what's done here.

One more thing done here is to add a new component subdirectory,
platforms, for definitions bytcr/* that don't match with neither the
existing ones (codecs nor dsps).

Suggested-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Jaroslav Kysela <perex@perex.cz>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-11-28 18:21:14 +01:00
Jaroslav Kysela
3ec6dce519 Release v1.1.7
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-10-16 10:08:35 +02:00
Hans de Goede
be91b595f8 conf/ucm: bytcr-rt5651: Add bytcr-rt5651-mono-spk-in2-mic-hp-swapped config
Add a longname profile for devices with a mono speaker, the Internal Mic
hooked up to IN2 and the left and right channels of their headphones
output swapped.

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-08-08 11:44:13 +02:00
Hans de Goede
bd770a44b2 conf/ucm: bytcr-rt5651: Add long-name UCM profiles
After recent kernel work, the kernel now sets a long-name for bytcr-rt5651
boards which indicates if a single (mono) speaker or stereo speakers are
used and if in1, in2, or in1 and 2 are used for the internal mic(s) (the
headset mic sofar is always on in3).

This commit adds UCM profiles for bytcr-rt5651 boards using these new
long-names, based on the generic bytcr-rt5651 profile.

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-08-08 11:44:13 +02:00
Hans de Goede
1bcb531923 conf/ucm: bytcr-rt5651: Use generic SSP enable + disable sequence, support SSP0
Use the generic SSP enable sequence from bytcr/PlatformEnableSeq.conf,
for boards using SSP2 this is identical the code it replaces and this
adds support for boards using SSP0.

This fixes sound not working on Bay Trail CR tablets with a rt5651 codec.

This commit also calls the generic disable sequence on shutdown
(this is new).

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-08-08 11:44:13 +02:00
Hans de Goede
e6754783f7 conf/ucm: chtnau8824: Add Cube iWork8 Air and Pipo W2S specific profiles
The Cube iWork8 Air and Pipo W2S tablets both only have a single speaker.
Add long-name profiles for them which are identical to the default
chtnau8824 profile, except that they include the nau8824/MonoSpeaker.conf
snippet instead of the nau8824/Speaker.conf one.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-05-31 17:55:44 +02:00
Hans de Goede
f3b26e3b8d conf/ucm: chtnau8824: Add UCM profile for chtnau8824 boards
Add UCM profile for chtnau8824 boards based on:
https://github.com/plbossart/UCM/blob/master/chtnau8824

Split into multiple files in the same way as this was done for the
bytcr-rt5640 support, re-using the existing ucm/PlatformEnableSeq.conf
and ucm/PlatformDisableSeq.conf files for the SST mixer settings.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-05-31 17:55:44 +02:00
Hans de Goede
a5343f6fb6 conf/ucm: bytcr-rt5640: Add long-name UCM profiles
With a recently merged kernel commit, the kernel now sets a long-name for
bytcr-rt5640 boards which indicates if a single (mono) speaker or stereo
speakers are used and wether dmic1, in1 or in3 is used for the internal
mic (the headset mic sofar is always in2).

This commit adds UCM profiles for bytcr-rt5640 boards using these new
long-names, based on the generic bytcr-rt5640 profile.

The added profiles have the unnecessary input / output options from the
generic profile removed leaving only 2 input and 2 output options, which
are automatically switched between by e.g. pulse based on jack-detect.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-05-31 17:55:44 +02:00
Hans de Goede
0f6f2a854f conf/ucm: bytcr-rt5640: Add generic bytcr-rt5640 UCM profile
This commit adds the generic UCM profile for bytcr-rt5640 boards from:
https://github.com/plbossart/UCM, plus the fixes from this pull-req:
https://github.com/plbossart/UCM/pull/31

The profile has been split up into separate per input / output files to
allow for creation of long-name profiles with the specific input / output
combinations found on a board without needing to copy and paste things.

Note this profile exports all inputs and both stereo/mono speaker setups
even though a typical device will not use all. Ideally a long-name based
device specific profile made up of the various parts should be used
instead.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-05-31 17:55:28 +02:00
Takashi Iwai
44f499bb22 configure: Fix forgotten ucm entry
The previous commit forgot to add to configure.ac.  Fix it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-05-03 08:40:20 +02:00
Hans de Goede
5a2df9449d conf/ucm: chtrt5645: At config for the Lenovo Ideapad Miix 320
The Lenovo Ideapad Miix 320 uses a digital mic connected to the DMIC2 input
(unlike the Asus T100HA which has it connected to the DMIC1 input), add a
long-name config specific for the Miix 320, which is a copy of the standard
chtrt5645 config with the internal analog mic section replaced with one
for a digital mic connected to the DMIC2 input.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-05-02 09:11:36 +02:00
Hans de Goede
c22a7f423d conf/ucm: chtrt5645: At config for the Asus T100HA
The Asus T100HA uses a digital mic rather then an analog one, add
long-name config specific for the T100HA, which is a copy of the standard
chtrt5645 config with the internal analog mic section replaced with one
for the digital mic found on the Asus T100HA.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-05-02 09:11:00 +02:00
Jaroslav Kysela
17bc74d3a2 configure: remove src/conf/alsa.conf.d/Makefile
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-04-10 08:57:07 +02:00
Jaroslav Kysela
1a95a63524 Release v1.1.6
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-04-03 09:01:36 +02:00
Jaroslav Kysela
345843fc24 modules: smixer_python - add support for python3
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2018-03-27 14:51:39 +02:00
Hans de Goede
60ed28999a conf/ucm: Add chtrt5645-mono-speaker-analog-mic configuration
Add a configuration for Cherry Trail boards which use a rt5645 codec
connected to a mono speaker and with an analog mic on IN2N + IN2P.

The chtrt5645-mono-speaker-analog-mic/HiFi.conf for this is based on the
latest version from https://github.com/plbossart/UCM/tree/master/chtrt5645
with all the unused input options removed and some changes made to make
the analog mic work.

This commit also adds 2 ucm dirs with the longname of 2 boards known to use
this setup, which simply contain a symlink to the generic
chtrt5645-mono-speaker-analog-mic entry.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-01-09 08:56:27 +01:00