  <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.alsa-project.org/main/index.php?action=history&amp;feed=atom&amp;title=Changes_v1.2.2_v1.2.3</id>
	<title>Changes v1.2.2 v1.2.3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.alsa-project.org/main/index.php?action=history&amp;feed=atom&amp;title=Changes_v1.2.2_v1.2.3"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.2.2_v1.2.3&amp;action=history"/>
	<updated>2026-04-04T15:46:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=Changes_v1.2.2_v1.2.3&amp;diff=7359&amp;oldid=prev</id>
		<title>Perex: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.2.2_v1.2.3&amp;diff=7359&amp;oldid=prev"/>
		<updated>2020-06-09T08:39:01Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:39, 9 June 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=Changes_v1.2.2_v1.2.3&amp;diff=7358&amp;oldid=prev</id>
		<title>Perex at 08:38, 9 June 2020</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.2.2_v1.2.3&amp;diff=7358&amp;oldid=prev"/>
		<updated>2020-06-09T08:38:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
[[Detailed changes v1.2.2 v1.2.3]]&lt;br /&gt;
=Changelog between 1.2.2 and 1.2.3 releases=&lt;br /&gt;
==alsa-lib==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.3&lt;br /&gt;
: snd_dlopen: implement the relocatable version for glibc&lt;br /&gt;
: github actions: ubuntu - fix the non-interactive build&lt;br /&gt;
: pcm: dmix: assembly: fix the interface for safety (mmx)&lt;br /&gt;
: configure: add --embed for python3-config (python 3.8)&lt;br /&gt;
===Config API===&lt;br /&gt;
: conf: add snd_config_is_array() function&lt;br /&gt;
===Control API===&lt;br /&gt;
: tlv: implement nearest rounding in snd_tlv_convert_from_dB() for xdir == 0&lt;br /&gt;
: control: use more precise rounding in snd_ctl_ascii_value_parse()&lt;br /&gt;
: snd_dlopen: do not use absolute plugin path for snd_dlopen() calls&lt;br /&gt;
: namehint: remember the direction from the upper levels&lt;br /&gt;
: conf: namehint - add omit_noargs to the hint section&lt;br /&gt;
===Mixer API===&lt;br /&gt;
: tlv: implement nearest rounding in snd_tlv_convert_from_dB() for xdir == 0&lt;br /&gt;
: snd_dlopen: do not use absolute plugin path for snd_dlopen() calls&lt;br /&gt;
===PCM API===&lt;br /&gt;
: pcm: Fix memory leak at snd_pcm_new when THREAD_SAVE_API is defined&lt;br /&gt;
: pcm: clarify -ENODATA description (recovery, event)&lt;br /&gt;
: pcm: fix spelling in documentation for -EBADFD&lt;br /&gt;
: pcm: add documentation for -ENODATA error code&lt;br /&gt;
: snd_dlopen: do not use absolute plugin path for snd_dlopen() calls&lt;br /&gt;
: pcm: return immediately when the state is SETUP in snd_pcm_drain()&lt;br /&gt;
: pcm: fix snd_pcm_drain() excluding SETUP state from valid states&lt;br /&gt;
: pcm: rate: Fix uninitialized variable warning&lt;br /&gt;
: pcm: rate: Fix compile warning wrt bit ops and comparison&lt;br /&gt;
: pcm: dmix: assembly: give more freedom over the constraints&lt;br /&gt;
: pcm: dmix: assembly: refactor the PIC mode&lt;br /&gt;
: pcm: dmix: assembly: fix the interface for safety (mmx)&lt;br /&gt;
: pcm: dmix: assembly: fix the interface for safety&lt;br /&gt;
: pcm: dmix: assembly: change the token by symbolic names&lt;br /&gt;
: fix infinite draining of the rate plugin in SND_PCM_NONBLOCK mode&lt;br /&gt;
: pcm: rate - fix the remaining size calculation in snd_pcm_rate_drain()&lt;br /&gt;
: pcm: dmix: fix sw_params handling of timestamp types in direct plugins&lt;br /&gt;
: pcm: add chmap option to route plugin&lt;br /&gt;
===Topology API===&lt;br /&gt;
: topology: Add missing ATTRIBUTE_UNUSED&lt;br /&gt;
: topology: use snd_config_is_array() function&lt;br /&gt;
: topology: Use bool parser to parse boolean value&lt;br /&gt;
: topology: add back asrc to widget_map in dapm.c&lt;br /&gt;
===Use Case Manager API===&lt;br /&gt;
: ucm: fix the wrong return value in uc_mgr_open_ctl()&lt;br /&gt;
: ucm: remove strict: in ${OpenName} substitution&lt;br /&gt;
: ucm: fix the error path in parse_toplevel_path()&lt;br /&gt;
: ucm: fix the wrong uc_mgr_open_ctl() call in if_eval_control_exists()&lt;br /&gt;
: use-case.h: define Linked variable&lt;br /&gt;
: ucm: implement CardIdByName substitution&lt;br /&gt;
: ucm: shuffle code in compound_merge()&lt;br /&gt;
: ucm: substitute arguments in sequences only for syntax 3+&lt;br /&gt;
: ucm: substitute RenameDevice and DeleteDevice lists&lt;br /&gt;
: ucm: substitute Comment in Transition and Device&lt;br /&gt;
: ucm: substitute verb name and file field&lt;br /&gt;
: ucm: substitute component sequence string&lt;br /&gt;
: ucm: substitute device strings in the device lists&lt;br /&gt;
: ucm: substitute device / modifier names, too&lt;br /&gt;
: ucm: implement the toplevel ucm configuration file parser&lt;br /&gt;
: ucm: substitute ${CardNumber}&lt;br /&gt;
: ucm: substitute ${OpenName}&lt;br /&gt;
: ucm: Define/DefineRegex is supported in Syntax 3&lt;br /&gt;
: ucm: String condition - implement Empty&lt;br /&gt;
: ucm: handle strict: prefix correctly for the UCM card name&lt;br /&gt;
: ucm: substitute also value strings&lt;br /&gt;
: ucm: allow to specify the toplevel directory using '/' as first character in File path&lt;br /&gt;
: ucm: config - change the in-place include evaluation order&lt;br /&gt;
: ucm: allow syntax version 3&lt;br /&gt;
: ucm: substitute arguments in sequences&lt;br /&gt;
: ucm: configuration - add DefineRegex&lt;br /&gt;
: ucm: configuration - allow to define the configuration variables&lt;br /&gt;
: ucm: config - substitute File string to allow variables in include&lt;br /&gt;
: ucm: configuration - substitute ${ConfDir} and ${ConfTopDir}&lt;br /&gt;
: ucm: configuration - implement in-place Include&lt;br /&gt;
: ucm: rename _once command to _boot command&lt;br /&gt;
: ucm: rename SectionOnce to BootSequence&lt;br /&gt;
: ucm: fix compilation error in set_defaults_user()&lt;br /&gt;
: ucm: fix SectionOnce comment&lt;br /&gt;
: ucm: initialize mgr-&amp;amp;gt;once_list&lt;br /&gt;
: ucm: handle 'set _defaults' command&lt;br /&gt;
: ucm: handle 'set _once' command&lt;br /&gt;
: ucm: execute SectionDefaults lately (when the first verb is set)&lt;br /&gt;
: ucm: parse SectionOnce section in the master UCM configuration file&lt;br /&gt;
: ucm: merge the array items from the condition blocks&lt;br /&gt;
: use-case.h: add USB as allowed device name&lt;br /&gt;
: ucm: fix copy-n-paste typo (RemoveDevice list)&lt;br /&gt;
: ucm: fix the device remove operation&lt;br /&gt;
: usecase: allow indexes also for modifier names&lt;br /&gt;
: ucm: fix uc_mgr_scan_master_configs()&lt;br /&gt;
: ucm: clarify the index syntax for the device names&lt;br /&gt;
===Configuration===&lt;br /&gt;
: conf: USB-Audio: Add HP Thunderbolt Dock in the IEC958 blacklist&lt;br /&gt;
: conf: remove debug printf() in snd_config_hook_load()&lt;br /&gt;
: conf: add support for XDG_CONFIG_HOME search path&lt;br /&gt;
: conf: load function (hook) - add OR support&lt;br /&gt;
: conf: USB-Audio.conf - add another card name for Asus Xonar 5&lt;br /&gt;
: conf: add snd_config_is_array() function&lt;br /&gt;
: conf: use bool type for the join member in the config structure&lt;br /&gt;
: conf: change namehint for pcm.front&lt;br /&gt;
: conf: USB-Audio: Fix S/PDIF output of ASUS Xonar AE&lt;br /&gt;
: pcm: dmix: fix sw_params handling of timestamp types in direct plugins&lt;br /&gt;
: conf: fix namehint for pcm.front and pcm.iec958&lt;br /&gt;
: conf: USB-Audio: Add C-Media USB Headphone Set to the IEC958 blacklist&lt;br /&gt;
: Change PCM device number of Asus Xonar U5&lt;br /&gt;
: conf: namehint - add omit_noargs to the hint section&lt;br /&gt;
: conf: change the order of PCM devices in alsa.conf&lt;br /&gt;
===Dynamic Loader helpers===&lt;br /&gt;
: dlsym: fix the snd_dlopen(), incorrect variable use&lt;br /&gt;
: dlsym: fix again snd_dlpath()&lt;br /&gt;
: dlsym: fix the reference to the origin lib directory&lt;br /&gt;
: snd_dlopen: implement the relocatable version for glibc&lt;br /&gt;
===Kernel Headers===&lt;br /&gt;
: header: Fix build error with old kernel headers&lt;br /&gt;
===Simple Abstraction Mixer Modules===&lt;br /&gt;
: snd_dlopen: implement the relocatable version for glibc&lt;br /&gt;
: snd_dlopen: do not use absolute plugin path for snd_dlopen() calls&lt;br /&gt;
===Test/Example code===&lt;br /&gt;
: test: pcm_min - add snd_pcm_drain() call and indentation fixes&lt;br /&gt;
==alsa-utils==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.3&lt;br /&gt;
: github actions: ubuntu - fix the non-interactive build&lt;br /&gt;
: github workflow: fix tag fetch&lt;br /&gt;
===ALSA Control (alsactl)===&lt;br /&gt;
: alsactl: ucm - rename _once command to _boot command&lt;br /&gt;
: alsactl: allow to compile alsactl without UCM support&lt;br /&gt;
: alsactl: use the right priority for syslog messages&lt;br /&gt;
: alsactl: add -D argument to execute also the UCM defaults section&lt;br /&gt;
: alsactl: redirect alsa-lib errors&lt;br /&gt;
: alsactl: add initial support for UCM init&lt;br /&gt;
: alsactl: init - iterate through all cards for the initial settings&lt;br /&gt;
: alsactl: daemon.c - fix gcc warning in write_pid_file()&lt;br /&gt;
: alsactl: fix error handling for sched_setscheduler() call&lt;br /&gt;
: alsactl: avoid needless wakeups in monitor loop.&lt;br /&gt;
: alsactl: don't exit on EINTR from epoll_wait().&lt;br /&gt;
===alsa-info.sh===&lt;br /&gt;
: alsa-info.sh: increase version to 0.4.65&lt;br /&gt;
: alsa-info: initial rpm/deb package info&lt;br /&gt;
: alsa-info.sh: add ALT to DISTRO list&lt;br /&gt;
===alsaloop===&lt;br /&gt;
: alsaloop: reduce cumulative error caused by non-atomic samples calculation&lt;br /&gt;
===alsamixer===&lt;br /&gt;
: alsamixer: suppress _XOPEN_SOURCE compile warning&lt;br /&gt;
===alsaucm===&lt;br /&gt;
: alsaucm: remove custom rules, alsactl is UCM aware now&lt;br /&gt;
: alsactl: ucm - rename _once command to _boot command&lt;br /&gt;
===amixer===&lt;br /&gt;
: amixer: retype to double in convert_prange1() like in convert_prange()&lt;br /&gt;
: amixer: improve the raw percentual volume rounding&lt;br /&gt;
==tinycompress==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.3&lt;br /&gt;
===Header files===&lt;br /&gt;
: sound: fix the snd_dec_alac structure&lt;br /&gt;
: sound: update header to v0.2.0&lt;br /&gt;
==alsa-ucm-conf==&lt;br /&gt;
===Configuration===&lt;br /&gt;
: ucm2: fix more indentation issues&lt;br /&gt;
: ucm2: DB845c: Add ucm for DB845c board&lt;br /&gt;
: ucm2: codecs: wsa881x: add codec sequences&lt;br /&gt;
: ucm2: codecs: wcd934x: Add Codec sequences.&lt;br /&gt;
: chtmax98090: add generic chtmax98090.conf and move Quawks init to the generic HiFi.conf&lt;br /&gt;
: ucm2: chtmax98090: add generic HiFi.conf and SOF support&lt;br /&gt;
: ucm2: enable possible SOF support in profile for Chromebook Asus C300&lt;br /&gt;
: ucm2: Add profile for Chromebook Asus C300&lt;br /&gt;
: ucm2: PAZ - move whole initialization to BootSequence&lt;br /&gt;
: SOF: bytcht selections&lt;br /&gt;
: sof-bytcht-rt5650: reuse legacy settings&lt;br /&gt;
: sof-bytcht-rt5645: reuse legacy settings&lt;br /&gt;
: sof-bytcht-nau8824: reuse legacy settings&lt;br /&gt;
: sof-bytcht-rt5672: reuse legacy settings&lt;br /&gt;
: sof-bytcht-es8316: reuse legacy settings&lt;br /&gt;
: sof-bytcht-cx2072x: reuse legacy settings&lt;br /&gt;
: sof-bytcht-rt5651: reuse legacy settings&lt;br /&gt;
: sof-bytcht-rt5640: reuse legacy settings&lt;br /&gt;
: ucm2: update README.md&lt;br /&gt;
: chtrt5650: add Syntax 2&lt;br /&gt;
: ucm2: add initial ucm.conf for the latest alsa-lib&lt;br /&gt;
: ucm: fix wrong If in sequence in HiFi-dual.conf&lt;br /&gt;
: bytcr-rt5651: fix the cfg-mic:in1 / cfg-mic:in12 match error&lt;br /&gt;
: ucm2: fix chtrt5650 configuration (ucm-validator)&lt;br /&gt;
: Add initial support for Realtek ALC1220 TRX40 motherboards&lt;br /&gt;
: ucm2: fix indentation (use tabs)&lt;br /&gt;
: ucm2: remove empty enable/disable sequence sections&lt;br /&gt;
: sof-hda-dsp: change Headphones2 to Mic2&lt;br /&gt;
: chtrt5645: Remove bogus JackHWMute settings&lt;br /&gt;
: chtrt5645: Add MEDION-E1239TMD60568-0.1-Wingman.conf symlink to chtrt5645-dmic2.conf&lt;br /&gt;
: chtrt5645: Add ASUSTeKCOMPUTERINC.-T100HAN-1.0 symlink to chtrt5645-dmic1.conf&lt;br /&gt;
: bytcr-rt5651: Fix dmic check in HiFi-Components.conf&lt;br /&gt;
: update README files&lt;br /&gt;
: hda-dsp: add basic ucm config&lt;br /&gt;
: sof-hda-dsp: Support systems without integrated graphics audio&lt;br /&gt;
: ucm2: treewide - JackHWMute fixes&lt;br /&gt;
: sof-bdw-rt5677: initial port to UCM2&lt;br /&gt;
===Description===&lt;br /&gt;
: update README files&lt;br /&gt;
==alsa-topology-conf==&lt;br /&gt;
===Configuration files===&lt;br /&gt;
: topology: Add topology file for generic HDA DSP machine driver&lt;/div&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
</feed>