  <?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=Detailed_changes_v1.0.28_v1.0.29</id>
	<title>Detailed changes v1.0.28 v1.0.29 - 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=Detailed_changes_v1.0.28_v1.0.29"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.0.28_v1.0.29&amp;action=history"/>
	<updated>2026-04-20T14:27:22Z</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=Detailed_changes_v1.0.28_v1.0.29&amp;diff=6763&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=Detailed_changes_v1.0.28_v1.0.29&amp;diff=6763&amp;oldid=prev"/>
		<updated>2015-02-26T16:14: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 16:14, 26 February 2015&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=Detailed_changes_v1.0.28_v1.0.29&amp;diff=6762&amp;oldid=prev</id>
		<title>Perex at 16:14, 26 February 2015</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.0.28_v1.0.29&amp;diff=6762&amp;oldid=prev"/>
		<updated>2015-02-26T16:14: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 changelog between 1.0.26 and 1.0.29 releases=&lt;br /&gt;
=Changelog between 1.0.28 and 1.0.29 releases=&lt;br /&gt;
==alsa-python==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
: - setup.py: indent changes&lt;br /&gt;
:   &lt;br /&gt;
===pyalsa.alsaseq module===&lt;br /&gt;
: - alsaseq: fix memory leaks&lt;br /&gt;
:   &lt;br /&gt;
:   Fix a bunch of dangling reference issues. Also switch to Py_BuildValue&lt;br /&gt;
:   where appropriate, since that makes it easier to build complex&lt;br /&gt;
:   dictionary/tuple structures without leaking integer/string references.&lt;br /&gt;
:   &lt;br /&gt;
: - alsaseq: remove dead code in Sequencer_set_clientname()&lt;br /&gt;
:   &lt;br /&gt;
=Detailed changelog between 1.0.28 and 1.0.29 releases=&lt;br /&gt;
=Changelog between 1.0.28 and 1.0.29 releases=&lt;br /&gt;
==alsa-lib==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
: - conf/ucm: GoogleNyan: Add configuration&lt;br /&gt;
:   &lt;br /&gt;
:   Taken from the ChromeOS sources, this configuration should apply to all&lt;br /&gt;
:   Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer&lt;br /&gt;
:   Chromebook 13 (nyan-big).&lt;br /&gt;
:   &lt;br /&gt;
: - conf/ucm: PAZ00: add Toshiba AC100/Dynabook AZ new config&lt;br /&gt;
:   &lt;br /&gt;
:   Recent mainline kernels threat Toshiba AC100 audio hardware as hw:PAZ00&lt;br /&gt;
:   vs old hw:tegraalc5632.&lt;br /&gt;
:   &lt;br /&gt;
:   This patch adds config files for new hw name and include them to&lt;br /&gt;
:   makefiles.&lt;br /&gt;
:   &lt;br /&gt;
===Control API===&lt;br /&gt;
: - control: complement comment for subscribe API&lt;br /&gt;
:   &lt;br /&gt;
:   When minus value is given as a parameter, the API returns whether&lt;br /&gt;
:   the caller has already subscribed or not.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit adds a comment about this so as better documentation.&lt;br /&gt;
:   &lt;br /&gt;
: - Remove unused hostname resolution in shm plugins and aserver&lt;br /&gt;
:   &lt;br /&gt;
:   PCM and control shm plugins and aserver have some codes to resolve the&lt;br /&gt;
:   host address and check whether it's a local host although the given&lt;br /&gt;
:   address is never used.  In addition, the code contains gethostbyname()&lt;br /&gt;
:   that is known to be obsoleted.  So, let's get rid of all these unused&lt;br /&gt;
:   codes.&lt;br /&gt;
:   &lt;br /&gt;
:   The host configuration item is still accepted (but just ignored) for&lt;br /&gt;
:   keeping the compatibility.&lt;br /&gt;
:   &lt;br /&gt;
: - control: enable octal and hexadecimal parse&lt;br /&gt;
:   &lt;br /&gt;
:   Use zero-base for strtol(), so get_integer() and get_integer64()&lt;br /&gt;
:   can parse decimal, octal and hexadecimal data from input string.&lt;br /&gt;
:   &lt;br /&gt;
: - control: return negative value in case of error&lt;br /&gt;
:   &lt;br /&gt;
===HWDEP API===&lt;br /&gt;
: - hwdep: add OXFW driver support&lt;br /&gt;
:   &lt;br /&gt;
:   Linux 3.19 newly support this driver. By hardware dependent interface,&lt;br /&gt;
:   userspace applications can get hardware information, lock/unlock kernel&lt;br /&gt;
:   streaming and receive lock status event.&lt;br /&gt;
:   &lt;br /&gt;
: - hwdep: add missing declaration for snd_hwdep_poll_descriptors_count()&lt;br /&gt;
:   &lt;br /&gt;
:   The alsa-lib has 'snd_hwdep_poll_descriptors_count()' but hwdep.h has no&lt;br /&gt;
:   declaration for the function. No applications can call the function just&lt;br /&gt;
:   by including the header.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit adds a line to the file for this function.&lt;br /&gt;
:   &lt;br /&gt;
: - Sync enum snd_hwdep_iface_t with include/asound/asound.h&lt;br /&gt;
:   &lt;br /&gt;
:   Some members in this enumerated type has not updated for 9 years, although&lt;br /&gt;
:   kernel-drivers added them during this period. This commit adds them following&lt;br /&gt;
:   to a commit 87df9f3 'sync include/asound/asound.h with 3.17-rc1 kernel'.&lt;br /&gt;
:   &lt;br /&gt;
===Mixer API===&lt;br /&gt;
: - mixer: Fix unused parameter warnings&lt;br /&gt;
:   &lt;br /&gt;
:   mixer_simple.h:35:64: warning: unused parameter 'mixer' [-Wunused-parameter]&lt;br /&gt;
:   static inline int snd_mixer_simple_basic_register(snd_mixer_t *mixer,&lt;br /&gt;
:   ^&lt;br /&gt;
:   mixer_simple.h:36:40: warning: unused parameter 'options' [-Wunused-parameter]&lt;br /&gt;
:   struct snd_mixer_selem_regopt *options,&lt;br /&gt;
:   ^&lt;br /&gt;
:   mixer_simple.h:37:29: warning: unused parameter 'classp' [-Wunused-parameter]&lt;br /&gt;
:   snd_mixer_class_t **classp)&lt;br /&gt;
:   ^&lt;br /&gt;
:   &lt;br /&gt;
: - mixer: Fix inclusion of config.h&lt;br /&gt;
:   &lt;br /&gt;
:   config.h wasn't read or read too late in some files in src/mixer.&lt;br /&gt;
:   &lt;br /&gt;
: - mixer: Fix missing hctl handle free in snd_mixer_attach_hctl()&lt;br /&gt;
:   &lt;br /&gt;
:   Yet another missing piece.&lt;br /&gt;
:   &lt;br /&gt;
:   Also, update the function document to warn about the behavior at&lt;br /&gt;
:   error.&lt;br /&gt;
:   &lt;br /&gt;
: - simple_abst: null check for lib&lt;br /&gt;
:   &lt;br /&gt;
: - mixer: fixed double free&lt;br /&gt;
:   &lt;br /&gt;
===PCM API===&lt;br /&gt;
: - Remove unused hostname resolution in shm plugins and aserver&lt;br /&gt;
:   &lt;br /&gt;
:   PCM and control shm plugins and aserver have some codes to resolve the&lt;br /&gt;
:   host address and check whether it's a local host although the given&lt;br /&gt;
:   address is never used.  In addition, the code contains gethostbyname()&lt;br /&gt;
:   that is known to be obsoleted.  So, let's get rid of all these unused&lt;br /&gt;
:   codes.&lt;br /&gt;
:   &lt;br /&gt;
:   The host configuration item is still accepted (but just ignored) for&lt;br /&gt;
:   keeping the compatibility.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: fix buffer overflow in snd_pcm_chmap_print()&lt;br /&gt;
:   &lt;br /&gt;
:   The size argument is wrong for one of the snprintf() calls in&lt;br /&gt;
:   snd_pcm_chmap_print(), allowing an overflow to happen (the user-provided&lt;br /&gt;
:   buffer may be written data up to 2x its actual size).&lt;br /&gt;
:   &lt;br /&gt;
:   Seen in an user report here: http://trac.kodi.tv/ticket/15641&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fix assorted tstamp_type bugs/omissions.&lt;br /&gt;
:   &lt;br /&gt;
:   Just a couple of quick fixes related to tstamp_type.&lt;br /&gt;
:   &lt;br /&gt;
:   - snd_pcm_sw_params(): copy tstamp_type field&lt;br /&gt;
:   - snd_pcm_tstamp_type_name(): fix argument type&lt;br /&gt;
:   - snd_pcm_dump_sw_setup(): fix dumping of tstamp_type field&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fix DSD sample format endianess and add big-endian format&lt;br /&gt;
:   &lt;br /&gt;
:   This patch adds big-endian DSD sample format and fixes return value of DSD&lt;br /&gt;
:   formats for snd_pcm_format_little_endian().&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: dmix: Don't ignore SND_TIMER_EVENT_MSTOP&lt;br /&gt;
:   &lt;br /&gt;
:   When a slave PCM gets an error like XRUN, it stops and notifies with&lt;br /&gt;
:   SND_TIMER_EVENT_MSTOP event.  But the current code filters out this&lt;br /&gt;
:   type and eventually hang due to the empty timer queue.  The fix is to&lt;br /&gt;
:   just add this event type to the filter bit mask.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: return negative value in case of error&lt;br /&gt;
:   &lt;br /&gt;
: - pcm_hooks: null check for h&lt;br /&gt;
:   &lt;br /&gt;
: - pcm_share: fixing missing mutex unlock&lt;br /&gt;
:   &lt;br /&gt;
: - pcm_file: fixed missing free&lt;br /&gt;
:   &lt;br /&gt;
: - pcm, rate: hw_avail must not be negative before starting the stream&lt;br /&gt;
:   &lt;br /&gt;
:   If it is, then it means most likely the driver problem, so we should&lt;br /&gt;
:   return error immediately instead.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm route: Fix the bad condition (always false)&lt;br /&gt;
: - Revert &amp;quot;pcm: rewindable, forwardable: don't return stale data&amp;quot;&lt;br /&gt;
:   &lt;br /&gt;
:   This reverts commit 6db0fe495ef1db1fd8f0ed791996f834665a926b.&lt;br /&gt;
: - pcm, file: don't recurse in the rewindable and forwardable callbacks&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: rewindable, forwardable: don't return stale data&lt;br /&gt;
:   &lt;br /&gt;
:   The current behavior of snd_pcm_rewindable and snd_pcm_forwardable means&lt;br /&gt;
:   that the returned value is only accurate to one period. Or maybe even&lt;br /&gt;
:   meaningless if period interrupts are off. Fetch the up-to-date position&lt;br /&gt;
:   of the hardware pointer, as that's what is wanted by callers.&lt;br /&gt;
:   &lt;br /&gt;
: - dsnoop: rewindable and forwardable logic was swapped&lt;br /&gt;
:   &lt;br /&gt;
: - rate: handle negative values from snd_pcm_mmap_playback_hw_avail&lt;br /&gt;
:   &lt;br /&gt;
:   Such negative returns are possible during an underrun if xrun detection&lt;br /&gt;
:   is disabled.&lt;br /&gt;
:   &lt;br /&gt;
:   So, don't store the result in an unsigned variable (where it will&lt;br /&gt;
:   overflow), and postpone the trigger in such case, too.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm, null: use the snd_pcm_mmap_avail function&lt;br /&gt;
:   &lt;br /&gt;
:   instead of the open-coded equivalent&lt;br /&gt;
:   &lt;br /&gt;
: - pcm, rate: use the snd_pcm_mmap_hw_avail function&lt;br /&gt;
:   &lt;br /&gt;
:   instead of the open-coded equivalent&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: handle negative values from snd_pcm_mmap_hw_avail&lt;br /&gt;
:   &lt;br /&gt;
:   Such negative values can happen when an underrun happens and xrun&lt;br /&gt;
:   detection is disabled. Another situation is if the device updated the&lt;br /&gt;
:   pointer before alsa-lib has a chance to detect the xrun.&lt;br /&gt;
:   &lt;br /&gt;
:   The problem is that these negative values could propagate to the&lt;br /&gt;
:   snd_pcm_rewindable return value, where it is specified that negative&lt;br /&gt;
:   returns must be interpreted as error codes and not as negative amount of&lt;br /&gt;
:   samples.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: express the rewind size limitation logic better&lt;br /&gt;
:   &lt;br /&gt;
:   There are a few places where the argument of the .rewind or .forward&lt;br /&gt;
:   callback is checked against the same value as returned by .rewindable or&lt;br /&gt;
:   .forwardable. Express this &amp;quot;don't rewind more than rewindable&amp;quot; logic&lt;br /&gt;
:   explicitly, so that the future fixes to the rewindable size can go to&lt;br /&gt;
:   one function instead of two.&lt;br /&gt;
:   &lt;br /&gt;
:   While at it, take advantage of the fact that snd_pcm_mmap_avail() cannot&lt;br /&gt;
:   return negative values (except due to integer overflow, which is AFAICS&lt;br /&gt;
:   impossible given the current boundary choice).&lt;br /&gt;
:   &lt;br /&gt;
: - dmix: actually rewind when running or being drained&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: add new 32-bit DSD sample format&lt;br /&gt;
:   &lt;br /&gt;
:   Add the new DSD_U32_LE sample format to alsa-lib.&lt;br /&gt;
:   &lt;br /&gt;
:   NB include/pcm.h and include/sound/asound.h are updated so a new sync with the&lt;br /&gt;
:   kernel headers is not needed&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: fix return value of snd_pcm_share_slave_avail&lt;br /&gt;
:   &lt;br /&gt;
:   The return value was wrong for playback if slave-&amp;amp;gt;hw_ptr was near the&lt;br /&gt;
:   boundary and *pcm-&amp;amp;gt;appl.ptr was near zero. The wrong result was greater&lt;br /&gt;
:   than the boundary.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: fix snd_pcm_mmap_hw_avail() near the boundary&lt;br /&gt;
:   &lt;br /&gt;
:   This function returned incorrect results when hw.ptr was near the&lt;br /&gt;
:   boundary and hw.appl_ptr was near zero. Here &amp;quot;incorrect&amp;quot; means &amp;quot;greater&lt;br /&gt;
:   than the boundary&amp;quot;.&lt;br /&gt;
:   &lt;br /&gt;
:   The result was incorrect, because it was used as a return value of&lt;br /&gt;
:   various *_rewindable() functions and also as the delay for ioplug.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: 2nd round of pcm_misc DSD fixes&lt;br /&gt;
:   &lt;br /&gt;
:   Functions 'snd_pcm_format_silence_64' and 'snd_pcm_format_size' also need to be&lt;br /&gt;
:   able to handle the DSD smaple format.&lt;br /&gt;
:   &lt;br /&gt;
:   Changes from v1:&lt;br /&gt;
:   - Correct silence pattern for DSD&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Add missing signed and endianess definitions for DSD formats&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fix DSD formats userland usability&lt;br /&gt;
:   &lt;br /&gt;
:   Support for DSD sample formats has been added a while ago. This patch makes&lt;br /&gt;
:   those sample formats beter usable from userland (e.g. aplay).&lt;br /&gt;
:   &lt;br /&gt;
:   [These implementation details have been forgotten in the previous DSD&lt;br /&gt;
:   support patch -- tiwai]&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: pcm_local.h: include &amp;amp;lt;time.h&amp;amp;gt; to enable CLOCK_MONOTONIC&lt;br /&gt;
:   &lt;br /&gt;
:   CLOCK_MONITONIC is defined in &amp;amp;lt;bits/time.h&amp;amp;gt;, add &amp;amp;lt;time.h&amp;amp;gt; before&lt;br /&gt;
:   &amp;amp;lt;sys/time.h&amp;amp;gt;.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Drop snd_pcm_linear_{get|put}32_index()&lt;br /&gt;
:   &lt;br /&gt;
:   These are identical with snd_pcm_linear_{get|put}_index().&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: route: Use get32 for multi-source route calculation&lt;br /&gt;
:   &lt;br /&gt;
:   The PCM route plugin can assign the destination value from average of&lt;br /&gt;
:   multiple sources with attenuation.  This requires the read of each&lt;br /&gt;
:   channel value, sums and writes the resultant value in the requested&lt;br /&gt;
:   format.&lt;br /&gt;
:   &lt;br /&gt;
:   Currently, get_labels is used for reading source values while&lt;br /&gt;
:   put32_labels is used for writing the dest value.  This is, however,&lt;br /&gt;
:   a buggy implementation; get_labels gives the value as is only with&lt;br /&gt;
:   endianness and signedness conversions, but put32_labels assumes that&lt;br /&gt;
:   the value is normalized to 32bit int and it shifts down to the dest&lt;br /&gt;
:   format.  In addition, the current code lacks get_labels entries for&lt;br /&gt;
:   the 24bit formats, as Shengjiu Wang spotted out.&lt;br /&gt;
:   &lt;br /&gt;
:   For fixing these bugs, this patch replaces the read with&lt;br /&gt;
:   get32_labels and use always 64bit int for sum.  This simplifies the&lt;br /&gt;
:   code a lot and drops many lines.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fill sw_params proto field&lt;br /&gt;
:   &lt;br /&gt;
:   Fill the new proto field introduced to sw_params with the current PCM&lt;br /&gt;
:   protocol version.  This makes tstamp_type evaluated properly in the&lt;br /&gt;
:   kernel.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: route: Use get/put labels for all 3 byte formats&lt;br /&gt;
:   &lt;br /&gt;
:   So far, use_getput flag is set only when the src or dest format is&lt;br /&gt;
:   24bit physical width.  But, also 18 and 20 bit physical width formats&lt;br /&gt;
:   should set the flag, too.  This patch makes the check broader to cover&lt;br /&gt;
:   all 3 bytes formats.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Implement timestamp type handling in all plugins&lt;br /&gt;
:   &lt;br /&gt;
:   Now all PCM plugins do support the proper timestamp type or pass it&lt;br /&gt;
:   over slaves.  The internal monotonic flag is dropped and replaced with&lt;br /&gt;
:   tstamp_type in all places.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Implement timestamp type setup in hw plugin&lt;br /&gt;
:   &lt;br /&gt;
:   This patch implements the support for sw_params timestamp type in PCM&lt;br /&gt;
:   hw layer.  As gettimestamp() is still unchanged, the resultant&lt;br /&gt;
:   timstamps may be still with CLOCK_MONOTONIC even if you pass monotonic&lt;br /&gt;
:   raw type.  More fixes will follow.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Add sw_params API functions to get/set timestamp type&lt;br /&gt;
:   &lt;br /&gt;
:   For obtaining / changing the timestamp type, add the corresponding&lt;br /&gt;
:   sw_params accessor API functions together with the public definitions&lt;br /&gt;
:   of timestamp types.&lt;br /&gt;
:   &lt;br /&gt;
:   This patch only adds the functions and defines but doesn't bring the&lt;br /&gt;
:   functional changes yet.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: rate: fix hw_ptr exceed the boundary&lt;br /&gt;
:   &lt;br /&gt;
:   For long time test case, the hw_ptr will exceed the boundary, then cause&lt;br /&gt;
:   the avail size wrong.&lt;br /&gt;
:   &lt;br /&gt;
===RawMidi API===&lt;br /&gt;
: - rawmidi: close handle h&lt;br /&gt;
:   &lt;br /&gt;
===Use Case Manager API===&lt;br /&gt;
: - ucm: fix some variable constness issues&lt;br /&gt;
:   &lt;br /&gt;
:   I submitted earlier a patch that made the value parameter of&lt;br /&gt;
:   snd_use_case_get() non-const, but as that changed the public API, the&lt;br /&gt;
:   patch couldn't be accepted. This is the same patch, modifying the&lt;br /&gt;
:   internal code so that there are fewer issues with constness, but the&lt;br /&gt;
:   public API is left alone (a comment was added to the function&lt;br /&gt;
:   documentation, though, so that hopefully nobody else will try to fix&lt;br /&gt;
:   the same unfixable problem).&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: fix the logic of choosing the default cdev&lt;br /&gt;
:   &lt;br /&gt;
:   If the cdev has not been configured explicitly, use the PlaybackCTL&lt;br /&gt;
:   or CaptureCTL value if one of them is set. If neither are set, or if&lt;br /&gt;
:   both are set to different values, then there's no sensible default, so&lt;br /&gt;
:   executing the sequence should fail. The previous code probably tried&lt;br /&gt;
:   to implement this logic, but it was buggy.&lt;br /&gt;
:   &lt;br /&gt;
:   Also use more descriptive variable names than &amp;quot;cdev1&amp;quot; and &amp;quot;cdev2&amp;quot;.&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: fix incorrect error code sign&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Takashi Iwai &amp;amp;lt;tiwai@suse.de&amp;amp;gt;&lt;br /&gt;
: - ucm: fix variable mixup&lt;br /&gt;
:   &lt;br /&gt;
:   I assume the intention was to use cdev1 for PlaybackCTL and cdev2 for&lt;br /&gt;
:   CaptureCTL, but cdev1 was being used for both and cdev2 was not used&lt;br /&gt;
:   for anything.&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: add binary configure file parse&lt;br /&gt;
:   &lt;br /&gt;
:   with cset command, UCM set kcontrol parameters directly:&lt;br /&gt;
:   cset &amp;quot;name='&amp;amp;lt;KCONTROL_NAME&amp;amp;gt;' 1&amp;amp;lt;,2,3,...&amp;amp;gt;&amp;quot;&lt;br /&gt;
:   This patch enables UCM to set kcontrol with parameters from&lt;br /&gt;
:   configure file:&lt;br /&gt;
:   cset-bin-file &amp;quot;name='&amp;amp;lt;KCONTROL_NAME&amp;amp;gt;' &amp;amp;lt;path/to/file&amp;amp;gt;&amp;quot;&lt;br /&gt;
:   where &amp;quot;cset-bin-file&amp;quot; is a newly added keyword alongside of &amp;quot;cset&amp;quot;,&lt;br /&gt;
:   to indicate cset with binary data in file.&lt;br /&gt;
:   The binary data in file is parameter for audio DSPs, and it's just&lt;br /&gt;
:   passed by UCM/ALSA as raw data. The data type of parameter elements&lt;br /&gt;
:   must be byte, and the count must matches driver definition.&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: Fix uninitialized err in snd_use_case_set()&lt;br /&gt;
:   &lt;br /&gt;
:   The compiler warns like:&lt;br /&gt;
:   main.c:1664:9: warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized]&lt;br /&gt;
:   &lt;br /&gt;
:   and actually there are slight code paths that slip.&lt;br /&gt;
:   This patch adds the proper initializations to 0 to return the success&lt;br /&gt;
:   code in these code paths.&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: Document PlaybackPCMIsDummy and CapturePCMIsDummy values&lt;br /&gt;
:   &lt;br /&gt;
:   At least PulseAudio needs special handling for dummy devices. To allow&lt;br /&gt;
:   that to happen automatically, the UCM configuration should contain the&lt;br /&gt;
:   information about which PCMs are dummy.&lt;br /&gt;
:   &lt;br /&gt;
===/include/Makefile.am===&lt;br /&gt;
: - autotools: fix ucm partial build&lt;br /&gt;
:   &lt;br /&gt;
:   When --disable-ucm configure option is specified,&lt;br /&gt;
:   don't install related include file.&lt;br /&gt;
:   &lt;br /&gt;
===ALSA Server===&lt;br /&gt;
: - Remove unused hostname resolution in shm plugins and aserver&lt;br /&gt;
:   &lt;br /&gt;
:   PCM and control shm plugins and aserver have some codes to resolve the&lt;br /&gt;
:   host address and check whether it's a local host although the given&lt;br /&gt;
:   address is never used.  In addition, the code contains gethostbyname()&lt;br /&gt;
:   that is known to be obsoleted.  So, let's get rid of all these unused&lt;br /&gt;
:   codes.&lt;br /&gt;
:   &lt;br /&gt;
:   The host configuration item is still accepted (but just ignored) for&lt;br /&gt;
:   keeping the compatibility.&lt;br /&gt;
:   &lt;br /&gt;
===Configuration===&lt;br /&gt;
: - conf: add support for USB AudioSport Quattro (tm)&lt;br /&gt;
:   &lt;br /&gt;
:   This patch resulted from discussion with redlion_ on #alsa IRC channel&lt;br /&gt;
:   on Freenode. 4-channel playback now works. 4-channel capture works too,&lt;br /&gt;
:   but not simultaneously with playback (hardware limitation).&lt;br /&gt;
:   &lt;br /&gt;
:   Alsa-info before the fix:&lt;br /&gt;
:   http://www.alsa-project.org/db/?f=a3673622074b88a1abf4ccc6e7f37d0b5b72f34a&lt;br /&gt;
:   &lt;br /&gt;
: - conf/ucm: GoogleNyan: Add configuration&lt;br /&gt;
:   &lt;br /&gt;
:   Taken from the ChromeOS sources, this configuration should apply to all&lt;br /&gt;
:   Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer&lt;br /&gt;
:   Chromebook 13 (nyan-big).&lt;br /&gt;
:   &lt;br /&gt;
: - USB-audio: Add five more cards to IEC958 blacklist&lt;br /&gt;
:   &lt;br /&gt;
:   These devices do not have any IEC958 outputs, so prevent them from&lt;br /&gt;
:   being opened.&lt;br /&gt;
:   &lt;br /&gt;
: - USB-Audio: Add Scarlett 2i4 USB to S/PDIF blacklist&lt;br /&gt;
:   &lt;br /&gt;
:   Like Scarlett 2i2, the 2i4 does not have any S/PDIF connections.&lt;br /&gt;
:   &lt;br /&gt;
: - conf/ucm: PAZ00: add Toshiba AC100/Dynabook AZ new config&lt;br /&gt;
:   &lt;br /&gt;
:   Recent mainline kernels threat Toshiba AC100 audio hardware as hw:PAZ00&lt;br /&gt;
:   vs old hw:tegraalc5632.&lt;br /&gt;
:   &lt;br /&gt;
:   This patch adds config files for new hw name and include them to&lt;br /&gt;
:   makefiles.&lt;br /&gt;
:   &lt;br /&gt;
: - conf: return negative value in case of error&lt;br /&gt;
:   &lt;br /&gt;
: - USB-Audio: Add second S/PDIF device on Phiree U2&lt;br /&gt;
:   &lt;br /&gt;
:   Phiree U2 has an unusual configuration. It only has S/PDIF output, but&lt;br /&gt;
:   there are still two devices presented:&lt;br /&gt;
:   - device 0: PCM audio, subject to volume control&lt;br /&gt;
:   - device 1: non-PCM data (passthrough), not subject to volume control&lt;br /&gt;
:   &lt;br /&gt;
:   It looks like the AES bits are set according to the selected device,&lt;br /&gt;
:   since outputting PCM data via device 1 will not work (silence).&lt;br /&gt;
:   &lt;br /&gt;
:   Currently only the device 0 is shown via the &amp;quot;iec958&amp;quot; alias, and the&lt;br /&gt;
:   second device is not accessible via hinted aliases.&lt;br /&gt;
:   &lt;br /&gt;
:   Simply provide access to both of these devices via the &amp;quot;iec958&amp;quot; alias.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: touc @ XBMC forum&lt;br /&gt;
: - ICE1712: add surround71 pcm definition&lt;br /&gt;
:   &lt;br /&gt;
:   The M-Audio Delta 1010 card has 7.1 analog output, but no ready-made pcm&lt;br /&gt;
:   definition to use it.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-and-tested-by: Matt Zagrabelny &amp;amp;lt;mzagrabe@d.umn.edu&amp;amp;gt;&lt;br /&gt;
===Documentation===&lt;br /&gt;
: - doc: fix cross-compiling example&lt;br /&gt;
:   &lt;br /&gt;
:   Simplest way to configure cross-compilation with configure&lt;br /&gt;
:   script is to pass '--host' option.&lt;br /&gt;
:   Passing just '--target' doesn't work.&lt;br /&gt;
:   &lt;br /&gt;
===Dynamic Loader helpers===&lt;br /&gt;
: - dlmisc: Remove unused label&lt;br /&gt;
:   &lt;br /&gt;
:   Fix a compile warning&lt;br /&gt;
:   dlmisc.c:329:2: warning: label 'unlock' defined but not used [-Wunused-label]&lt;br /&gt;
:   &lt;br /&gt;
: - snd_dlsym: only do versioning checks if built --with-versioning&lt;br /&gt;
:   &lt;br /&gt;
:   a combination of some of the following garbage collecting LD/CFLAGS&lt;br /&gt;
:   -Os -g0 -fdata-sections -ffunction-sections -s -Wl,--gc-sections&lt;br /&gt;
:   -fno-unwind-tables -fno-asynchronous-unwind-tables&lt;br /&gt;
:   causes the symbol versioning marker symbols to be removed from BSS&lt;br /&gt;
:   since they're otherwise unreferenced. this causes dlsym failing to&lt;br /&gt;
:   find them which results in runtime breakage:&lt;br /&gt;
:   &lt;br /&gt;
:   $ alsamixer&lt;br /&gt;
:   ALSA lib dlmisc.c:142:(snd_dlsym_verify) unable to verify version for symbol snd_config_hook_load&lt;br /&gt;
:   ALSA lib conf.c:3328:(snd_config_hooks_call) symbol snd_config_hook_load is not defined inside (null)&lt;br /&gt;
:   ALSA lib conf.c:3788:(snd_config_update_r) hooks failed, removing configuration&lt;br /&gt;
:   cannot open mixer: No such device or address&lt;br /&gt;
:   &lt;br /&gt;
:   correct DSO:&lt;br /&gt;
:   $ objdump -T libasound.so.2.strip | grep _snd_config_hook_load_dlsym_config_hook_001&lt;br /&gt;
:   001196bc g    DO .bss   00000001 _snd_config_hook_load_dlsym_config_hook_001&lt;br /&gt;
:   &lt;br /&gt;
:   incorrect DSO:&lt;br /&gt;
:   $ objdump -T libs/libasound.so.2 | grep _snd_config_hook_load_dlsym_config_hook_001&lt;br /&gt;
:   00000000 g    DO *ABS*  00000001 _snd_config_hook_load_dlsym_config_hook_001&lt;br /&gt;
:   &lt;br /&gt;
:   since alsa was built with --without-versioning, doing those versioning&lt;br /&gt;
:   checks at all is unnecessary and harmful and thus now disabled in this case.&lt;br /&gt;
:   &lt;br /&gt;
===Filename helpers===&lt;br /&gt;
: - snd_user_file: fix memory leak&lt;br /&gt;
:   &lt;br /&gt;
:   Call wordfree if and only if wordfree returns zero or WRDE_NOSPACE&lt;br /&gt;
:   &lt;br /&gt;
===Kernel Headers===&lt;br /&gt;
: - hwdep: add OXFW driver support&lt;br /&gt;
:   &lt;br /&gt;
:   Linux 3.19 newly support this driver. By hardware dependent interface,&lt;br /&gt;
:   userspace applications can get hardware information, lock/unlock kernel&lt;br /&gt;
:   streaming and receive lock status event.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fix DSD sample format endianess and add big-endian format&lt;br /&gt;
:   &lt;br /&gt;
:   This patch adds big-endian DSD sample format and fixes return value of DSD&lt;br /&gt;
:   formats for snd_pcm_format_little_endian().&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: add new 32-bit DSD sample format&lt;br /&gt;
:   &lt;br /&gt;
:   Add the new DSD_U32_LE sample format to alsa-lib.&lt;br /&gt;
:   &lt;br /&gt;
:   NB include/pcm.h and include/sound/asound.h are updated so a new sync with the&lt;br /&gt;
:   kernel headers is not needed&lt;br /&gt;
:   &lt;br /&gt;
: - Sync include/sound/asound.h with 3.17-rc1 kernel&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fix DSD formats userland usability&lt;br /&gt;
:   &lt;br /&gt;
:   Support for DSD sample formats has been added a while ago. This patch makes&lt;br /&gt;
:   those sample formats beter usable from userland (e.g. aplay).&lt;br /&gt;
:   &lt;br /&gt;
:   [These implementation details have been forgotten in the previous DSD&lt;br /&gt;
:   support patch -- tiwai]&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Fill sw_params proto field&lt;br /&gt;
:   &lt;br /&gt;
:   Fill the new proto field introduced to sw_params with the current PCM&lt;br /&gt;
:   protocol version.  This makes tstamp_type evaluated properly in the&lt;br /&gt;
:   kernel.&lt;br /&gt;
:   &lt;br /&gt;
: - Add timestamp type to sw_params (internal only)&lt;br /&gt;
:   &lt;br /&gt;
:   This patch is just the udpate of sound/asound.h taken from the kernel&lt;br /&gt;
:   commit.  The API changes and PCM structure changes will follow after&lt;br /&gt;
:   this.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Provide a CLOCK_MONOTONIC_RAW timestamp type&lt;br /&gt;
:   &lt;br /&gt;
:   For applications which need to synchronise with external timebases such&lt;br /&gt;
:   as broadcast TV applications the kernel monotonic time is not optimal as&lt;br /&gt;
:   it includes adjustments from NTP and so may still include discontinuities&lt;br /&gt;
:   due to that. A raw monotonic time which does not include any adjustments&lt;br /&gt;
:   is available in the kernel from getrawmonotonic() so provide userspace with&lt;br /&gt;
:   a new timestamp type SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW which provides&lt;br /&gt;
:   timestamps based on this as an option.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Daniel Thompson &amp;amp;lt;daniel.thompson@linaro.org&amp;amp;gt;&lt;br /&gt;
===Simple Abstraction Mixer Modules===&lt;br /&gt;
: - sbase: fixed missing free&lt;br /&gt;
:   &lt;br /&gt;
===Socket helpers===&lt;br /&gt;
: - Remove unused hostname resolution in shm plugins and aserver&lt;br /&gt;
:   &lt;br /&gt;
:   PCM and control shm plugins and aserver have some codes to resolve the&lt;br /&gt;
:   host address and check whether it's a local host although the given&lt;br /&gt;
:   address is never used.  In addition, the code contains gethostbyname()&lt;br /&gt;
:   that is known to be obsoleted.  So, let's get rid of all these unused&lt;br /&gt;
:   codes.&lt;br /&gt;
:   &lt;br /&gt;
:   The host configuration item is still accepted (but just ignored) for&lt;br /&gt;
:   keeping the compatibility.&lt;br /&gt;
:   &lt;br /&gt;
: - socket: missing socket close&lt;br /&gt;
:   &lt;br /&gt;
===Test/Example code===&lt;br /&gt;
: - test/audio_time: Set timestamp type explicitly&lt;br /&gt;
:   &lt;br /&gt;
==alsa-utils==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
: - configure: allow contitional compilation of alsaucm&lt;br /&gt;
:   &lt;br /&gt;
:   If alsa-lib have been compiled with --disable-ucm, alsaucm can't be built.&lt;br /&gt;
:   Detection is dynamic, no configure command line option is available for now.&lt;br /&gt;
:   &lt;br /&gt;
: - Add missing alsa-info entry to the root Makefile.am&lt;br /&gt;
:   &lt;br /&gt;
: - Add alsa-info.sh to alsa-utils repo&lt;br /&gt;
:   &lt;br /&gt;
:   Copied the latest version (0.4.63) from alsa-driver repo.&lt;br /&gt;
:   &lt;br /&gt;
===ALSA Control (alsactl)===&lt;br /&gt;
: - alsactl/init: Add &amp;quot;Line Out&amp;quot; to list of outputs to initialize&lt;br /&gt;
:   &lt;br /&gt;
: - alsactl/init: Change the &amp;quot;basic rules&amp;quot; description&lt;br /&gt;
:   &lt;br /&gt;
:   We now enable more outputs than just the main speaker, so update&lt;br /&gt;
:   the basic rules to reflect the actual situation.&lt;br /&gt;
:   &lt;br /&gt;
: - alsactl: add missing state_unlock() call&lt;br /&gt;
: - alsactl: coverity - missing_va_end – va_end was not called for &amp;quot;ap&amp;quot;&lt;br /&gt;
: - monitor: fix clang warning - Declared variable-length array (VLA) has zero size&lt;br /&gt;
: - alsactl: aded missing monitor() prototype&lt;br /&gt;
: - alsactl: Fix the file locking routines (for the state management)&lt;br /&gt;
: - alsactl: save state - do not call rename for stdio&lt;br /&gt;
:   &lt;br /&gt;
===Speaker Test===&lt;br /&gt;
: - speaker-text: fix simple signess assignment warning&lt;br /&gt;
: - speaker-test: Add missing draining at the end&lt;br /&gt;
:   &lt;br /&gt;
:   Without the call of snd_pcm_drain() the pending data on the buffer&lt;br /&gt;
:   might be discarded, which results in the abort of playback sound in&lt;br /&gt;
:   the middle.  Let's fix it.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-and-tested-by: Jarkko Nikula &amp;amp;lt;jarkko.nikula@linux.intel.com&amp;amp;gt;&lt;br /&gt;
===alsa-info.sh===&lt;br /&gt;
: - alsa-info.sh: add script to EXTRA_DIST (automake)&lt;br /&gt;
: - alsa-info: Refactor &amp;quot;withall&amp;quot; logic&lt;br /&gt;
:   &lt;br /&gt;
:   Previously, using --output, --no-upload, --upload and --pastebin&lt;br /&gt;
:   switches implied the withall switch.&lt;br /&gt;
:   &lt;br /&gt;
:   A more intuitive logic would be that --with-all is disabled if you&lt;br /&gt;
:   use another --with* switch, such as --withdmesg, and only then.&lt;br /&gt;
:   &lt;br /&gt;
:   Also update script version to reflect the behaviour change.&lt;br /&gt;
:   &lt;br /&gt;
: - alsa-info: Make sure all full script is run even with &amp;quot;output&amp;quot; option&lt;br /&gt;
:   &lt;br /&gt;
:   For some reason, when the --output option is used, less information&lt;br /&gt;
:   is included compared to when no options are used. This is unexpected.&lt;br /&gt;
:   &lt;br /&gt;
:   Fix this by running &amp;quot;withall&amp;quot; also when the output option is used.&lt;br /&gt;
:   &lt;br /&gt;
: - Add alsa-info.sh to alsa-utils repo&lt;br /&gt;
:   &lt;br /&gt;
:   Copied the latest version (0.4.63) from alsa-driver repo.&lt;br /&gt;
:   &lt;br /&gt;
===alsamixer===&lt;br /&gt;
: - alsamixer: include missing mixer_controls.h&lt;br /&gt;
===amixer===&lt;br /&gt;
: - amixer: Parse the value more strictly&lt;br /&gt;
:   &lt;br /&gt;
:   So far amixer allows some unexpected suffix and assumes as a raw&lt;br /&gt;
:   absolute value without returning an error.  This is rather dangerous,&lt;br /&gt;
:   e.g. user might not notice that a completely wrong value was set when&lt;br /&gt;
:   the command line included a typo.&lt;br /&gt;
:   &lt;br /&gt;
:   This patch makes the parser a bit more strict: it doesn't allow any&lt;br /&gt;
:   longer invalid suffixes, instead either returns an error or skips the&lt;br /&gt;
:   invalid value, depending on the operation mode.&lt;br /&gt;
:   &lt;br /&gt;
: - amixer: Make &amp;quot;dB&amp;quot; case-insensitive in set commands&lt;br /&gt;
:   &lt;br /&gt;
:   We don't have to be necessarily too strict about case-sensitivity of&lt;br /&gt;
:   &amp;quot;dB&amp;quot; suffix used in set commands.&lt;br /&gt;
:   &lt;br /&gt;
===aplay/arecord===&lt;br /&gt;
: - Revert &amp;quot;aplay: fix pcm_read() return value&amp;quot;&lt;br /&gt;
:   &lt;br /&gt;
:   This reverts commit 8aa13eec80eac312e4b99423909387660fb99b8f.&lt;br /&gt;
:   &lt;br /&gt;
:   The semantics for pcm_read() and pcm_readv() was changed, but the&lt;br /&gt;
:   callers expect the exact frame count as requested. It's possible&lt;br /&gt;
:   to fix callers, but the fix is more complicated than to revert the&lt;br /&gt;
:   change. Note that '-d' processing was broken in some cases.&lt;br /&gt;
:   &lt;br /&gt;
:   Note: The reverted commit allows that the return value might be&lt;br /&gt;
:   greater than requested (see the first condition in read routines).&lt;br /&gt;
==alsa-tools==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
: - Add a small &amp;quot;hdajacksensetest&amp;quot; helper&lt;br /&gt;
:   &lt;br /&gt;
:   I previously had a small python script doing the same thing,&lt;br /&gt;
:   but it depended on hda-analyzer, which always breaks when something&lt;br /&gt;
:   new is added to the codec proc file.&lt;br /&gt;
:   &lt;br /&gt;
:   I got tired and rewrote it as a small C program instead, which I&lt;br /&gt;
:   hope will be a useful addition to alsa-tools.&lt;br /&gt;
:   &lt;br /&gt;
===HDA Jack Retask===&lt;br /&gt;
: - hdajackretask: Add dock hp/mic/line to simple options&lt;br /&gt;
:   &lt;br /&gt;
:   This allows for simpler setting of dock headphone, dock mic,&lt;br /&gt;
:   dock line out and dock line in.&lt;br /&gt;
:   &lt;br /&gt;
:   Also improve detection a bit so that an existing dock headphone&lt;br /&gt;
:   shows up as such and not as regular headphone.&lt;br /&gt;
:   &lt;br /&gt;
: - hdajackretask: Add &amp;quot;hints&amp;quot; functionality&lt;br /&gt;
:   &lt;br /&gt;
:   The kernel driver has some hints you can send to it that changes&lt;br /&gt;
:   parser behaviour. This patch exposes that functionality to the user.&lt;br /&gt;
:   &lt;br /&gt;
:   (This patch also includes minor fixes for documentation, GTK warnings&lt;br /&gt;
:   and whitespace.)&lt;br /&gt;
:   &lt;br /&gt;
===HDA Jack Sense Test===&lt;br /&gt;
: - Add a small &amp;quot;hdajacksensetest&amp;quot; helper&lt;br /&gt;
:   &lt;br /&gt;
:   I previously had a small python script doing the same thing,&lt;br /&gt;
:   but it depended on hda-analyzer, which always breaks when something&lt;br /&gt;
:   new is added to the codec proc file.&lt;br /&gt;
:   &lt;br /&gt;
:   I got tired and rewrote it as a small C program instead, which I&lt;br /&gt;
:   hope will be a useful addition to alsa-tools.&lt;br /&gt;
:   &lt;br /&gt;
===ld10k1 (EMU10K1+ DSP Code Loader)===&lt;br /&gt;
: - ld10k1: Fix missing parentheses for functions&lt;br /&gt;
:   &lt;br /&gt;
:   The commit a1728250 removes bash-specific &amp;quot;function&amp;quot; but the necessary&lt;br /&gt;
:   parentheses are missing.&lt;br /&gt;
:   &lt;br /&gt;
==alsa-firmware==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
===AudioScience ASIHPI Firmware===&lt;br /&gt;
: - asihpi: remove removed dsp2400.bin from Makefile.am&lt;br /&gt;
: - asihpi: Update firmware to version 4.14&lt;br /&gt;
:   &lt;br /&gt;
:   Also remove the superfluous file (dsp2400.bin) which was added&lt;br /&gt;
:   mistakenly.&lt;br /&gt;
:   &lt;br /&gt;
==alsa-plugins==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.0.29&lt;br /&gt;
:   &lt;br /&gt;
===A52 Output plugin===&lt;br /&gt;
: - a52: Ignore start request if we're already running&lt;br /&gt;
:   &lt;br /&gt;
:   When trying to start a PCM that's already running, the result is EBADFD.&lt;br /&gt;
:   We might have implicitly started the buffer by filling it up,&lt;br /&gt;
:   so just ignore this request if we're already running.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Chow Loong Jin &amp;amp;lt;hyperair@ubuntu.com&amp;amp;gt;&lt;br /&gt;
===Jack PCM plugin===&lt;br /&gt;
: - jack: Restore PID to jack client name when not specified explicitly&lt;br /&gt;
:   &lt;br /&gt;
:   Commit 14190cd8 added a facility to explicitly name Jack clients with&lt;br /&gt;
:   a 'name' option, but did so in a way that was not fully&lt;br /&gt;
:   backwards-compatible with older versions of the alsa-plugins. There&lt;br /&gt;
:   were two issues:&lt;br /&gt;
:   &lt;br /&gt;
:   1. Re-using the magical &amp;quot;name&amp;quot; variable, which comes preloaded with&lt;br /&gt;
:   the name of the PCM&lt;br /&gt;
:   &lt;br /&gt;
:   2. The code assumed snd_config_get_string sets a variable to NULL if&lt;br /&gt;
:   the config entry does not exist. Instead, this function leaves the&lt;br /&gt;
:   variable unchanged.&lt;br /&gt;
:   &lt;br /&gt;
:   The result of these two errors meant that the PCM name would be&lt;br /&gt;
:   treated as if it were a user-defined name, and the old code which&lt;br /&gt;
:   embedded the PID would never be run&lt;br /&gt;
:   &lt;br /&gt;
:   This code uses a completely new variable to store the explicitly-set&lt;br /&gt;
:   client name, so that the two code paths no longer collide.&lt;br /&gt;
:   &lt;br /&gt;
:   [fixed trivial coding style issues by tiwai]&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
</feed>