Detailed changes v1.2.8 v1.2.9: Difference between revisions
m (1 revision imported) |
Prefix>Perex No edit summary |
||
Line 8: | Line 8: | ||
===Core=== | ===Core=== | ||
- Release v1.2.9 | - Release v1.2.9 | ||
- pcm: add new symbols to Versions.in | - pcm: add new symbols to Versions.in | ||
- configure: avoid libdl detecion on *BSD | - configure: avoid libdl detecion on *BSD | ||
<code> | <code> | ||
NetBSD and OpenBSD has no libdl | NetBSD and OpenBSD has no libdl | ||
Line 19: | Line 16: | ||
These OSes are no need to use -ldl to use dlopen()</code> | These OSes are no need to use -ldl to use dlopen()</code> | ||
- include: alsa-symbols.h - use newer gcc symver function attribute | - include: alsa-symbols.h - use newer gcc symver function attribute | ||
<code> | <code> | ||
Use the symver function attribute for newer gccs (version 11+). | Use the symver function attribute for newer gccs (version 11+). | ||
Line 26: | Line 22: | ||
===Control API=== | ===Control API=== | ||
- pcm: add SND_CTL_EINTR open mode | - pcm: add SND_CTL_EINTR open mode | ||
<code> | <code> | ||
Add possibility to return -EINTR instead waiting for the event. The | Add possibility to return -EINTR instead waiting for the event. The | ||
Line 34: | Line 29: | ||
===PCM API=== | ===PCM API=== | ||
- pcm: hw: fix the silence size setup in drain | - pcm: hw: fix the silence size setup in drain | ||
<code> | <code> | ||
The silence size cannot exceed the silence threshold. Move the check | The silence size cannot exceed the silence threshold. Move the check | ||
Line 42: | Line 36: | ||
Suggested-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de></code> | Suggested-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de></code> | ||
- pcm: remove duplicate SND_PCM_HW_PARAM_{FIRST,LAST}_* #defines | - pcm: remove duplicate SND_PCM_HW_PARAM_{FIRST,LAST}_* #defines | ||
- pcm: add SND_PCM_EINTR open mode | - pcm: add SND_PCM_EINTR open mode | ||
<code> | <code> | ||
Add possibility to return -EINTR instead waiting for the event. The | Add possibility to return -EINTR instead waiting for the event. The | ||
Line 51: | Line 43: | ||
BugLink: https://github.com/alsa-project/alsa-lib/issues/228</code> | BugLink: https://github.com/alsa-project/alsa-lib/issues/228</code> | ||
- pcm: improve handling for snd_pcm_wait() | - pcm: improve handling for snd_pcm_wait() | ||
<code> | <code> | ||
The snd_pcm_wait() function is called also internally from | The snd_pcm_wait() function is called also internally from | ||
Line 61: | Line 52: | ||
the wait place.</code> | the wait place.</code> | ||
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE | - pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE | ||
<code> | <code> | ||
The application may not require to touch the playback | The application may not require to touch the playback | ||
Line 69: | Line 59: | ||
rewind operation).</code> | rewind operation).</code> | ||
- pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN | - pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN | ||
<code> | <code> | ||
Handle the driver informing us that it is not necessary to set up | Handle the driver informing us that it is not necessary to set up | ||
Line 76: | Line 65: | ||
pointer.</code> | pointer.</code> | ||
- pcm: hw: add drain_silence configuration keyword | - pcm: hw: add drain_silence configuration keyword | ||
<code> | <code> | ||
# Add silence in drain (-1 = auto /default/, 0 = off, > 0 milliseconds) | # Add silence in drain (-1 = auto /default/, 0 = off, > 0 milliseconds) | ||
[drain_silence INT]</code> | [drain_silence INT]</code> | ||
- pcm: hw: setup explicit silencing for snd_pcm_drain by default | - pcm: hw: setup explicit silencing for snd_pcm_drain by default | ||
<code> | <code> | ||
Some applications may not alignt transfers to the period size | Some applications may not alignt transfers to the period size | ||
Line 93: | Line 80: | ||
Related: https://lore.kernel.org/alsa-devel/20230405201219.2197789-2-oswald.buddenhagen@gmx.de/</code> | Related: https://lore.kernel.org/alsa-devel/20230405201219.2197789-2-oswald.buddenhagen@gmx.de/</code> | ||
- compilation: fix ANDROID -> __ANDROID__ define detection | - compilation: fix ANDROID -> __ANDROID__ define detection | ||
- pcm: avoid endless loop in snd_pcm_sw_params_default() | - pcm: avoid endless loop in snd_pcm_sw_params_default() | ||
<code> | <code> | ||
BugLink: https://lore.kernel.org/alsa-devel/167734349294.22.1388671545195719262@mailman-web.alsa-project.org/</code> | BugLink: https://lore.kernel.org/alsa-devel/167734349294.22.1388671545195719262@mailman-web.alsa-project.org/</code> | ||
- pcm: hw - fix return code checking in snd_pcm_hw_hw_refine | - pcm: hw - fix return code checking in snd_pcm_hw_hw_refine | ||
<code> | <code> | ||
The isse was introduced in commit 7f2d6c3</code> | The isse was introduced in commit 7f2d6c3</code> | ||
- pcm: rate: fix last_commit_ptr boundary wrapping | - pcm: rate: fix last_commit_ptr boundary wrapping | ||
<code> | <code> | ||
Wrap last_commit_ptr using boundary. Was just wrapped to 0, which is | Wrap last_commit_ptr using boundary. Was just wrapped to 0, which is | ||
Line 111: | Line 94: | ||
Link: https://lore.kernel.org/alsa-devel/20221230164814.901457-1-consult.awy@gmail.com/</code> | Link: https://lore.kernel.org/alsa-devel/20221230164814.901457-1-consult.awy@gmail.com/</code> | ||
- pcm: route/softvol use snd_config_get_ireal vs get_real to handle also integers | - pcm: route/softvol use snd_config_get_ireal vs get_real to handle also integers | ||
<code> | <code> | ||
Link: https://lore.kernel.org/alsa-devel/f9a7ad6a256d4ad7a31642dcf875d436@axis.com/</code> | Link: https://lore.kernel.org/alsa-devel/f9a7ad6a256d4ad7a31642dcf875d436@axis.com/</code> | ||
- pcm: fix the fast_ops pcm argument for fast_ops | - pcm: fix the fast_ops pcm argument for fast_ops | ||
<code> | <code> | ||
The fast_ops callback invocation must always pass the fast_op_arg | The fast_ops callback invocation must always pass the fast_op_arg | ||
as the pcm argument. Plugins expect that.</code> | as the pcm argument. Plugins expect that.</code> | ||
- include: pcm_old.h - use a macro for the symbol versioning | - include: pcm_old.h - use a macro for the symbol versioning | ||
<code> | <code> | ||
Make the header file more readable and error prone.</code> | Make the header file more readable and error prone.</code> | ||
- pcm: rate - correct the previous fix for snd_pcm_rate_may_wait_for_avail_min() | - pcm: rate - correct the previous fix for snd_pcm_rate_may_wait_for_avail_min() | ||
<code> | <code> | ||
The previous fix in aa4f56c3 was not correct. The root of the cause is | The previous fix in aa4f56c3 was not correct. The root of the cause is | ||
Line 130: | Line 109: | ||
where the improper pcm argument is passed to the fast_ops function.</code> | where the improper pcm argument is passed to the fast_ops function.</code> | ||
- pcm: rate - fix the crash in snd_pcm_rate_may_wait_for_avail_min() | - pcm: rate - fix the crash in snd_pcm_rate_may_wait_for_avail_min() | ||
<code> | <code> | ||
The pcm argument passed to the conversion function in | The pcm argument passed to the conversion function in | ||
Line 142: | Line 120: | ||
===Topology API=== | ===Topology API=== | ||
- topology: Parse ignore_suspend property for dapm widget | - topology: Parse ignore_suspend property for dapm widget | ||
<code> | <code> | ||
snd_soc_tplg_dapm_widget has ignore_suspend field, but there is no way | snd_soc_tplg_dapm_widget has ignore_suspend field, but there is no way | ||
Line 148: | Line 125: | ||
Fix this by adding parsing code.</code> | Fix this by adding parsing code.</code> | ||
- topology: Add decompilation support for ignore_suspend | - topology: Add decompilation support for ignore_suspend | ||
<code> | <code> | ||
Previous patch added build support for ignore_suspend, however it should | Previous patch added build support for ignore_suspend, however it should | ||
Line 154: | Line 130: | ||
lose data.</code> | lose data.</code> | ||
- topology: Parse ignore_suspend flag | - topology: Parse ignore_suspend flag | ||
<code> | <code> | ||
XXX_VOICE_WAKEUP also known as 'ignore_suspend' is already processed by | XXX_VOICE_WAKEUP also known as 'ignore_suspend' is already processed by | ||
Line 161: | Line 136: | ||
dai and link parsing mechanism.</code> | dai and link parsing mechanism.</code> | ||
- topology: ctl - remove the wrong (debug) code | - topology: ctl - remove the wrong (debug) code | ||
<code> | <code> | ||
This code was commited by mistake. It was used for testing | This code was commited by mistake. It was used for testing | ||
Line 169: | Line 143: | ||
Related-to: 78b20e3c ("test: latency - use snd_pcm_format_physical_width()")</code> | Related-to: 78b20e3c ("test: latency - use snd_pcm_format_physical_width()")</code> | ||
- test: latency - use snd_pcm_format_physical_width() | - test: latency - use snd_pcm_format_physical_width() | ||
<code> | <code> | ||
We need to allocate frames using the physical size not | We need to allocate frames using the physical size not | ||
Line 175: | Line 148: | ||
===Use Case Manager API=== | ===Use Case Manager API=== | ||
- compilation: fix ANDROID -> __ANDROID__ define detection | - compilation: fix ANDROID -> __ANDROID__ define detection | ||
- ucm: fix geti() macro - return zero on success | - ucm: fix geti() macro - return zero on success | ||
- ucm: simplify and fix the previous patch (geti) | - ucm: simplify and fix the previous patch (geti) | ||
<code> | <code> | ||
Use macro to maintain only one code. The status may be 0 or 1 - handle | Use macro to maintain only one code. The status may be 0 or 1 - handle | ||
Line 187: | Line 157: | ||
str should be freed even when the error is returned.</code> | str should be freed even when the error is returned.</code> | ||
- ucm: add existence checks to geti calls | - ucm: add existence checks to geti calls | ||
<code> | <code> | ||
Right now in snd_use_case_geti you cannot tell if the item being queried | Right now in snd_use_case_geti you cannot tell if the item being queried | ||
Line 198: | Line 167: | ||
Also clean up some trailing white space nearby.</code> | Also clean up some trailing white space nearby.</code> | ||
- ucm: fix possible memory leak in execute_sysw() | - ucm: fix possible memory leak in execute_sysw() | ||
- ucm: execute_sysw - fix possible use-after-free | - ucm: execute_sysw - fix possible use-after-free | ||
- ucm: handle empty string also for ${env:} substitution | - ucm: handle empty string also for ${env:} substitution | ||
- ucm: clarify set_defaults calls | - ucm: clarify set_defaults calls | ||
<code> | <code> | ||
- do full reset in snd_use_case_mgr_reload</code> | - do full reset in snd_use_case_mgr_reload</code> | ||
- ucm: fix enhanced ID parsing in snd_use_case_parse_ctl_elem_id() | - ucm: fix enhanced ID parsing in snd_use_case_parse_ctl_elem_id() | ||
===Compatibility routines=== | ===Compatibility routines=== | ||
- type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined | - type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined | ||
===Configuration=== | ===Configuration=== | ||
- conf/emu10k1: remove compat with two decades old drivers | - conf/emu10k1: remove compat with two decades old drivers | ||
<code> | <code> | ||
There really isn't much of a point to clutter the files with this.</code> | There really isn't much of a point to clutter the files with this.</code> | ||
- compilation: fix ANDROID -> __ANDROID__ define detection | - compilation: fix ANDROID -> __ANDROID__ define detection | ||
- alsa-lib: conf - fix possible use-after-free in get_char_skip_comments | - alsa-lib: conf - fix possible use-after-free in get_char_skip_comments | ||
===Kernel Headers=== | ===Kernel Headers=== | ||
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE | - pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE | ||
<code> | <code> | ||
The application may not require to touch the playback | The application may not require to touch the playback | ||
Line 231: | Line 190: | ||
rewind operation).</code> | rewind operation).</code> | ||
- pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN | - pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN | ||
<code> | <code> | ||
Handle the driver informing us that it is not necessary to set up | Handle the driver informing us that it is not necessary to set up | ||
Line 239: | Line 197: | ||
===Test/Example code=== | ===Test/Example code=== | ||
- test: BSD-like fixes | - test: BSD-like fixes | ||
<code> | <code> | ||
- rename devname -> pcmdev, it conflicts *BSD <stdlib.h> function | - rename devname -> pcmdev, it conflicts *BSD <stdlib.h> function | ||
Line 247: | Line 204: | ||
- fix warning</code> | - fix warning</code> | ||
- type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined | - type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined | ||
- test: latency - --policy option - allow using SCHED_OTHER | - test: latency - --policy option - allow using SCHED_OTHER | ||
- test: latency - add --policy option to allow using SCHED_FIFO | - test: latency - add --policy option to allow using SCHED_FIFO | ||
- test: latency - usleep should not be used in the block mode | - test: latency - usleep should not be used in the block mode | ||
- test: latency - add -y option (I/O usleep) | - test: latency - add -y option (I/O usleep) | ||
- latency: add timestamps to the POS lines | - latency: add timestamps to the POS lines | ||
<code> | <code> | ||
- remove first capture pos line | - remove first capture pos line | ||
- measure the snd_pcm_start() call, too</code> | - measure the snd_pcm_start() call, too</code> | ||
- test: latency - add more realtime tests | - test: latency - add more realtime tests | ||
<code> | <code> | ||
Add '-x' and '-X' tests and '-U' - I/O update mode based | Add '-x' and '-X' tests and '-U' - I/O update mode based | ||
Line 273: | Line 223: | ||
llocation for the stream buffer).</code> | llocation for the stream buffer).</code> | ||
- test: latency - use snd_pcm_format_physical_width() | - test: latency - use snd_pcm_format_physical_width() | ||
<code> | <code> | ||
We need to allocate frames using the physical size not | We need to allocate frames using the physical size not | ||
Line 279: | Line 228: | ||
===Utils=== | ===Utils=== | ||
- utils/alsa.m4: include <stdlib.h> for exit() | - utils/alsa.m4: include <stdlib.h> for exit() | ||
<code> | <code> | ||
Clang 16 makes -Wimplicit-function-declaration an error by default | Clang 16 makes -Wimplicit-function-declaration an error by default | ||
Line 287: | Line 235: | ||
===Core=== | ===Core=== | ||
- Release v1.2.9 | - Release v1.2.9 | ||
- configure.ac: fix build without dlfcn.h | - configure.ac: fix build without dlfcn.h | ||
<code> | <code> | ||
Fix the following static build failure (i.e. without dlfcn.h) raised | Fix the following static build failure (i.e. without dlfcn.h) raised | ||
Line 302: | Line 248: | ||
- http://autobuild.buildroot.org/results/1173a1ee28a58ce565a3274f35e868c35bb2e04e</code> | - http://autobuild.buildroot.org/results/1173a1ee28a58ce565a3274f35e868c35bb2e04e</code> | ||
- chore: Add link to master branch on GitHub Actions | - chore: Add link to master branch on GitHub Actions | ||
<code> | <code> | ||
Singed-off-by: Tomohiro IKEDA <tomohiro.ikeda@justincase-tech.com></code> | Singed-off-by: Tomohiro IKEDA <tomohiro.ikeda@justincase-tech.com></code> | ||
- chore: Delete .travis.yml because of using not Travis CI but GitHub Actions | - chore: Delete .travis.yml because of using not Travis CI but GitHub Actions | ||
===/include/Makefile.am=== | ===/include/Makefile.am=== | ||
- include: fix package - add bswap.h and os_compat.h to noinst_HEADERS | - include: fix package - add bswap.h and os_compat.h to noinst_HEADERS | ||
===ALSA Control (alsactl)=== | ===ALSA Control (alsactl)=== | ||
- alsactl: fix OpenBSD compilation (add include of os_compat.h) | - alsactl: fix OpenBSD compilation (add include of os_compat.h) | ||
- Add OpenBSD support | - Add OpenBSD support | ||
<code> | <code> | ||
- ERESTART not supported platform: use EINTR instead | - ERESTART not supported platform: use EINTR instead | ||
Line 326: | Line 267: | ||
===ALSA RawMidi Utility (amidi)=== | ===ALSA RawMidi Utility (amidi)=== | ||
- Add OpenBSD support | - Add OpenBSD support | ||
<code> | <code> | ||
- ERESTART not supported platform: use EINTR instead | - ERESTART not supported platform: use EINTR instead | ||
Line 337: | Line 277: | ||
To fix this problem, assign ESPIPE instead.</code> | To fix this problem, assign ESPIPE instead.</code> | ||
- amidi: restore space between bytes | - amidi: restore space between bytes | ||
<code> | <code> | ||
Commit 9a8fcec ("amidi: add timestamp option for dump") removed the | Commit 9a8fcec ("amidi: add timestamp option for dump") removed the | ||
Line 357: | Line 296: | ||
===Audio Transfer utility=== | ===Audio Transfer utility=== | ||
- aplay,axfer: Replace off64_t with off_t | - aplay,axfer: Replace off64_t with off_t | ||
<code> | <code> | ||
Also replace lseek64 with lseek. | Also replace lseek64 with lseek. | ||
Line 370: | Line 308: | ||
default off_t on musl is 64-bit always.</code> | default off_t on musl is 64-bit always.</code> | ||
- axfer: fix typo in manual | - axfer: fix typo in manual | ||
<code> | <code> | ||
The spelling of 'aborted' was 'aboeted' in the manual. This commit fixes | The spelling of 'aborted' was 'aboeted' in the manual. This commit fixes | ||
Line 376: | Line 313: | ||
===alsa-info.sh=== | ===alsa-info.sh=== | ||
- alsa-info.sh: increase version to 0.5.3 | - alsa-info.sh: increase version to 0.5.3 | ||
- alsa-info.sh: uname - reduce execs by four, and eliminate a logic bug | - alsa-info.sh: uname - reduce execs by four, and eliminate a logic bug | ||
<code> | <code> | ||
Per `info uname`, `uname` always prints its data in the same order. | Per `info uname`, `uname` always prints its data in the same order. | ||
Line 390: | Line 325: | ||
... https://github.com/koalaman/shellcheck</code> | ... https://github.com/koalaman/shellcheck</code> | ||
- alsa-info.sh: Update `test` '-a' and '-o' to '&&' and '||' | - alsa-info.sh: Update `test` '-a' and '-o' to '&&' and '||' | ||
<code> | <code> | ||
lines 50, 103: in two compound ['s, replace '-a' with '] && [' | lines 50, 103: in two compound ['s, replace '-a' with '] && [' | ||
Line 402: | Line 336: | ||
... https://github.com/koalaman/shellcheck</code> | ... https://github.com/koalaman/shellcheck</code> | ||
- alsa-info.sh: print ctl-led list from sysfs | - alsa-info.sh: print ctl-led list from sysfs | ||
===alsaconf=== | ===alsaconf=== | ||
- Add Georgian translation | - Add Georgian translation | ||
===alsaloop=== | ===alsaloop=== | ||
- alsaloop: fix loopcount condition | - alsaloop: fix loopcount condition | ||
<code> | <code> | ||
BugLink: https://github.com/alsa-project/alsa-utils/issues/185</code> | BugLink: https://github.com/alsa-project/alsa-utils/issues/185</code> | ||
- Add OpenBSD support | - Add OpenBSD support | ||
<code> | <code> | ||
- ERESTART not supported platform: use EINTR instead | - ERESTART not supported platform: use EINTR instead | ||
Line 424: | Line 354: | ||
===alsamixer=== | ===alsamixer=== | ||
- alsamixer: add -B,--black-background option | - alsamixer: add -B,--black-background option | ||
===alsatplg (topology)=== | ===alsatplg (topology)=== | ||
- topology: pre-processor: fix regular expression flags | - topology: pre-processor: fix regular expression flags | ||
<code> | <code> | ||
The REG_ICASE flag is a compile-time flag (cflags), it | The REG_ICASE flag is a compile-time flag (cflags), it | ||
Line 434: | Line 362: | ||
like 'tgl|adl' work.</code> | like 'tgl|adl' work.</code> | ||
- topology: pre-process-object: Expand definitions within strings | - topology: pre-process-object: Expand definitions within strings | ||
<code> | <code> | ||
Expand the pre-processor to allow for expanding the definitions, | Expand the pre-processor to allow for expanding the definitions, | ||
Line 473: | Line 400: | ||
delimiters for variable names if $[]-notation is not used.</code> | delimiters for variable names if $[]-notation is not used.</code> | ||
- topology: pre-process-object: Remove all trailing white space | - topology: pre-process-object: Remove all trailing white space | ||
- topology: pre-processor: support to include conf block with IncludeByKey | - topology: pre-processor: support to include conf block with IncludeByKey | ||
<code> | <code> | ||
Currently, The IncludeByKey mechanism only supports conditionally | Currently, The IncludeByKey mechanism only supports conditionally | ||
Line 502: | Line 427: | ||
Co-authored-by: Jaroslav Kysela <perex@perex.cz></code> | Co-authored-by: Jaroslav Kysela <perex@perex.cz></code> | ||
- topology: nhlt: intel: add support for ssp blob ver 1.5 | - topology: nhlt: intel: add support for ssp blob ver 1.5 | ||
<code> | <code> | ||
Ssp plugin had already a definition for newer nhlt blob version 1.5. | Ssp plugin had already a definition for newer nhlt blob version 1.5. | ||
Line 518: | Line 442: | ||
}</code> | }</code> | ||
- topology: plugins: nhlt: add ssp aux controls | - topology: plugins: nhlt: add ssp aux controls | ||
<code> | <code> | ||
Intel ssp blob can have auxiliary controls catenated as tlv array at the | Intel ssp blob can have auxiliary controls catenated as tlv array at the | ||
Line 552: | Line 475: | ||
}</code> | }</code> | ||
- topology: propagate nhlt plugin error to main program | - topology: propagate nhlt plugin error to main program | ||
<code> | <code> | ||
Let's propagate nhlt plugin error to main program, | Let's propagate nhlt plugin error to main program, | ||
so that we don't generate a wrong nhlt blob silently.</code> | so that we don't generate a wrong nhlt blob silently.</code> | ||
- topology: plugins: nhlt: fix ssp debug | - topology: plugins: nhlt: fix ssp debug | ||
<code> | <code> | ||
Nhlt ssp plugin debug feature was broken due to recent change in ssp | Nhlt ssp plugin debug feature was broken due to recent change in ssp | ||
indexing, thus fix it.</code> | indexing, thus fix it.</code> | ||
- topology: nhlt: intel: ssp: fix obvious typo for 'codec_provider' | - topology: nhlt: intel: ssp: fix obvious typo for 'codec_provider' | ||
<code> | <code> | ||
Looks like a bad search and replace?</code> | Looks like a bad search and replace?</code> | ||
- topology: plugins: nhlt: fix ssp dai index | - topology: plugins: nhlt: fix ssp dai index | ||
<code> | <code> | ||
There was a conceptual error in handling the separate ssp dais, so fix | There was a conceptual error in handling the separate ssp dais, so fix | ||
it.</code> | it.</code> | ||
- topology: plugins: nhlt: add dmic dai index | - topology: plugins: nhlt: add dmic dai index | ||
<code> | <code> | ||
Dmic might have multiple configurations for the same hw, so add them to | Dmic might have multiple configurations for the same hw, so add them to | ||
nhlt blob. The configurations are separated by dai_index.</code> | nhlt blob. The configurations are separated by dai_index.</code> | ||
- topology: plugins: fix off by 1 mem allocation error | - topology: plugins: fix off by 1 mem allocation error | ||
<code> | <code> | ||
Fix valgrind memcheck error: | Fix valgrind memcheck error: | ||
Line 597: | Line 514: | ||
===alsaucm=== | ===alsaucm=== | ||
- alsaucm: fix typo in docs (can can) | - alsaucm: fix typo in docs (can can) | ||
- alsaucm: add also card index for '-c' argument | - alsaucm: add also card index for '-c' argument | ||
<code> | <code> | ||
Make semantics for this argument in sync with other ALSA utilities.</code> | Make semantics for this argument in sync with other ALSA utilities.</code> | ||
===aplay/arecord=== | ===aplay/arecord=== | ||
- arecord: use correct duration | - arecord: use correct duration | ||
<code> | <code> | ||
When a duration is specified but the the capture device cannot use the | When a duration is specified but the the capture device cannot use the | ||
Line 610: | Line 524: | ||
sample count must be (re)calculated.</code> | sample count must be (re)calculated.</code> | ||
- aplay,axfer: Replace off64_t with off_t | - aplay,axfer: Replace off64_t with off_t | ||
<code> | <code> | ||
Also replace lseek64 with lseek. | Also replace lseek64 with lseek. | ||
Line 623: | Line 536: | ||
default off_t on musl is 64-bit always.</code> | default off_t on musl is 64-bit always.</code> | ||
- aplay: Fix parsing of format with WAV_FMT_EXTENSIBLE header | - aplay: Fix parsing of format with WAV_FMT_EXTENSIBLE header | ||
<code> | <code> | ||
WAV_FMT_EXTENSIBLE header contains valid bits per sample, which can be | WAV_FMT_EXTENSIBLE header contains valid bits per sample, which can be | ||
Line 632: | Line 544: | ||
===bat (basic audio tester)=== | ===bat (basic audio tester)=== | ||
- alsabat: improve error handling in bat_init() | - alsabat: improve error handling in bat_init() | ||
<code> | <code> | ||
Fix 'LC_ALL=C.UTF-8 ./alsabat' command.</code> | Fix 'LC_ALL=C.UTF-8 ./alsabat' command.</code> | ||
- bat: Add 'readcapture' option to support analyzing external audio | - bat: Add 'readcapture' option to support analyzing external audio | ||
<code> | <code> | ||
If audio data is captured on another device (ie we are NOT using | If audio data is captured on another device (ie we are NOT using | ||
Line 648: | Line 558: | ||
===Configuration=== | ===Configuration=== | ||
- Gigabyte Z690I AORUS ULTRA DDR4, Realtek alc4080 | - Gigabyte Z690I AORUS ULTRA DDR4, Realtek alc4080 | ||
<code> | <code> | ||
add another board using realtek alc4080</code> | add another board using realtek alc4080</code> | ||
- USB-Audio: fix bad Conditio in If.minifuse4 | - USB-Audio: fix bad Conditio in If.minifuse4 | ||
<code> | <code> | ||
There should be 'Needle' keyword instead 'Regex' for the | There should be 'Needle' keyword instead 'Regex' for the | ||
string condition.</code> | string condition.</code> | ||
- USB-Audio: Add Minifuse 4 | - USB-Audio: Add Minifuse 4 | ||
<code> | <code> | ||
I created a separate file because of the additional input-Pairs and | I created a separate file because of the additional input-Pairs and | ||
Line 664: | Line 571: | ||
Without the usecase outputs threated as surround channels.</code> | Without the usecase outputs threated as surround channels.</code> | ||
- USB-Audio: Add Sony inzone H7/H9 headset default/HiFi usecase | - USB-Audio: Add Sony inzone H7/H9 headset default/HiFi usecase | ||
<code> | <code> | ||
The Sony inzone H7/H9 headset has two usb audio outputs and one usb | The Sony inzone H7/H9 headset has two usb audio outputs and one usb | ||
Line 695: | Line 601: | ||
when enabling the device.</code> | when enabling the device.</code> | ||
- ucm2: codecs: va-macro: fix dmic1 mux setting | - ucm2: codecs: va-macro: fix dmic1 mux setting | ||
<code> | <code> | ||
Looks like there was a typo in setting up dmic1 mux. Without this dmic01 | Looks like there was a typo in setting up dmic1 mux. Without this dmic01 | ||
selection would only do single channel record instead of 2 channel recording.</code> | selection would only do single channel record instead of 2 channel recording.</code> | ||
- USB: Adding UCM2 configuration for Roland/BridgeCast | - USB: Adding UCM2 configuration for Roland/BridgeCast | ||
- sof-hda-dsp: Add speaker led support | - sof-hda-dsp: Add speaker led support | ||
- USB-Audio: ALC4080 on Gigabyte Z690 AORUS ULTRA | - USB-Audio: ALC4080 on Gigabyte Z690 AORUS ULTRA | ||
- USB-Audio: ALC4080 on MSI PRO X670-P WIFI | - USB-Audio: ALC4080 on MSI PRO X670-P WIFI | ||
- USB-Audio: ALC4080 on MSI MPG Z590 Gaming Force | - USB-Audio: ALC4080 on MSI MPG Z590 Gaming Force | ||
- USB-Audio: ALC4080 - Add MSI MAG B650M MORTAR WIFI (USB ID: 0db0:7696) | - USB-Audio: ALC4080 - Add MSI MAG B650M MORTAR WIFI (USB ID: 0db0:7696) | ||
<code> | <code> | ||
Adds support for the MSI MAG B650M MORTAR WIFI motherboard front & back 3.5mm jacks.</code> | Adds support for the MSI MAG B650M MORTAR WIFI motherboard front & back 3.5mm jacks.</code> | ||
- wcd938x codec: remove empty DefaultDisableSeq.conf | - wcd938x codec: remove empty DefaultDisableSeq.conf | ||
- ucm2: Qualcomm: sc8280xp: add LENOVO Thinkpad X13s support | - ucm2: Qualcomm: sc8280xp: add LENOVO Thinkpad X13s support | ||
<code> | <code> | ||
Add support to LENOVO Thinkpad x13s which has 2xwsa883x smart speakers and a headset connector.</code> | Add support to LENOVO Thinkpad x13s which has 2xwsa883x smart speakers and a headset connector.</code> | ||
- ucm2: codecs: lpass: tx: add dmics via tx macro | - ucm2: codecs: lpass: tx: add dmics via tx macro | ||
- ucm2: codecs: lpass: make sure va dec mux is set correctly | - ucm2: codecs: lpass: make sure va dec mux is set correctly | ||
<code> | <code> | ||
Make sure VA decimator mux is correctly set while using DMICs by adding | Make sure VA decimator mux is correctly set while using DMICs by adding | ||
explicit mixer control to set it in enable sequence.</code> | explicit mixer control to set it in enable sequence.</code> | ||
- ucm2: codecs: lpass: add codec sequences for va dmic1 | - ucm2: codecs: lpass: add codec sequences for va dmic1 | ||
<code> | <code> | ||
Add codec sequences for VA DMIC1 settings.</code> | Add codec sequences for VA DMIC1 settings.</code> | ||
- ucm2: codecs: lpass-tx-macro: add codec sequences | - ucm2: codecs: lpass-tx-macro: add codec sequences | ||
<code> | <code> | ||
Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro | Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro | ||
digital codec</code> | digital codec</code> | ||
- ucm2: codecs: lpass-rx-macro: add codec sequences | - ucm2: codecs: lpass-rx-macro: add codec sequences | ||
<code> | <code> | ||
Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro | Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro | ||
digital codec</code> | digital codec</code> | ||
- ucm2: codecs: wcd938x: add codec sequences | - ucm2: codecs: wcd938x: add codec sequences | ||
<code> | <code> | ||
Add default, enable/disable codec sequence for Headphone and Mic on | Add default, enable/disable codec sequence for Headphone and Mic on | ||
WCD938x codec</code> | WCD938x codec</code> | ||
- ucm2: codecs: wsa883x: add codec sequences | - ucm2: codecs: wsa883x: add codec sequences | ||
<code> | <code> | ||
Add default, enable/disable codec sequence for wsa883x codec</code> | Add default, enable/disable codec sequence for wsa883x codec</code> | ||
- ucm2: Rockchip: rk817: Add ALSA UCM support | - ucm2: Rockchip: rk817: Add ALSA UCM support | ||
<code> | <code> | ||
Add ALSA-UCM support for the Rockchip RK817 audio codec. This codec | Add ALSA-UCM support for the Rockchip RK817 audio codec. This codec | ||
Line 762: | Line 651: | ||
Link: https://lore.kernel.org/alsa-devel/20230224193320.1503-1-macroalpha82@gmail.com/</code> | Link: https://lore.kernel.org/alsa-devel/20230224193320.1503-1-macroalpha82@gmail.com/</code> | ||
- USB-Audio: ALC4080 - add wrx80e sage se wifi (ID: 0b05:1984) | - USB-Audio: ALC4080 - add wrx80e sage se wifi (ID: 0b05:1984) | ||
<code> | <code> | ||
This motherboard is recognized by system76 as the mega-r2</code> | This motherboard is recognized by system76 as the mega-r2</code> | ||
- sof-soundwire: Initialize PGA switch controls in the BootSequence | - sof-soundwire: Initialize PGA switch controls in the BootSequence | ||
<code> | <code> | ||
A bug in the driver / firmware may cause that the paths are | A bug in the driver / firmware may cause that the paths are | ||
Line 774: | Line 661: | ||
BugLink: https://github.com/thesofproject/linux/issues/4196</code> | BugLink: https://github.com/thesofproject/linux/issues/4196</code> | ||
- USB-Audio: ALC4080 - adds support for USB ID 0414:a010 (Gigabyte Z590 Vision G) | - USB-Audio: ALC4080 - adds support for USB ID 0414:a010 (Gigabyte Z590 Vision G) | ||
<code> | <code> | ||
The GIGABYTE Z590 Vision G Intel motherboard contains a Realtek ALC4080 souncard | The GIGABYTE Z590 Vision G Intel motherboard contains a Realtek ALC4080 souncard | ||
Line 781: | Line 667: | ||
The change works on my machine and the HiFi profile seems to be fully functional</code> | The change works on my machine and the HiFi profile seems to be fully functional</code> | ||
- USB-Audio: ALC4080 - Add support for MSI MAG Z590 Tomahawk WiFi motherboard | - USB-Audio: ALC4080 - Add support for MSI MAG Z590 Tomahawk WiFi motherboard | ||
<code> | <code> | ||
USB ID: 0db0:4240 | USB ID: 0db0:4240 | ||
Line 787: | Line 672: | ||
Adds support for Z590 Tomahawk WiFi, microphone jack is now working</code> | Adds support for Z590 Tomahawk WiFi, microphone jack is now working</code> | ||
- max98090: drop Record Path DC Blocking to fix int mic | - max98090: drop Record Path DC Blocking to fix int mic | ||
- USB-Audio: ALC4080 - Support for MSI B650 Tomahawk Wifi - USB ID 0db0:422d | - USB-Audio: ALC4080 - Support for MSI B650 Tomahawk Wifi - USB ID 0db0:422d | ||
<code> | <code> | ||
This would enable sound connected to the MSI B650 Tomahawk Wifi motherboard</code> | This would enable sound connected to the MSI B650 Tomahawk Wifi motherboard</code> | ||
- DEBUG.md: add systemctl restart command for pipewire | - DEBUG.md: add systemctl restart command for pipewire | ||
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen3 | - ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen3 | ||
- USB-Audio: ALC4080 - add Z690 AERO G DDR4 (USB ID 0414:a012) | - USB-Audio: ALC4080 - add Z690 AERO G DDR4 (USB ID 0414:a012) | ||
- ucm2: MediaTek: mt8365-evk: Add alsa-ucm support | - ucm2: MediaTek: mt8365-evk: Add alsa-ucm support | ||
<code> | <code> | ||
Add alsa-ucm support for the Mediatek mt8365-evk platform.</code> | Add alsa-ucm support for the Mediatek mt8365-evk platform.</code> | ||
- Add UCM for PinePhone | - Add UCM for PinePhone | ||
<code> | <code> | ||
The DTS configuration has had a unique audio card name since 5.14: | The DTS configuration has had a unique audio card name since 5.14: | ||
Line 814: | Line 692: | ||
Co-authored-by: Samuel Holland <samuel@sholland.org></code> | Co-authored-by: Samuel Holland <samuel@sholland.org></code> | ||
- USB-Audio: ALC4080 - add MSI MPG Z790I Edge WiFi (ID: 0db0:62a4) | - USB-Audio: ALC4080 - add MSI MPG Z790I Edge WiFi (ID: 0db0:62a4) | ||
<code> | <code> | ||
This motherboard is recognized as the thelio-b5 by System76</code> | This motherboard is recognized as the thelio-b5 by System76</code> | ||
- USB-Audio: ALC4082 - add MSI MEG X670E ACE (0db0:961e) | - USB-Audio: ALC4082 - add MSI MEG X670E ACE (0db0:961e) | ||
- USB-Audio: ALC4080: detect MSI MPG Z790 Carbon Wifi | - USB-Audio: ALC4080: detect MSI MPG Z790 Carbon Wifi | ||
- USB-Audio: ALC4080: Add Support for MSI MPG Z790 Edge Wifi | - USB-Audio: ALC4080: Add Support for MSI MPG Z790 Edge Wifi | ||
- ucm2: sof-soundwire: Update Mic LED settings | - ucm2: sof-soundwire: Update Mic LED settings | ||
<code> | <code> | ||
It would be better to make this settings as default in | It would be better to make this settings as default in | ||
the driver. See PR.</code> | the driver. See PR.</code> | ||
- USB-Audio: Update quirk for Aorus Pro WiFi Rev 1.2 | - USB-Audio: Update quirk for Aorus Pro WiFi Rev 1.2 | ||
<code> | <code> | ||
The line in was using the wrong device. | The line in was using the wrong device. | ||
This model is a thelio-major-r2.1 for system76.</code> | This model is a thelio-major-r2.1 for system76.</code> | ||
- ucm2: Add initial support for AMD Vangogh (acp5x) on Steam Deck | - ucm2: Add initial support for AMD Vangogh (acp5x) on Steam Deck | ||
<code> | <code> | ||
This has been tested on a Valve Steam Deck EV2 unit, using kernel | This has been tested on a Valve Steam Deck EV2 unit, using kernel | ||
v6.1-rc1.</code> | v6.1-rc1.</code> | ||
- Add: 0b05:1999 ASUS ROG Strix Z590-A Gaming WiFi | - Add: 0b05:1999 ASUS ROG Strix Z590-A Gaming WiFi | ||
<code> | <code> | ||
This model is recognized as a thelio-mira-b1 by system76</code> | This model is recognized as a thelio-mira-b1 by system76</code> | ||
- ucm2: alc4080 - add support for MSI PRO Z790-A WIFI (ID 0db0:d1d7) | - ucm2: alc4080 - add support for MSI PRO Z790-A WIFI (ID 0db0:d1d7) | ||
- USB-Audio: ALC4080 - Add support for ASUS ROG Crosshair X670 Extreme (ID 0b05:1a53) | - USB-Audio: ALC4080 - Add support for ASUS ROG Crosshair X670 Extreme (ID 0b05:1a53) | ||
<code> | <code> | ||
- Confirmed working.</code> | - Confirmed working.</code> | ||
- USB-Audio: alc4080 - add MSI MAG B650I Edge WiFi (ID 0db0:36e7) | - USB-Audio: alc4080 - add MSI MAG B650I Edge WiFi (ID 0db0:36e7) | ||
<code> | <code> | ||
This motherboard is recognized as the thelio-r3 by System76</code> | This motherboard is recognized as the thelio-r3 by System76</code> | ||
- sof-hda-dsp: Set Dmic0 Capture Switch on | - sof-hda-dsp: Set Dmic0 Capture Switch on | ||
<code> | <code> | ||
Internal micrphone default is off after fresh installation. | Internal micrphone default is off after fresh installation. | ||
Add operation to set the control on to align with other architecture.</code> | Add operation to set the control on to align with other architecture.</code> | ||
- sof-soundwire: set PGA capture switch for rt715 mic in BootSequence | - sof-soundwire: set PGA capture switch for rt715 mic in BootSequence | ||
- ucm2: sof-hda-dsp - If.devdmic cleanup | - ucm2: sof-hda-dsp - If.devdmic cleanup | ||
<code> | <code> | ||
Simplify the If.devdmic block.</code> | Simplify the If.devdmic block.</code> | ||
- ucm2: HDA: Update Mic LED settings for ACP DMIC | - ucm2: HDA: Update Mic LED settings for ACP DMIC | ||
<code> | <code> | ||
Users expect to turn the LED on when only internal mic is off, but | Users expect to turn the LED on when only internal mic is off, but | ||
Line 874: | Line 737: | ||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824</code> | BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824</code> | ||
- ucm2: sof-hda-dsp: Update Mic LED settings | - ucm2: sof-hda-dsp: Update Mic LED settings | ||
<code> | <code> | ||
Users expect to turn the LED on when only internal mic is off, but | Users expect to turn the LED on when only internal mic is off, but | ||
Line 884: | Line 746: | ||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824</code> | BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824</code> | ||
- HDA: DualCodecs - handle S/PDIF without analog connections | - HDA: DualCodecs - handle S/PDIF without analog connections | ||
<code> | <code> | ||
When no analog wires are connected, the S/PDIF output cannot be | When no analog wires are connected, the S/PDIF output cannot be | ||
Line 890: | Line 751: | ||
UCM device.</code> | UCM device.</code> | ||
- USB-Audio: the environment variable UCM_USB_PERIOD_TIME may be undefined | - USB-Audio: the environment variable UCM_USB_PERIOD_TIME may be undefined | ||
<code> | <code> | ||
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240</code> | BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240</code> | ||
- mt8195-demo: fix soundcard initialization | - mt8195-demo: fix soundcard initialization | ||
<code> | <code> | ||
The previous initialization in Bootsequence set all Switch | The previous initialization in Bootsequence set all Switch | ||
Line 906: | Line 765: | ||
(controls routes between Front End and Back End in ASoC).</code> | (controls routes between Front End and Back End in ASoC).</code> | ||
- USB-Audio: allow to configure period size for PCM split | - USB-Audio: allow to configure period size for PCM split | ||
<code> | <code> | ||
The environment variable UCM_USB_PERIOD_TIME (microseconds / μs) | The environment variable UCM_USB_PERIOD_TIME (microseconds / μs) | ||
Line 914: | Line 772: | ||
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240</code> | BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240</code> | ||
- ucm2: add profile for the Librem 5 | - ucm2: add profile for the Librem 5 | ||
<code> | <code> | ||
Tested-by: Guido Günther <agx@sigxcpu.org></code> | Tested-by: Guido Günther <agx@sigxcpu.org></code> | ||
- ucm2: sof-soundwire: add basic settings for RT1318 SDCA device | - ucm2: sof-soundwire: add basic settings for RT1318 SDCA device | ||
<code> | <code> | ||
Add support for rt1318 amplifier</code> | Add support for rt1318 amplifier</code> | ||
- USB-Audio: ALC4080 - add 0db0:6cc9 MSI MPG Z590 Gaming Plus device | - USB-Audio: ALC4080 - add 0db0:6cc9 MSI MPG Z590 Gaming Plus device | ||
<code> | <code> | ||
BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/241</code> | BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/241</code> | ||
- ucm2: Alc4080 - add support for ASUS ROG Strix Z790-E Gaming Wifi | - ucm2: Alc4080 - add support for ASUS ROG Strix Z790-E Gaming Wifi | ||
- ucm2: USB-Audio - Added Digidesign Mbox 3 support | - ucm2: USB-Audio - Added Digidesign Mbox 3 support | ||
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen2 | - ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen2 | ||
<code> | <code> | ||
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/234</code> | BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/234</code> | ||
- ucm2: Add support for MT8192 Asurada Spherion Chromebook | - ucm2: Add support for MT8192 Asurada Spherion Chromebook | ||
<code> | <code> | ||
Add support for the Acer Chromebook 514 CP514-2H, powered by MediaTek | Add support for the Acer Chromebook 514 CP514-2H, powered by MediaTek | ||
Line 941: | Line 792: | ||
===Description=== | ===Description=== | ||
- Release v1.2.9 | - Release v1.2.9 | ||
- README.md: add --wildcards also for the second tar command | - README.md: add --wildcards also for the second tar command | ||
- add --wildcards to tar options in README | - add --wildcards to tar options in README | ||
<code> | <code> | ||
Without it, at least on some recent tar version, it won't work: --wildcards is the | Without it, at least on some recent tar version, it won't work: --wildcards is the |
Revision as of 12:26, 4 May 2023
Detailed changelog between 1.2.8 and 1.2.9 releases
Changelog between 1.2.8 and 1.2.9 releases
alsa-lib
Core
- Release v1.2.9
- pcm: add new symbols to Versions.in
- 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()
- include: alsa-symbols.h - use newer gcc symver function attribute
Use the symver function attribute for newer gccs (version 11+).
The symver function attribute was introduced probably earlier
(gcc-10). We can fix that on demand later.
Control API
- pcm: add SND_CTL_EINTR open mode
Add possibility to return -EINTR instead waiting for the event. The
applications may want to handle -EINTR condition themselves.
BugLink: https://github.com/alsa-project/alsa-lib/issues/228
PCM API
- pcm: hw: fix the silence size setup in drain
The silence size cannot exceed the silence threshold. Move the check
from the manual condition to the common code. This may happen for
small ring buffers (where the 1/10th second is too large).
Suggested-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
- pcm: remove duplicate SND_PCM_HW_PARAM_{FIRST,LAST}_* #defines
- pcm: add SND_PCM_EINTR open mode
Add possibility to return -EINTR instead waiting for the event. The
applications may want to handle -EINTR condition themselves.
BugLink: https://github.com/alsa-project/alsa-lib/issues/228
- pcm: improve handling for snd_pcm_wait()
The snd_pcm_wait() function is called also internally from
the various plugins to wait for the drain with -1 and from i/o
routines in pcm.c.
Define two special negative timeout values to distinguish the
drain and i/o wait and calculate the maximal timeout according
the wait place.
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE
The application may not require to touch the playback
sample stream for the drain operation at all. In this case,
the application is responsible to setup a silencing mechanism
for the playback or another graceful stop (like using the
rewind operation).
- pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN
Handle the driver informing us that it is not necessary to set up
silencing upon playback draining. This will be the case for drivers
which are guaranteed to not read any samples beyond the application
pointer.
- pcm: hw: add drain_silence configuration keyword
# Add silence in drain (-1 = auto /default/, 0 = off, > 0 milliseconds)
[drain_silence INT]
- pcm: hw: setup explicit silencing for snd_pcm_drain by default
Some applications may not alignt transfers to the period size
and also the driver developers may not follow the consequeces of the
access beyond valid samples in the playback DMA buffer.
To avoid clicks, fill a little silence at the end of the playback
ring buffer when snd_pcm_drain() is called.
Related: https://lore.kernel.org/alsa-devel/20230420113324.877164-2-oswald.buddenhagen@gmx.de/
Related: https://lore.kernel.org/alsa-devel/20230405201219.2197789-2-oswald.buddenhagen@gmx.de/
- compilation: fix ANDROID -> __ANDROID__ define detection
- pcm: avoid endless loop in snd_pcm_sw_params_default()
BugLink: https://lore.kernel.org/alsa-devel/167734349294.22.1388671545195719262@mailman-web.alsa-project.org/
- pcm: hw - fix return code checking in snd_pcm_hw_hw_refine
The isse was introduced in commit 7f2d6c3
- pcm: rate: fix last_commit_ptr boundary wrapping
Wrap last_commit_ptr using boundary. Was just wrapped to 0, which is
correct only if the buffer size, and hence the boundary, is an integer
multiple of the period size.
Link: https://lore.kernel.org/alsa-devel/20221230164814.901457-1-consult.awy@gmail.com/
- pcm: route/softvol use snd_config_get_ireal vs get_real to handle also integers
Link: https://lore.kernel.org/alsa-devel/f9a7ad6a256d4ad7a31642dcf875d436@axis.com/
- pcm: fix the fast_ops pcm argument for fast_ops
The fast_ops callback invocation must always pass the fast_op_arg
as the pcm argument. Plugins expect that.
- include: pcm_old.h - use a macro for the symbol versioning
Make the header file more readable and error prone.
- pcm: rate - correct the previous fix for snd_pcm_rate_may_wait_for_avail_min()
The previous fix in aa4f56c3 was not correct. The root of the cause is
implementation in snd_pcm_may_wait_for_avail_min() inline function
where the improper pcm argument is passed to the fast_ops function.
- pcm: rate - fix the crash in snd_pcm_rate_may_wait_for_avail_min()
The pcm argument passed to the conversion function in
snd_pcm_plugin_may_wait_for_avail_min_conv() should be
pcm->fast_op_arg.
Test command: arecord -Dplughw:x -r12000 -c2 -fS16_LE -M temp.wav
BugLink: https://lore.kernel.org/alsa-devel/1667793912-18957-1-git-send-email-shengjiu.wang@nxp.com/
Topology API
- topology: Parse ignore_suspend property for dapm widget
snd_soc_tplg_dapm_widget has ignore_suspend field, but there is no way
to set value for it, because we don't parse topology field for it.
Fix this by adding parsing code.
- topology: Add decompilation support for ignore_suspend
Previous patch added build support for ignore_suspend, however it should
be also possible to decompile binary back to human readable form and not
lose data.
- topology: Parse ignore_suspend flag
XXX_VOICE_WAKEUP also known as 'ignore_suspend' is already processed by
kernel in soc-topology, but there is no way of setting it via topology
file like it's the case for other flags. Fix this by adding it to pcm,
dai and link parsing mechanism.
- topology: ctl - remove the wrong (debug) code
This code was commited by mistake. It was used for testing
of ALSA_PCM_OLD_HW/SW_PARAMS_API.
BugLink: https://github.com/thesofproject/sof/issues/6667
Related-to: 78b20e3c ("test: latency - use snd_pcm_format_physical_width()")
- test: latency - use snd_pcm_format_physical_width()
We need to allocate frames using the physical size not
the sample bit size.
Use Case Manager API
- compilation: fix ANDROID -> __ANDROID__ define detection
- ucm: fix geti() macro - return zero on success
- ucm: simplify and fix the previous patch (geti)
Use macro to maintain only one code. The status may be 0 or 1 - handle
both values correctly.
Also, fix the possible memory leak in snd_use_case_geti() - string
str should be freed even when the error is returned.
- ucm: add existence checks to geti calls
Right now in snd_use_case_geti you cannot tell if the item being queried
exists or not when being checked. This also means the only way to check
for the existence of something in the client of the library is to
iterate over the list of mods/devs even if we know exactly the name we
are looking for. We have functions that do exactly this internally so
lets return this information in a logical fashion through geti.
Also clean up some trailing white space nearby.
- ucm: fix possible memory leak in execute_sysw()
- ucm: execute_sysw - fix possible use-after-free
- ucm: handle empty string also for ${env:} substitution
- ucm: clarify set_defaults calls
- do full reset in snd_use_case_mgr_reload
- ucm: fix enhanced ID parsing in snd_use_case_parse_ctl_elem_id()
Compatibility routines
- type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined
Configuration
- conf/emu10k1: remove compat with two decades old drivers
There really isn't much of a point to clutter the files with this.
- compilation: fix ANDROID -> __ANDROID__ define detection - alsa-lib: conf - fix possible use-after-free in get_char_skip_comments
Kernel Headers
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE
The application may not require to touch the playback
sample stream for the drain operation at all. In this case,
the application is responsible to setup a silencing mechanism
for the playback or another graceful stop (like using the
rewind operation).
- pcm: hw: introduce SNDRV_PCM_INFO_PERFECT_DRAIN
Handle the driver informing us that it is not necessary to set up
silencing upon playback draining. This will be the case for drivers
which are guaranteed to not read any samples beyond the application
pointer.
Test/Example code
- test: BSD-like fixes
- rename devname -> pcmdev, it conflicts *BSD <stdlib.h> function
- replace <values.h> -> <limits.h> and fix K&R style related warning
- use config.h to determine include <malloc.h>
- add OpenBSD support and fix printf() warning
- fix warning
- type_compat.h: use ESPIPE instead of EPIPE when ESTRPIPE not defined
- test: latency - --policy option - allow using SCHED_OTHER
- test: latency - add --policy option to allow using SCHED_FIFO
- test: latency - usleep should not be used in the block mode
- test: latency - add -y option (I/O usleep)
- latency: add timestamps to the POS lines
- remove first capture pos line
- measure the snd_pcm_start() call, too
- test: latency - add more realtime tests
Add '-x' and '-X' tests and '-U' - I/O update mode based
on the system timing.
It may be required to check the position updates for the specific hardware.
Print the real time / stream time differences.
Also include code to make valgrind happy (including the wrong memory
llocation for the stream buffer).
- test: latency - use snd_pcm_format_physical_width()
We need to allocate frames using the physical size not
the sample bit size.
Utils
- utils/alsa.m4: include <stdlib.h> for exit()
Clang 16 makes -Wimplicit-function-declaration an error by default
and it's easier to just explicitly include <stdlib.h> rather
than hope the ALSA headers always have it.
alsa-utils
Core
- Release v1.2.9
- configure.ac: fix build without dlfcn.h
Fix the following static build failure (i.e. without dlfcn.h) raised
since version 1.2.7 and
https://github.com/alsa-project/alsa-utils/commit/44d3e8aa44fc12f95bfeef0e3a1051e8f77047b5:
pre-processor.c:28:10: fatal error: dlfcn.h: No such file or directory
28 | #include <dlfcn.h>
| ^~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/1173a1ee28a58ce565a3274f35e868c35bb2e04e
- chore: Add link to master branch on GitHub Actions
Singed-off-by: Tomohiro IKEDA <tomohiro.ikeda@justincase-tech.com>
- chore: Delete .travis.yml because of using not Travis CI but GitHub Actions
/include/Makefile.am
- include: fix package - add bswap.h and os_compat.h to noinst_HEADERS
ALSA Control (alsactl)
- alsactl: fix OpenBSD compilation (add include of os_compat.h)
- Add OpenBSD support
- ERESTART not supported platform: use EINTR instead
- add include/os_compat.h, well-used OS specific definition
- copied include/bswap.h from alsa-lib
- EPIPE and ESTRPIPE are different usage, but currently
EPIPE is used when ESTRPIPE is not defined.
To fix this problem, assign ESPIPE instead.
ALSA RawMidi Utility (amidi)
- Add OpenBSD support
- ERESTART not supported platform: use EINTR instead
- add include/os_compat.h, well-used OS specific definition
- copied include/bswap.h from alsa-lib
- EPIPE and ESTRPIPE are different usage, but currently
EPIPE is used when ESTRPIPE is not defined.
To fix this problem, assign ESPIPE instead.
- amidi: restore space between bytes
Commit 9a8fcec ("amidi: add timestamp option for dump") removed the
space between bytes when dumping MIDI, changing the output from:
90 45 40
80 45 00
to:
904540
804500
It seems that this was an unintentional side effect of refactoring the
code to add the new timestamp output but the result is less readable
than it was before.
Restore the space between bytes in the same message.
Audio Transfer utility
- aplay,axfer: Replace off64_t with off_t
Also replace lseek64 with lseek.
_FILE_OFFSET_BITS=64 is passed to needed platforms since configure uses
AC_SYS_LARGEFILE macro. Therefore off_t is already 64-bit and lseek is
same as lseek64.
Additionally this fixes buils with latest musl where these lfs64
functions are moved out from _GNU_SOURCE and under _LARGEFILE64_SOURCE
macro alone. This makes the builds fail on 32-bit platforms even though
default off_t on musl is 64-bit always.
- axfer: fix typo in manual
The spelling of 'aborted' was 'aboeted' in the manual. This commit fixes
it.
alsa-info.sh
- alsa-info.sh: increase version to 0.5.3
- alsa-info.sh: uname - reduce execs by four, and eliminate a logic bug
Per `info uname`, `uname` always prints its data in the same order.
Also, "note that A && B || C is not if-then-else. C may run when A is true."
https://www.shellcheck.net/wiki/SC2015
set -x; read -r KERNEL_VERSION < <(uname -v); smp=x; \
"$KERNEL_VERSION" = *SMP* && \
{ smp=y; readonly smp; false;} || smp=n; set -
... https://github.com/koalaman/shellcheck
- alsa-info.sh: Update `test` '-a' and '-o' to '&&' and '||'
lines 50, 103: in two compound ['s, replace '-a' with '] && ['
SC2166 – Prefer `[ p ] && [ q ]` as `[ p -a q ]` is not well defined.
SC2107 – Instead of `[ a && b ]`, use `[ a ] && [ b ]`.
line 45: in a compound test command, change '-o' to '|| test'
SC1139 – Use `||` instead of `-o` between test commands.
SC2109 – Instead of `[ a || b ]`, use `[ a ] || [ b ]`.
... https://github.com/koalaman/shellcheck
- alsa-info.sh: print ctl-led list from sysfs
alsaconf
- Add Georgian translation
alsaloop
- alsaloop: fix loopcount condition
BugLink: https://github.com/alsa-project/alsa-utils/issues/185
- Add OpenBSD support
- ERESTART not supported platform: use EINTR instead
- add include/os_compat.h, well-used OS specific definition
- copied include/bswap.h from alsa-lib
- EPIPE and ESTRPIPE are different usage, but currently
EPIPE is used when ESTRPIPE is not defined.
To fix this problem, assign ESPIPE instead.
alsamixer
- alsamixer: add -B,--black-background option
alsatplg (topology)
- topology: pre-processor: fix regular expression flags
The REG_ICASE flag is a compile-time flag (cflags), it
should be used with regcomp() instead of regexec(). Also
add the REG_EXTENDED flag in this patch to make patterns
like 'tgl|adl' work.
- topology: pre-process-object: Expand definitions within strings
Expand the pre-processor to allow for expanding the definitions,
object attribute references and arithmetic expressions within strings.
With this extension its possible to embedded definitions or attribute
references into topology string objects. For example:
Define {
PCM_NUMBER 1
}
Object.Pipeline {
pcm-playback.0 {
Object.Widget {
copier.1 {
copier_type "host"
}
gain.1 {
Object.Control.mixer.1 {
name 'hw:$[$PCM_NUMBER - 1] Playback Volume'
}
}
Object.Base {
route.1 {
source copier.host.$index.1
sink gain.$index.1
}
}
}
In the example the $[$PCM_NUMBER - 1] would be replaced with the
result of arithmetic expression '1 - 1' in other words '0' , and
$index in all occurrences with index attribute found from pipeline
object. Any non alpha numeric or '_' character are treated as
delimiters for variable names if $[]-notation is not used.
- topology: pre-process-object: Remove all trailing white space
- topology: pre-processor: support to include conf block with IncludeByKey
Currently, The IncludeByKey mechanism only supports conditionally
including a topology conf file. Even if we only
want to conditionally include a small conf block, we have
to use a conf file and in the end we will have a lot of
trivial conf files that only contain a single conf blocks.
This patch extends the use of IncludeByKey ito support including conf
blocks conditionally. For example, the block below will include the route
conditionally based on the variable definition COPIER_ROUTE.
Define {
COPIER_ROUTE 1
}
IncludeByKey.COPIER_ROUTE {
"1" {
Object.Base.route.11 {
source copier.module.8.2
sink copier.module.17.2
}
}
}
Co-authored-by: Jaroslav Kysela <perex@perex.cz>
- topology: nhlt: intel: add support for ssp blob ver 1.5
Ssp plugin had already a definition for newer nhlt blob version 1.5.
Add support to generate that instead of legacy blob. Never blob can be
generated by adding "version" field in SSP dai topology2 definition and
setting it to lower 16 bits of SSP_BLOB_VER_1_5 (0xee000105) -> 0x105
i.e 8 bits for major and 8 bits for minor version.
SSP."0" {
id 0
dai_index 0
direction "duplex"
name NoCodec-0
version 0x105
}
- topology: plugins: nhlt: add ssp aux controls
Intel ssp blob can have auxiliary controls catenated as tlv array at the
end of its "normal" data blob. These are needed in some platforms for
example to enable hardware clocks earlier than streaming starts.
In topology the auxiliary data classes are embedded into hw_config and
can be instantiated like:
Object.Base.hw_config."SSP0_0" {
id 0
mclk_freq 38400000
bclk_freq 256000
tdm_slot_width 16
format "DSP_A"
bclk "codec_provider"
fsync "codec_provider"
fsync_freq 16000
Object.Base.mn_config."MN_0" {
m_div 100
n_div 200
}
Object.Base.clk_config."CLK_0" {
clock_warm_up 1
mclk 2
warm_up_ovr 3
clock_stop_delay 4
keep_running 5
clock_stop_ovr 6
}
}
- topology: propagate nhlt plugin error to main program
Let's propagate nhlt plugin error to main program,
so that we don't generate a wrong nhlt blob silently.
- topology: plugins: nhlt: fix ssp debug
Nhlt ssp plugin debug feature was broken due to recent change in ssp
indexing, thus fix it.
- topology: nhlt: intel: ssp: fix obvious typo for 'codec_provider'
Looks like a bad search and replace?
- topology: plugins: nhlt: fix ssp dai index
There was a conceptual error in handling the separate ssp dais, so fix
it.
- topology: plugins: nhlt: add dmic dai index
Dmic might have multiple configurations for the same hw, so add them to
nhlt blob. The configurations are separated by dai_index.
- topology: plugins: fix off by 1 mem allocation error
Fix valgrind memcheck error:
==1337389== Invalid write of size 1
==1337389== at 0x4A4AFAB: __vsnprintf_internal (vsnprintf.c:117)
==1337389== by 0x4AECF40: __snprintf_chk (snprintf_chk.c:38)
==1337389== by 0x484B870: snprintf (stdio2.h:67)
==1337389== by 0x484B870: print_as_hex_bytes (nhlt-processor.c:112)
==1337389== by 0x484B870: merge_manifest_data (nhlt-processor.c:154)
==1337389== by 0x484B870: do_nhlt (nhlt-processor.c:420)
==1337389== by 0x484B870: _snd_topology_nhlt_process (nhlt-processor.c:484)
The consecutive snprintf overwrites always the previous terminator until
it hits the very last call of:
snprintf(dst, ALSA_BYTE_CHARS + 1, "0x%02x,", *nhlt_buffer);
when the size n given to snprintf is 1 more than allocated.
alsaucm
- alsaucm: fix typo in docs (can can)
- alsaucm: add also card index for '-c' argument
Make semantics for this argument in sync with other ALSA utilities.
aplay/arecord
- arecord: use correct duration
When a duration is specified but the the capture device cannot use the
requested sample rate and an alternative rate is used the duration
sample count must be (re)calculated.
- aplay,axfer: Replace off64_t with off_t
Also replace lseek64 with lseek.
_FILE_OFFSET_BITS=64 is passed to needed platforms since configure uses
AC_SYS_LARGEFILE macro. Therefore off_t is already 64-bit and lseek is
same as lseek64.
Additionally this fixes buils with latest musl where these lfs64
functions are moved out from _GNU_SOURCE and under _LARGEFILE64_SOURCE
macro alone. This makes the builds fail on 32-bit platforms even though
default off_t on musl is 64-bit always.
- aplay: Fix parsing of format with WAV_FMT_EXTENSIBLE header
WAV_FMT_EXTENSIBLE header contains valid bits per sample, which can be
different than bits per sample. Make sure it is taken into account when
parsing headers and choosing playback format.
BugLink: https://github.com/alsa-project/alsa-utils/pull/178
bat (basic audio tester)
- alsabat: improve error handling in bat_init()
Fix 'LC_ALL=C.UTF-8 ./alsabat' command.
- bat: Add 'readcapture' option to support analyzing external audio
If audio data is captured on another device (ie we are NOT using
loopback mode), then allow alsabat to analyze that data, by passing
a filename reference on the command line.
Add the '--readcapture' option to the argument parser. When
this option is specified, avoid doing a local capture, and instead
just read the audio data from the indicated file, and analyze that.
alsa-ucm-conf
Configuration
- Gigabyte Z690I AORUS ULTRA DDR4, Realtek alc4080
add another board using realtek alc4080
- USB-Audio: fix bad Conditio in If.minifuse4
There should be 'Needle' keyword instead 'Regex' for the
string condition.
- USB-Audio: Add Minifuse 4
I created a separate file because of the additional input-Pairs and
output-Pairs result in different loopback channels.
Without the usecase outputs threated as surround channels.
- USB-Audio: Add Sony inzone H7/H9 headset default/HiFi usecase
The Sony inzone H7/H9 headset has two usb audio outputs and one usb
audio input.
One pair of audio output and input is the 'chat' interface which is
normally connected to a chat client.
The remaining audio ouput is the 'game' interface, which is normally
connected to the actual game you're playing.
The 'game' interface lists as a separate USB subdevice in alsa.
This commit adds the HiFi usecase for the Sony headset which is as
follows:
- One chat device
- One audio output
- One audio input
- One game device
- One audio output
Tested with pipewire and pulseaudio, verified with pavucontrol, both
devices are listed and audio can be played on both.
The audio is mixed in the headset itself.
Control wise there isn't much, the only thing that is reported in
alsamixer is a volume control for the CAPTURE channel.
However, changing the volume of this does not seem to affect the
actual audio that is recorded, so I don't see a need to change this
when enabling the device.
- ucm2: codecs: va-macro: fix dmic1 mux setting
Looks like there was a typo in setting up dmic1 mux. Without this dmic01
selection would only do single channel record instead of 2 channel recording.
- USB: Adding UCM2 configuration for Roland/BridgeCast
- sof-hda-dsp: Add speaker led support
- USB-Audio: ALC4080 on Gigabyte Z690 AORUS ULTRA
- USB-Audio: ALC4080 on MSI PRO X670-P WIFI
- USB-Audio: ALC4080 on MSI MPG Z590 Gaming Force
- USB-Audio: ALC4080 - Add MSI MAG B650M MORTAR WIFI (USB ID: 0db0:7696)
Adds support for the MSI MAG B650M MORTAR WIFI motherboard front & back 3.5mm jacks.
- wcd938x codec: remove empty DefaultDisableSeq.conf
- ucm2: Qualcomm: sc8280xp: add LENOVO Thinkpad X13s support
Add support to LENOVO Thinkpad x13s which has 2xwsa883x smart speakers and a headset connector.
- ucm2: codecs: lpass: tx: add dmics via tx macro
- ucm2: codecs: lpass: make sure va dec mux is set correctly
Make sure VA decimator mux is correctly set while using DMICs by adding
explicit mixer control to set it in enable sequence.
- ucm2: codecs: lpass: add codec sequences for va dmic1
Add codec sequences for VA DMIC1 settings.
- ucm2: codecs: lpass-tx-macro: add codec sequences
Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro
digital codec
- ucm2: codecs: lpass-rx-macro: add codec sequences
Add default, enable/disable codec sequence for Qualcomm LPASS TX Macro
digital codec
- ucm2: codecs: wcd938x: add codec sequences
Add default, enable/disable codec sequence for Headphone and Mic on
WCD938x codec
- ucm2: codecs: wsa883x: add codec sequences
Add default, enable/disable codec sequence for wsa883x codec
- ucm2: Rockchip: rk817: Add ALSA UCM support
Add ALSA-UCM support for the Rockchip RK817 audio codec. This codec
is typically configured either with an internal or external amplifier
as reflected by the longname. This configuration has been tested on
the Anbernic RG353P (rk817_ext) and the Odroid Go Advance (rk817_int).
Changes from V1:
- Use a constant to control if the output mux is set to HP or SPK.
Link: https://lore.kernel.org/alsa-devel/20230224193320.1503-1-macroalpha82@gmail.com/
- USB-Audio: ALC4080 - add wrx80e sage se wifi (ID: 0b05:1984)
This motherboard is recognized by system76 as the mega-r2
- sof-soundwire: Initialize PGA switch controls in the BootSequence
A bug in the driver / firmware may cause that the paths are
active for the first boot, but if the sound card state is saved
and restored later (e.g. next boot), the paths may be deactivated.
BugLink: https://github.com/thesofproject/linux/issues/4196
- USB-Audio: ALC4080 - adds support for USB ID 0414:a010 (Gigabyte Z590 Vision G)
The GIGABYTE Z590 Vision G Intel motherboard contains a Realtek ALC4080 souncard
that was missing from the available UCMs.
The change works on my machine and the HiFi profile seems to be fully functional
- USB-Audio: ALC4080 - Add support for MSI MAG Z590 Tomahawk WiFi motherboard
USB ID: 0db0:4240
Adds support for Z590 Tomahawk WiFi, microphone jack is now working
- max98090: drop Record Path DC Blocking to fix int mic
- USB-Audio: ALC4080 - Support for MSI B650 Tomahawk Wifi - USB ID 0db0:422d
This would enable sound connected to the MSI B650 Tomahawk Wifi motherboard
- DEBUG.md: add systemctl restart command for pipewire
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen3
- USB-Audio: ALC4080 - add Z690 AERO G DDR4 (USB ID 0414:a012)
- ucm2: MediaTek: mt8365-evk: Add alsa-ucm support
Add alsa-ucm support for the Mediatek mt8365-evk platform.
- Add UCM for PinePhone
The DTS configuration has had a unique audio card name since 5.14:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi?h=v5.14#n436d
This UCM config is derived from https://gitlab.com/pine64-org/pine64-alsa-ucm/, which is BSD-3-Clause licensed.
Co-authored-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
Co-authored-by: Samuel Holland <samuel@sholland.org>
- USB-Audio: ALC4080 - add MSI MPG Z790I Edge WiFi (ID: 0db0:62a4)
This motherboard is recognized as the thelio-b5 by System76
- USB-Audio: ALC4082 - add MSI MEG X670E ACE (0db0:961e)
- USB-Audio: ALC4080: detect MSI MPG Z790 Carbon Wifi
- USB-Audio: ALC4080: Add Support for MSI MPG Z790 Edge Wifi
- ucm2: sof-soundwire: Update Mic LED settings
It would be better to make this settings as default in
the driver. See PR.
- USB-Audio: Update quirk for Aorus Pro WiFi Rev 1.2
The line in was using the wrong device.
This model is a thelio-major-r2.1 for system76.
- ucm2: Add initial support for AMD Vangogh (acp5x) on Steam Deck
This has been tested on a Valve Steam Deck EV2 unit, using kernel
v6.1-rc1.
- Add: 0b05:1999 ASUS ROG Strix Z590-A Gaming WiFi
This model is recognized as a thelio-mira-b1 by system76
- ucm2: alc4080 - add support for MSI PRO Z790-A WIFI (ID 0db0:d1d7)
- USB-Audio: ALC4080 - Add support for ASUS ROG Crosshair X670 Extreme (ID 0b05:1a53)
- Confirmed working.
- USB-Audio: alc4080 - add MSI MAG B650I Edge WiFi (ID 0db0:36e7)
This motherboard is recognized as the thelio-r3 by System76
- sof-hda-dsp: Set Dmic0 Capture Switch on
Internal micrphone default is off after fresh installation.
Add operation to set the control on to align with other architecture.
- sof-soundwire: set PGA capture switch for rt715 mic in BootSequence
- ucm2: sof-hda-dsp - If.devdmic cleanup
Simplify the If.devdmic block.
- ucm2: HDA: Update Mic LED settings for ACP DMIC
Users expect to turn the LED on when only internal mic is off, but
it makes sense to turn this LED when all internal inputs are off.
This configuration may be changed when the affected applications
are updated.
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824
- ucm2: sof-hda-dsp: Update Mic LED settings
Users expect to turn the LED on when only internal mic is off, but
it makes sense to turn this LED when all internal inputs are off.
This configuration may be changed when the affected applications
are updated.
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2134824
- HDA: DualCodecs - handle S/PDIF without analog connections
When no analog wires are connected, the S/PDIF output cannot be
selected in pipewire. Handle this for motherboards without Speaker
UCM device.
- USB-Audio: the environment variable UCM_USB_PERIOD_TIME may be undefined
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240
- mt8195-demo: fix soundcard initialization
The previous initialization in Bootsequence set all Switch
to off after boot.
So remove the setting off of the Switch in the BootSequence
and define Enable/DisableSequence in verb section for
a proper setting.
Note that the controls enable access to the PCM devices
(controls routes between Front End and Back End in ASoC).
- USB-Audio: allow to configure period size for PCM split
The environment variable UCM_USB_PERIOD_TIME (microseconds / μs)
can define the period size for the PCM channel split over
the default value 10000μs.
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/240
- ucm2: add profile for the Librem 5
Tested-by: Guido Günther <agx@sigxcpu.org>
- ucm2: sof-soundwire: add basic settings for RT1318 SDCA device
Add support for rt1318 amplifier
- USB-Audio: ALC4080 - add 0db0:6cc9 MSI MPG Z590 Gaming Plus device
BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/241
- ucm2: Alc4080 - add support for ASUS ROG Strix Z790-E Gaming Wifi
- ucm2: USB-Audio - Added Digidesign Mbox 3 support
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen2
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/234
- ucm2: Add support for MT8192 Asurada Spherion Chromebook
Add support for the Acer Chromebook 514 CP514-2H, powered by MediaTek
Kompanio 820 (MT8192). This machine uses a MT6359 PMIC, with RT1015P as
speaker codec and RT5682 as headphone codec.
Description
- Release v1.2.9
- README.md: add --wildcards also for the second tar command
- add --wildcards to tar options in README
Without it, at least on some recent tar version, it won't work: --wildcards is the
default only for exclusions, not for member selection. This tends to
confuse users, even though it's just an example.