Detailed changes v1.2.8 v1.2.9: Difference between revisions

From AlsaProject
Jump to navigation Jump to search
m (1 revision imported)
Prefix>Perex
No edit summary
Line 8: Line 8:
===Core===
===Core===
- Release v1.2.9
- Release v1.2.9
<code>
- pcm: add new symbols to Versions.in
- pcm: add new symbols to Versions.in
<code>
- configure: avoid libdl detecion on *BSD
- configure: avoid libdl detecion on *BSD
<code>
<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>
<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>
<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>
<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 &lt;oswald.buddenhagen@gmx.de&gt;</code>
  Suggested-by: Oswald Buddenhagen &lt;oswald.buddenhagen@gmx.de&gt;</code>
- pcm: remove duplicate SND_PCM_HW_PARAM_{FIRST,LAST}_* #defines
- pcm: remove duplicate SND_PCM_HW_PARAM_{FIRST,LAST}_* #defines
<code>
- pcm: add SND_PCM_EINTR open mode
- pcm: add SND_PCM_EINTR open mode
<code>
<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>
<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>
<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>
<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>
<code>
   # Add silence in drain (-1 = auto /default/, 0 = off, &gt; 0 milliseconds)
   # Add silence in drain (-1 = auto /default/, 0 = off, &gt; 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>
<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 -&gt; __ANDROID__ define detection
- compilation: fix ANDROID -&gt; __ANDROID__ define detection
<code>
- pcm: avoid endless loop in snd_pcm_sw_params_default()
- pcm: avoid endless loop in snd_pcm_sw_params_default()
<code>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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 -&gt; __ANDROID__ define detection
- compilation: fix ANDROID -&gt; __ANDROID__ define detection
<code>
- ucm: fix geti() macro - return zero on success
- ucm: fix geti() macro - return zero on success
<code>
- ucm: simplify and fix the previous patch (geti)
- ucm: simplify and fix the previous patch (geti)
<code>
<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>
<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()
<code>
- ucm: execute_sysw - fix possible use-after-free
- ucm: execute_sysw - fix possible use-after-free
<code>
- ucm: handle empty string also for ${env:} substitution
- ucm: handle empty string also for ${env:} substitution
<code>
- ucm: clarify set_defaults calls
- ucm: clarify set_defaults calls
<code>
<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()
<code>
===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
<code>
===Configuration===
===Configuration===
- conf/emu10k1: remove compat with two decades old drivers
- conf/emu10k1: remove compat with two decades old drivers
<code>
<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 -&gt; __ANDROID__ define detection
- compilation: fix ANDROID -&gt; __ANDROID__ define detection
<code>
- 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
<code>
===Kernel Headers===
===Kernel Headers===
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE
- pcm: hw: introduce SNDRV_PCM_HW_PARAMS_DRAIN_SILENCE
<code>
<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>
<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>
<code>
  - rename devname -&gt; pcmdev, it conflicts *BSD &lt;stdlib.h&gt; function
  - rename devname -&gt; pcmdev, it conflicts *BSD &lt;stdlib.h&gt; 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
<code>
- test: latency - --policy option - allow using SCHED_OTHER
- test: latency - --policy option - allow using SCHED_OTHER
<code>
- test: latency - add --policy option to allow using SCHED_FIFO
- test: latency - add --policy option to allow using SCHED_FIFO
<code>
- test: latency - usleep should not be used in the block mode
- test: latency - usleep should not be used in the block mode
<code>
- test: latency - add -y option (I/O usleep)
- test: latency - add -y option (I/O usleep)
<code>
- latency: add timestamps to the POS lines
- latency: add timestamps to the POS lines
<code>
<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>
<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>
<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 &lt;stdlib.h&gt; for exit()
- utils/alsa.m4: include &lt;stdlib.h&gt; for exit()
<code>
<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
<code>
- configure.ac: fix build without dlfcn.h
- configure.ac: fix build without dlfcn.h
<code>
<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>
<code>
  Singed-off-by: Tomohiro IKEDA &lt;tomohiro.ikeda@justincase-tech.com&gt;</code>
  Singed-off-by: Tomohiro IKEDA &lt;tomohiro.ikeda@justincase-tech.com&gt;</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
<code>
===/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
<code>
===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)
<code>
- Add OpenBSD support
- Add OpenBSD support
<code>
<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>
<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>
<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>
<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>
<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
<code>
- 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>
<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>
<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
<code>
===alsaconf===
===alsaconf===
- Add Georgian translation
- Add Georgian translation
<code>
===alsaloop===
===alsaloop===
- alsaloop: fix loopcount condition
- alsaloop: fix loopcount condition
<code>
<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>
<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
<code>
===alsatplg (topology)===
===alsatplg (topology)===
- topology: pre-processor: fix regular expression flags
- topology: pre-processor: fix regular expression flags
<code>
<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>
<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
<code>
- topology: pre-processor: support to include conf block with IncludeByKey
- topology: pre-processor: support to include conf block with IncludeByKey
<code>
<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 &lt;perex@perex.cz&gt;</code>
  Co-authored-by: Jaroslav Kysela &lt;perex@perex.cz&gt;</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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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)
<code>
- alsaucm: add also card index for '-c' argument
- alsaucm: add also card index for '-c' argument
<code>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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
<code>
- sof-hda-dsp: Add speaker led support
- sof-hda-dsp: Add speaker led support
<code>
- USB-Audio: ALC4080 on Gigabyte Z690 AORUS ULTRA
- USB-Audio: ALC4080 on Gigabyte Z690 AORUS ULTRA
<code>
- USB-Audio: ALC4080 on MSI PRO X670-P WIFI
- USB-Audio: ALC4080 on MSI PRO X670-P WIFI
<code>
- USB-Audio: ALC4080 on MSI MPG Z590 Gaming Force
- USB-Audio: ALC4080 on MSI MPG Z590 Gaming Force
<code>
- 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>
<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
<code>
- ucm2: Qualcomm: sc8280xp: add LENOVO Thinkpad X13s support
- ucm2: Qualcomm: sc8280xp: add LENOVO Thinkpad X13s support
<code>
<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
<code>
- ucm2: codecs: lpass: make sure va dec mux is set correctly
- ucm2: codecs: lpass: make sure va dec mux is set correctly
<code>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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
<code>
- 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>
<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
<code>
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen3
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen3
<code>
- USB-Audio: ALC4080 - add Z690 AERO G DDR4 (USB ID 0414:a012)
- USB-Audio: ALC4080 - add Z690 AERO G DDR4 (USB ID 0414:a012)
<code>
- ucm2: MediaTek: mt8365-evk: Add alsa-ucm support
- ucm2: MediaTek: mt8365-evk: Add alsa-ucm support
<code>
<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>
<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 &lt;samuel@sholland.org&gt;</code>
  Co-authored-by: Samuel Holland &lt;samuel@sholland.org&gt;</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>
<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)
<code>
- USB-Audio: ALC4080: detect MSI MPG Z790 Carbon Wifi
- USB-Audio: ALC4080: detect MSI MPG Z790 Carbon Wifi
<code>
- USB-Audio: ALC4080: Add Support for MSI MPG Z790 Edge Wifi
- USB-Audio: ALC4080: Add Support for MSI MPG Z790 Edge Wifi
<code>
- ucm2: sof-soundwire: Update Mic LED settings
- ucm2: sof-soundwire: Update Mic LED settings
<code>
<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>
<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>
<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>
<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)
<code>
- 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>
<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>
<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>
<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
<code>
- ucm2: sof-hda-dsp - If.devdmic cleanup
- ucm2: sof-hda-dsp - If.devdmic cleanup
<code>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<code>
  Tested-by: Guido Günther &lt;agx@sigxcpu.org&gt;</code>
  Tested-by: Guido Günther &lt;agx@sigxcpu.org&gt;</code>
- ucm2: sof-soundwire: add basic settings for RT1318 SDCA device
- ucm2: sof-soundwire: add basic settings for RT1318 SDCA device
<code>
<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>
<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
<code>
- ucm2: USB-Audio - Added Digidesign Mbox 3 support
- ucm2: USB-Audio - Added Digidesign Mbox 3 support
<code>
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen2
- ucm: USB-Audio - Add support for Focusrite Scarlett 2i2 gen2
<code>
<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>
<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
<code>
- README.md: add --wildcards also for the second tar command
- README.md: add --wildcards also for the second tar command
<code>
- add --wildcards to tar options in README
- add --wildcards to tar options in README
<code>
<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.