  <?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.1.1_v1.1.2</id>
	<title>Changes v1.1.1 v1.1.2 - 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.1.1_v1.1.2"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.1.1_v1.1.2&amp;action=history"/>
	<updated>2026-04-20T14:14:49Z</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.1.1_v1.1.2&amp;diff=6923&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.1.1_v1.1.2&amp;diff=6923&amp;oldid=prev"/>
		<updated>2016-08-02T18:53:18Z</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 18:53, 2 August 2016&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.1.1_v1.1.2&amp;diff=6922&amp;oldid=prev</id>
		<title>Perex at 18:53, 2 August 2016</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.1.1_v1.1.2&amp;diff=6922&amp;oldid=prev"/>
		<updated>2016-08-02T18:53:18Z</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.1.1 v1.1.2]]&lt;br /&gt;
=Changelog between 1.1.1 and 1.1.2 releases=&lt;br /&gt;
==alsa-lib==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.1.2&lt;br /&gt;
: pcm: Remove home brew atomic operations&lt;br /&gt;
: pcm: Add thread-safety to PCM API&lt;br /&gt;
: conf/ucm: chtrt5645: Add UCM config for chtrt5645&lt;br /&gt;
: conf/ucm: ROCKCHIP-I2S: rename to VEYRON-I2S&lt;br /&gt;
: conf/ucm: ROCKCHIP-I2S: add Rockchip I2S UCM config.&lt;br /&gt;
: conf: topology: Generate Private data binary blobs&lt;br /&gt;
: conf: topology: Add Skylake i2s conf&lt;br /&gt;
===Config API===&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
===Control API===&lt;br /&gt;
: ctl: use condition statements instead of assert() for new APIs to add an element set&lt;br /&gt;
: ctl: rename APIs to add an element set so that their names are appropriate&lt;br /&gt;
: ctl: add compatibility information for snd_ctl_elem_info_set_dimension()&lt;br /&gt;
: hctl: remove assertion from element event handler because removal event overwrites all of queued events&lt;br /&gt;
: ctl: improve documentation of APIs to add an element set&lt;br /&gt;
: ctl: add dimension validator&lt;br /&gt;
: ctl: add an API to set dimension levels to element information&lt;br /&gt;
: ctl: support extra information to user-defined element set&lt;br /&gt;
: ctl: use consistent name for second argument of snd_ctl_elem_read/write&lt;br /&gt;
: ctl: use automatic variable instead of call of alloca(3)&lt;br /&gt;
: ctl: fix returning zero for dimension level 4&lt;br /&gt;
: ctl: improve API documentation for threshold level operations&lt;br /&gt;
: ctl: add explanation about threshold level feature&lt;br /&gt;
: ctl: change former APIs as wrapper functions of element set APIs&lt;br /&gt;
: ctl: improve comments for API to add an element of IEC958 type&lt;br /&gt;
: ctl: add functions to add an element set&lt;br /&gt;
: ctl: improve comments for handling element data&lt;br /&gt;
: ctl: add an overview for design of ALSA control interface&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
: namehint: Don't enumerate as duplex if only a single direction is defined&lt;br /&gt;
===HWDEP API===&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
===Mixer API===&lt;br /&gt;
: mixer: remove alloca() from simple_event_add()&lt;br /&gt;
: mixer: change code formatting for simple_event_add()&lt;br /&gt;
: mixer: remove alloca() from simple_add1()&lt;br /&gt;
: mixer: change code formatting for simple_add1()&lt;br /&gt;
: mixer: remove alloca() from set_enum_item_ops()&lt;br /&gt;
: mixer: remove alloca() from get_enum_item_ops()&lt;br /&gt;
: mixer: remove alloca() from enum_item_name_ops()&lt;br /&gt;
: mixer: remove alloca() from init_db_range()&lt;br /&gt;
: mixer: change code formatting for init_db_range()&lt;br /&gt;
: mixer: remove alloca() from selem_write_main()&lt;br /&gt;
: mixer: change code formatting for selem_write_main()&lt;br /&gt;
: mixer: remove alloca() from elem_write_route()&lt;br /&gt;
: mixer: change code formatting for elem_write_route()&lt;br /&gt;
: mixer: remove alloca() from elem_write_enum()&lt;br /&gt;
: mixer: change code formatting for elem_write_enum()&lt;br /&gt;
: mixer: remove alloca() from elem_write_switch_constant()&lt;br /&gt;
: mixer: remove alloca() from elem_write_switch()&lt;br /&gt;
: mixer: change code formatting for elem_write_switch()&lt;br /&gt;
: mixer: remove alloca() from elem_write_volume()&lt;br /&gt;
: mixer: change code formatting for elem_write_volume()&lt;br /&gt;
: mixer: remove alloca() from selem_read()&lt;br /&gt;
: mixer: change code formatting for selem_read()&lt;br /&gt;
: mixer: remove alloca() from elem_read_enum()&lt;br /&gt;
: mixer: change code formatting for elem_read_enum()&lt;br /&gt;
: mixer: remove alloca() from elem_read_route()&lt;br /&gt;
: mixer: change code formatting for elem_read_route()&lt;br /&gt;
: mixer: remove alloca() from elem_read_volume()&lt;br /&gt;
: mixer: change code formatting for elem_read_volume()&lt;br /&gt;
: mixer: include library local header to find layout of structures&lt;br /&gt;
===PCM API===&lt;br /&gt;
: ctl: rename APIs to add an element set so that their names are appropriate&lt;br /&gt;
: pcm: remove alloca() from _snd_pcm_softvol_open()&lt;br /&gt;
: pcm: change code formatting for _snd_pcm_softvol_open()&lt;br /&gt;
: pcm: remove alloca() from softvol_load_control()&lt;br /&gt;
: pcm: change code formatting for softvol_load_control()&lt;br /&gt;
: pcm: remove alloca() from snd_spcm_init_duplex()&lt;br /&gt;
: pcm: remove alloca() from snd_spcm_init()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_hw_set_chmap()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_hw_get_chmap()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_query_chmaps_from_hw()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_hw_change_timer()&lt;br /&gt;
: pcm: change code formatting for snd_pcm_hw_change_timer()&lt;br /&gt;
: pcm: remove alloca() from _snd_pcm_hook_ctl_elems_install()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_direct_set_timer_params&lt;br /&gt;
: pcm: change code formatting for snd_pcm_direct_set_timer_params()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_direct_initialize_poll_fd()&lt;br /&gt;
: pcm: change code formatting for snd_pcm_direct_initialize_poll_fd()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_direct_initialize_slave&lt;br /&gt;
: pcm: change code formatting for snd_pcm_direct_initialize_slave()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_get_params&lt;br /&gt;
: pcm: change code formatting for snd_pcm_get_params()&lt;br /&gt;
: pcm: remove alloca() from snd_pcm_set_params()&lt;br /&gt;
: pcm: change code formatting for snd_pcm_set_params()&lt;br /&gt;
: pcm: fix return value of snd_pcm_ioplug_sw_params()&lt;br /&gt;
: pcm: fix missing return value of snd_pcm_status()&lt;br /&gt;
: pcm: Add LIBASOUND_THREAD_SAFE env variable check&lt;br /&gt;
: pcm: Remove home brew atomic operations&lt;br /&gt;
: pcm: Add thread-safety to PCM API&lt;br /&gt;
: pcm: add 'default' case for switch statement&lt;br /&gt;
: pcm: set error code at failure path&lt;br /&gt;
: pcm: Remove superfluous rmb() from PCM meter plugin&lt;br /&gt;
: ctl: support extra information to user-defined element set&lt;br /&gt;
: pcm: use new APIs to add a control element set for softvol plugin&lt;br /&gt;
: pcm: dmix: Return error when slave is in OPEN or DISCONNECTED&lt;br /&gt;
: pcm: dmix: Prepare slave when it's in SETUP, too&lt;br /&gt;
: pcm: dmix: resume workaround for buggy driver&lt;br /&gt;
: pcm: Fix secondary retry in dsnoop and dshare&lt;br /&gt;
: pcm: Remove resume support from dmix &amp;amp; co&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
: pcm: dmix: Fix doubly resume of slave PCM&lt;br /&gt;
: pcm: Fix suspend/resume regression with dmix &amp;amp; co&lt;br /&gt;
: pcm: softvol: fix conversion of TLVs min_db and max_dB value&lt;br /&gt;
: pcm: Fallback open as the first instance for dmix &amp;amp; co&lt;br /&gt;
: pcm: Clean up error paths in snd_pcm_plugin_*() helpers&lt;br /&gt;
: pcm_plugin: fix appl pointer not correct when mmap_commit() return error&lt;br /&gt;
===RawMidi API===&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
===Topology API===&lt;br /&gt;
: topology: Fix the missing referenced elem ptr when merging private data&lt;br /&gt;
: topology: Fix inaccurate message on failure to find a widgets's reference&lt;br /&gt;
: topology: Check address and length before string copy&lt;br /&gt;
: topology: Add ATTRIBUTE_UNUSED for unused parameters to fix compiler warning&lt;br /&gt;
: topology: Remove support for control flag SNDRV_CTL_ELEM_ACCESS_USER&lt;br /&gt;
: topology: Tuple type can have an extenstion&lt;br /&gt;
: topology: Parse vendor private data for manifest&lt;br /&gt;
: topology: Change uuid value to 16 separate characters in text conf file&lt;br /&gt;
: topology: Merge lookup for data reference into tplg_copy_data()&lt;br /&gt;
: topology: An element can refer to multipe data sections in text conf file&lt;br /&gt;
: topology: initialize variable for error output&lt;br /&gt;
: topology: apply the same type to compared two variables&lt;br /&gt;
: topology: remove unused variable in get_tokens()&lt;br /&gt;
: topology: remove unused variable in tplg_parse_fe_dai()&lt;br /&gt;
: topology: Parse front-end DAI name and ID for the PCM&lt;br /&gt;
: topology: Fix pcm ID &amp;amp; name parsing&lt;br /&gt;
: topology: Use generic pointer to realloc buffer for private data&lt;br /&gt;
: topology: Refactor functions to parse and build streams&lt;br /&gt;
: topology: Set manifest size for ABI&lt;br /&gt;
: topology: Build data objects with tuples&lt;br /&gt;
: topology: Add support for parsing vendor tuples&lt;br /&gt;
: topology: Add support for vendor tokens&lt;br /&gt;
: topology: Add doc for vendor tuples&lt;br /&gt;
: topology: Define a free handler for the element&lt;br /&gt;
: topology: Use the generic pointer to free an element's object&lt;br /&gt;
===Use Case Manager API===&lt;br /&gt;
: ucm: add cset-tlv&lt;br /&gt;
===/include/Makefile.am===&lt;br /&gt;
: pcm: Remove home brew atomic operations&lt;br /&gt;
===ALSA Lisp===&lt;br /&gt;
: alisp: remove alloca() from FA_pcm_info()&lt;br /&gt;
: alisp: remove alloca() from FA_hctl_elem_write()&lt;br /&gt;
: alisp: remove alloca() from FA_hctl_elem_read()&lt;br /&gt;
: alisp: remove alloca() from FA_hctl_elem_info()&lt;br /&gt;
: alisp: remove alloca() from FA_hctl_find_elem()&lt;br /&gt;
: alisp: remove alloca() from FA_card_info()&lt;br /&gt;
===Async helpers===&lt;br /&gt;
: async: Handle previously installed signal handler&lt;br /&gt;
===Configuration===&lt;br /&gt;
: Makefile: fix sklrt286 dist files&lt;br /&gt;
: conf: remove alloca() from snd_func_private_pcm_subdevice()&lt;br /&gt;
: conf: remove alloca() from snd_func_pcm_args_by_class()&lt;br /&gt;
: conf: remove alloca() from snd_func_pcm_id()&lt;br /&gt;
: conf: remove alloca() from snd_func_card_name()&lt;br /&gt;
: conf: remove alloca() from snd_func_card_id()&lt;br /&gt;
: conf: remove alloca() from snd_determine_driver()&lt;br /&gt;
: conf/ucm: chtrt5645: Add UCM config for chtrt5645&lt;br /&gt;
: conf/ucm: ROCKCHIP-I2S: rename to VEYRON-I2S&lt;br /&gt;
: conf: Add thread-safe global tree reference&lt;br /&gt;
: pcm: Define namehint for single directional PCM types&lt;br /&gt;
: conf/ucm: ROCKCHIP-I2S: add Rockchip I2S UCM config.&lt;br /&gt;
: topology: Update PCM configurations in Broadwell text conf file&lt;br /&gt;
: conf: topology: Generate Private data binary blobs&lt;br /&gt;
: conf: topology: Add Skylake i2s conf&lt;br /&gt;
===Documentation===&lt;br /&gt;
: pcm: Add thread-safety to PCM API&lt;br /&gt;
: doxygen: Suppress timestamp&lt;br /&gt;
: INSTALL: update text and drop reference to Hg&lt;br /&gt;
===External PCM I/O Plugin SDK===&lt;br /&gt;
: pcm: Add thread-safety to PCM API&lt;br /&gt;
===Kernel Headers===&lt;br /&gt;
: topology: Fix pcm ID &amp;amp; name parsing&lt;br /&gt;
: Add u8 in type_compat.h&lt;br /&gt;
: topology: ABI - Define types for vendor tuples&lt;br /&gt;
===Simple Abstraction Mixer Modules===&lt;br /&gt;
: mixer: remove assignment to unused variable&lt;br /&gt;
===Test/Example code===&lt;br /&gt;
: ctl: rename APIs to add an element set so that their names are appropriate&lt;br /&gt;
: test: add linker flag with pthread for pcm-multi-thread stress test&lt;br /&gt;
: test: Add pcm-multi-thread program&lt;br /&gt;
: ctl: fix a test for user-defined element set in a point of dimension&lt;br /&gt;
: ctl: support dimension test for user-defined element set&lt;br /&gt;
: ctl: optimize a test for user-defined element set to changes of APIs&lt;br /&gt;
: ctl: optimize a test for user-defined element set to older kernels&lt;br /&gt;
: ctl: add test program for control element set&lt;br /&gt;
==alsa-utils==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.1.2&lt;br /&gt;
: alsabat: align the data type on float&lt;br /&gt;
===aplay/arecord===&lt;br /&gt;
: aplay: fix lurking capture file overwrite bug&lt;br /&gt;
===bat (basic audio tester)===&lt;br /&gt;
: alsabat: make snr_is_valid static&lt;br /&gt;
: alsabat: fix a missing break in switch&lt;br /&gt;
: alsabat: add noise detection&lt;br /&gt;
: alsabat: add a single channel sine wave generator&lt;br /&gt;
: alsabat: add channels parameter for adjust_waveform()&lt;br /&gt;
: alsabat: align the data type on float&lt;br /&gt;
: alsabat: add round trip audio latency test&lt;br /&gt;
: alsabat: fix a possible memory leak&lt;br /&gt;
: alsabat: add buffer size and period size settings&lt;br /&gt;
: alsabat: add terminate status check for capture thread&lt;/div&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
</feed>