Commit graph

101 commits

Author SHA1 Message Date
Bernd Kuhls
c72bbed825 Fix symver build error on non-ELF platforms
The following error is observed on Microblaze [1] build:

    error: symver is only supported on ELF platforms

due to using __attribute__((symver)) on non-ELF platform.

[1] http://autobuild.buildroot.net/results/1e9/1e965d83d75615f35308440c5db044314a349357/build-end.log

ac_check_attribute_symver.m4 was downloaded from
https://github.com/smuellerDD/libkcapi/blob/master/m4/ac_check_attribute_symver.m4

Fixes: https://github.com/alsa-project/alsa-lib/pull/334
Signed-off-by: Tan En De <ende.tan@starfivetech.com>
Signed-off-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-09-01 16:54:44 +02:00
borine
bbe38d055f doxygen: silence warning from asoundlib.h
From: borine@github
Link: https://github.com/alsa-project/alsa-lib/pull/340
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-09-01 16:12:16 +02:00
Jaroslav Kysela
6142ff0ca7 configure: add AC_SYS_LARGEFILE
The support for the large files may be disabled using
--disable-largefile configure parameter.

Related: https://github.com/alsa-project/alsa-lib/pull/333
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-08-30 17:04:58 +02:00
Takashi Iwai
f47763d2c1 ump: Add initial support
This patch adds the initial support for UMP rawmidi access.
It's merely the wrapper for the standard rawmidi to access to the UMP
rawmidi device.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-06 15:13:27 +02:00
Jaroslav Kysela
904f0f7e7a Release v1.2.9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-04 09:16:16 +02:00
SASANO Takayoshi
fea9fc2298 configure: avoid libdl detecion on *BSD
NetBSD and OpenBSD has no libdl
FreeBSD and DragonFlyBSD has libdl but dummy

These OSes are no need to use -ldl to use dlopen()

Fixes: https://github.com/alsa-project/alsa-lib/pull/290
Signed-off-by: SASANO Takayoshi <uaa@uaa.org.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-29 19:00:59 +01:00
Jaroslav Kysela
9447e57d7c Release v1.2.8
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-10-24 10:17:27 +02:00
SASANO Takayoshi
f89245ee66 add FreeBSD build support (except test/)
Note: NetBSD and OpenBSD has both <endian.h> and <sys/endian.h>

Fixes: https://github.com/alsa-project/alsa-lib/pull/250
Signed-off-by: SASANO Takayoshi <uaa@uaa.org.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-10-17 13:11:34 +02:00
SASANO Takayoshi
b33ef3f73d add NetBSD/OpenBSD build support (except test/)
Fixes: https://github.com/alsa-project/alsa-lib/pull/250
Signed-off-by: SASANO Takayoshi <uaa@uaa.org.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-10-17 13:11:29 +02:00
Jaroslav Kysela
27cfa707e3 Release v1.2.7.2
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-07-08 17:34:30 +02:00
Jaroslav Kysela
f91c89da99 Release v1.2.7.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-06-17 11:42:05 +02:00
Jaroslav Kysela
d836146e91 Release v1.2.7
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 16:25:33 +02:00
Jaroslav Kysela
a19ce72310 configure: remove --with-lfs option, but keep the autodetection code
Fixes: a513e65e ("configure: add --with-lfs option")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-20 14:35:11 +02:00
Jaroslav Kysela
a513e65e19 configure: add --with-lfs option
We are forcibly use the LFS (64-bit) calls in the source now. Add a new
check to the configure script and use compatibility defines when those
calls are not available for a reason.

Fixes: https://github.com/alsa-project/alsa-lib/pull/223
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-20 09:55:17 +02:00
Jaroslav Kysela
1454b5f118 Release v1.2.6.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-09 14:17:59 +01: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