Detailed changes v1.1.2 v1.1.3
Jump to navigation
Jump to search
Detailed changelog between 1.1.0 and 1.1.3 releases
Changelog between 1.1.2 and 1.1.3 releases
alsa-tools
Core
- - Release v1.1.3
hdspmixer
- - gcc6 narrowing error
- gcc6 narrowing error compiling for PowerPC archi
- ===
- [ 51s] Cus428Midi.cc: At global scope:
- [ 51s] Cus428Midi.cc:83:1: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing]
- [ 51s] };
- ===
- proposed patch as suggested in
- https://gcc.gnu.org/gcc-6/porting_to.html
us428control
- - gcc6 narrowing error
- gcc6 narrowing error compiling for PowerPC archi
- ===
- [ 51s] Cus428Midi.cc: At global scope:
- [ 51s] Cus428Midi.cc:83:1: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing]
- [ 51s] };
- ===
- proposed patch as suggested in
- https://gcc.gnu.org/gcc-6/porting_to.html
Detailed changelog between 1.1.1 and 1.1.3 releases
Changelog between 1.1.2 and 1.1.3 releases
tinycompress
Core
- - Release v1.1.3
Utilities
- - tinycompress: rename crec usages
- The creord utility help listed crec as the utility name, change that to
- crecord and also update the program explanation text.
- - tinycompress: rename crec.c
- Since the compress recorder utility is called crecord, it makes it apt to
- have src file named crecord.c.
- Reported-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Detailed changelog between 1.1.2 and 1.1.3 releases
Changelog between 1.1.2 and 1.1.3 releases
alsa-lib
Core
- - Release v1.1.3
- - conf/ucm: skylake: add skylake-rt286 conf files
- This add the UCM conf files for skylake enabling I2S audio, HDMI and DMIC
- ports.
- - conf: bxtrt298: Add topology conf file for bxt
- Add the conf file for bxt platform as well to define module
- private data.
- - conf: sklrt286: Remove tool to generate private data blobs
- Since tuples are used to define driver private data, the private data
- blobs are no longer required.
- So, remove the source files required to generate the private
- data blobs and the private data blobs.
- - ucm: Add ucm files for DB410c board.
- DB410c board has support for both Digital and Analog audio. Digital
- audio is over HDMI and analog is over codec chip integrated inside the
- APQ8016 SOC.
- It can support:
- - 3 Microphones: Primary Mic(Handset mic), Headset Mic and Secondary
- - 2 Digital Microphones.
- - Earpiece.
- - Headset.
- - Loud Speaker.
- - HDMI.
- [Riku: squashed Srinivas's patches together and converted spaces to tabs]
Control API
- - ctl: correct documentation about TLV feature
- From my misunderstanding, some explanations are wrong. This commit
- corrects them.
- - ctl: improve documentation about TLV-related APIs
- The documentation gives no hints to users about format of TLV data.
- This commit add hints to construct/parse the information.
- - ctl: improve API documentation for TLV operation
- A commit fe1b08803db6 ("ctl: improve API documentation for threshold level
- operations") changes documentations for some TLV-related APIs with wrong
- explanations.
- This commit fix it with better explanations.
- Fixes: fe1b08803db6 ("ctl: improve API documentation for threshold level operations")
Mixer API
- - mixer: Fix rounding mode documentation
- The documentation specifies three different rounding modes, but this
- is wrong, because they all end up calling snd_tlv_convert_from_dB,
- which only has two rounding modes.
PCM API
- - pcm: fix get_stop_threshold alsa-lib 0.9 alias
- resurrecting some decade old code I got some crashes and noticed a typo in
- an old 0.9 legacy symver alias.
- - pcm: file: update linked hw_ptr and appl_ptr
- Plugin file provides no private hw_ptr and appl_ptr but instead links
- them to the slave pcm. If the slave pcm itself changes its hw_ptr or
- app_prt this needs to be done in file plugin, too.
- Plugin 'plug' is such a candidate changing the hw_ptr and app_ptr in
- hw_params call dependent on the automatically inserted plugins. ALSA
- unfortunately has no support for automatically updating chained
- pointers.
- A notification on pointer change seems to be prepared inside the
- snd_pcm_set_ptr() routine via rbptr->changed(), but it is not (yet)
- implemented so that we need to care for it manually.
- - pcm_rate: Do not discard slave reported delay in status result.
- snd_pcm_rate_status() gets the underlying status from the slave PCM.
- This may contain a delay value that includes elements such as codec and
- other transfer delays. Use this as the base for the returned delay
- value, adjusted for any frames buffered locally (within the rate
- plugin).
- Also update snd_pcm_rate_delay() similarly.
- [fixed some comments by tiwai]
- - pcm: fix wrong document references to PCM APIs which perform direct memory access with frame copying
- In a design of ALSA PCM interface, for PCM frame transmission to/from
- kernel space, applications can select from two options; direct memory access
- or ioctl(2). Available options are decided depending on device capacity and
- machine architecture. Applications can get available options by the first
- entry of 'struct snd_pcm_hw_params.masks'.
- When the mask includes 'SNDRV_PCM_ACCESS_MMAP_xxx', applications can use
- direct memory access. For this use case, userspace library has two types
- of PCM API. One is to expose a pointer over the memory to start
- reading/writing PCM frames. Another is to copy PCM frames between the
- memory and a given buffer.
- Current documentation includes wrong references to these APIs to describe
- their advantages/disadvantages. This confuses application developers
- because the references indicate PCM APIs to execute ioctl(2) operation to
- read/write PCM frames.
- This commit fixes the bug.
- - pcm: dmix: Do not discard slave reported delay in status result
- Like the change done for dshare plugin, we can calculate the delay
- more precisely from the slave PCM.
- - pcm: Add the PCM state checks to plugins
- I noticed that some plugin codes have no proper PCM state checks and
- it results in expected outcomes. For example, when snd_pcm_drain() is
- called for a dmix PCM after calling snd_pcm_drop(), it stalls
- unexpectedly. It's just because its drain callback doesn't expect the
- SND_PCM_SETUP state.
- We can fix such a bug in each place one by one, but a safer way would
- be to filter out all such cases commonly in the PCM API functions
- themselves. This patch adds the PCM state sanity checks to major API
- functions so that they return -EBADFD when called in the unexpected
- PCM states.
- As well as for the thread-safety extension, it'd be a question of the
- performance; again at this time, the hw PCM is considered as an
- exception, and it has pcm->own_state_check flag set, which means that
- the common PCM state checks are skipped.
- - Revert "pcm: file: Add htimestamp operation in plugin file"
- This reverts commit f8d07a7354a3fee1e30073aa7ac2efb89ef4e782.
- The htimestamp field was already intiailized. It was just overlooked,
- sorry.
- Suggested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
- - pcm: file: Add htimestamp operation in plugin file
- PCM operation htimestamp is not implemented in plugin file.
- Calling snd_pcm_htimestamp() on a plugin file crashes. This scenario
- is considered now.
- - pcm: dshare: Fix endless playback of buffer
- On snd_pcm_drain() the slave PCM driven via plugin DSHARE is not filled with
- silence. Result is endless playback of buffer content until pcm is closed.
- In ALSA pcm dshare plugin, called do_silence method to fix the issue.
- - pcm: direct: Protect from freeing semaphore when already in use
- In the case of dshare, dsnoop, and dmix when a device is opened twice
- and fails the second time, the semaphore is completely discarded. This
- creates dangling semaphore data.
- This patch removes the possibility for the semaphore to be destroyed during
- a typical open failure by first checking if the shared memory can be destroyed
- or not. If the shared memory cannot be released it means both it and the
- semaphore are still in use and therefore the semaphore is just released.
- - pcm_dshare: Do not discard slave reported delay in status result.
- snd_pcm_dshare_status() gets the underlying status from the slave PCM.
- This may contain a delay value that includes elements such as codec and
- other transfer delays. Use this as the base for the returned delay
- value, adjusted for any frames buffered locally (within the dshare
- plugin).
- Note: snd_pcm_dshare_delay() is not updated.
- - pcm_plug: Clear plugins on all error conditions
- Otherwise, they will linger after the error is returned (but pcm->setup == 0).
- Then, if the caller tries to clean up and call snd_pcm_close(), the assertion
- plug->gen.slave == plug->req_slave will fail.
- - pcm: Better understandable locking code
- The newly added locking code seems to have confused quite a few
- people, as "thread_safe=1" may be considered as if the thread-safety
- lock has to be turned on. (It meant that the plugin _is_ thread-safe,
- i.e. it needs no extra locking.)
- For avoiding such a misunderstanding, this commit renames the relevant
- pcm fields and give more comments to explain what is for what.
- The former single pcm->thread_safe flag is now split to two boolean
- flags, pcm->need_lock and pcm->lock_enabled. It consumes a few more
- bytes, but this would be (hopefully) better understandable.
- No functional change by this commit.
- - pcm: Fix shm initialization race-condition
- Easily seen when two threads try at the same time, one of them will fail.
- The bug was identified by using apulse with Skype.
- Fixes: dec428c35221 ("pcm: fix 'unable to create IPC shm instance' caused by fork from a thread")
- Fixes: https://github.com/i-rinat/apulse/issues/38
Topology API
- - topology: fix unused-variable warnings introduced to build_link()
- A function with unused automatic variables was recently introduced to this
- library, then compiler generates below warnings.
- pcm.c: In function ‘build_link’:
- pcm.c:213:6: warning: unused variable ‘i’ [-Wunused-variable]
- int i, num_hw_configs = 0, err = 0;
- ^
- pcm.c:210:43: warning: unused variable ‘cmpnt’ [-Wunused-variable]
- struct snd_soc_tplg_link_cmpnt *codec, *cmpnt;
- ^~~~~
- pcm.c:210:35: warning: unused variable ‘codec’ [-Wunused-variable]
- struct snd_soc_tplg_link_cmpnt *codec, *cmpnt;
- ^~~~~
- pcm.c:209:20: warning: unused variable ‘ref_elem’ [-Wunused-variable]
- struct tplg_elem *ref_elem = NULL;
- This commit removes them.
- Fixes: 53f7711769d4("topology: Define a function to build a single physical DAI link")
- - topology: Store number of strings of a text section
- Enum controls may use text elements and need the number of strings.
- This patch adds a text child object for a generic element. When parsing
- a text section from the configuation file, store the text strings and
- number of strings (num_items) in the text child object of the element.
- Reported-by: G Kranthi <gudishax.kranthikumar@intel.com>
- - topology: Merge private data before embedded controls of a widget
- For a widget ABI object, its private data sits before the embedded
- controls, so we should merge the private data blocks at first, and
- then the embedded controls.
- - topology: Revise document and comments for ABI v5
- Revise the obsolete content in document and comments.
- Here are the major changes in implementation from early phase design:
- - PCM object is used to configure front end DAI & DAI links, not used by
- physical DAI or DAI links.
- - No longer use separate object for backend or codec<->codec links, but
- use physical links to cover them.
- - topology: Export physical DAIs to the binary for kernel
- Export the physical DAI objects to the binary output file for kernel.
- For physical DAIs defined by the text conf file, find and merge their
- stream capablities and private data before exporting.
- - topology: Support configuring physical DAIs by C API
- In addition to text conf file, physical DAIs can also be configured
- by C API. This patch defines the template to add physical DAI
- configurations from C API.
- - topology: Parse physical DAIs in text conf file
- Add support for parsing physical DAIs in the text configuration file.
- The syntax of physical DAIs is described in document in topology.h
- - topology: Remove BE or CC in comments of physical links C API template
- No longer use BE or CC in comments of C API template for physical links.
- This template can be used by Backend or Codec-to-Codec DAI links but not
- only for them.
- - topology: Parse name and stream name of physical DAI links
- Parse name and stream name of physical links defined by text conf file
- or C API. Add name and stream name to C API template of physical DAI
- links.
- These two fields will help topology kernel driver to find an existing
- physical link to configure, since the id of links are often the default
- value ZERO and useless for match.
- - topology: Parse and build private data of physical links
- Users can define private data for physical links by C API or text conf
- file. Private data pointer is added to C API template for physical links.
- - topology: Parse link flags of physical DAI links
- Parse physical DAI link flags defined by text conf file or C API.
- The flag mask and flags are added to C API template for physical DAI
- links.
- - topology: Parse HW configurations of physical DAI links in text conf file
- Users can configure the runtime supported HW configurations of a physical
- link by SectionHWConfig. A physical link can refer multiple HW config
- sections in SectionLink.
- - topology: Parse HW configurations of physical DAI links defined by C API
- Add HW configurations to C API template of physical link configuration.
- - topology: Define new type and section name to configure physical links
- Users may not use DPCM but still need to configure the physical links.
- So we should not only consider backend links for DPCM.
- - SND_TPLG_TYPE_LINK is defined to configure physical links by C API.
- And SND_TPLG_TYPE_BE is still supported to configure Backend links for
- DPCM cases.
- - SectionLink can be used to configure physical links in text conf file.
- And SectionBE is still supported to config Backend links for DPCM cases.
- Actually, users can use SND_TPLG_TYPE_LINK and SectionLink to configure
- backend links for DPCM cases, because BE links are also physical links.
- The parsing is same and we rename the function from tplg_parse_be to
- tplg_parse_link.
- - topology: Rename varaibles for add physical links by C API
- Code refactoring. When adding a physical link element from C API:
- - Rename "link" to "link_tpl" for physical link config template for
- C API users.
- - Rename "lk" to "link" for physical link elements created by topology
- internally.
- - topology: Define a function to build a single physical DAI link
- Code refactoring. Rename the function to build all physical links from
- tplg_build_link_config() to tplg_build_links(). And define a new function
- build_link() to build a single physical DAI link element.
- The function build_link() will be extended to handle more properties
- of a physical DAI link (e.g. backend or codec-codec link).
- - topology: Merge an element's be & cc pointer to one link pointer
- Code refactoring. Previously an element has two pointers, 'be' and 'cc',
- for BE (Back End) and CC (Codec-Codec) link respectively. But actually
- the topology tool processes BE and CC links in the same way, so these
- two pointers can be merged into one 'link' pointer, which can be used
- configure any physical links.
- - topology: Use snd_config_get_bool to simplify boolean flag parsing
- The link flags in the text conf file are boolean, so this patch uses
- snd_config_get_bool() to simplify the code.
- - topology: tplg_elem_lookup() checks parameter before searching
- Check the parameters at first in case of misuse.
- - topology: Parse and build private data for PCM
- Users can define private for PCM (FE DAI & DAI links) elements by both
- text conf file and C API:
- - Text conf file may define multiple data blocks for a PCM and they will
- be merged in building phase;
- - Add private data to C API template of PCM object.
- - topology: Define a function to build a single PCM element
- Code refactoring. Rename tplg_build_pcm() to tplg_build_pcms() to build
- all PCM (FE DAI & DAI link) elements. It will call a new function
- build_pcm() to build a single PCM elemement.
- build_pcm() will be extended to handle more properties of a PCM.
- - topology: Parse flags for PCM
- Users can define flags by both text conf file and C API.
- Add flags and flag_mask to C API template of PCM object.
- - topology: Parse sig_bits of stream caps
- Add sig_bits to stream caps template of C API and parse it.
- - topology: Add doc for including other files in the text conf file
- This patch adds document about how to include other files in the text
- configuration files, by alsaconf syntax <xxx> and <searchdir:xxx>.
- Users may define common info in separate files (e.g. vendor tokens,
- tuples) and share them for different platforms, by including them via
- syntax <path/to/configuration-file>. This can save the total size of
- files. Users can also specifiy additional configuraiton directories
- relative to "/usr/share/alsa/" to search the included files, via syntax
- <searchdir:relative-path/to/usr/share/alsa>.
- The alsaconf will search and open an included file in the following order
- of priority:
- 1. directly open the file by its name;
- 2. search for the file name in "/usr/share/alsa";
- 3. search for the file name in user specified subdirectories under
- "/usr/share/alsa".
- The order of the included files need not to be same as their dependencies,
- because the toplogy library will load all of them before parsing their
- dependencies.
- - topology: Fix missing stream name of widgets in text conf file
- User can define the stream name of an input/output widget in the text conf
- file, by setting "stream_name" of a SectionWidget.
- Topology C API and kernel already have support for configuring a widget's
- stream name. This patch just adds the missing part of the text conf file.
Use Case Manager API
- - ucm: Execute sequence of component devices
- A machine device's sequence can enable or disable a component device. So
- when executing a machine device's sequence, the enable or disable sequence
- of its component devices will also be excecuted.
- Components don't define card device cdev in their sequences. So before
- executing a component device sequence, UCM manager will
- - store cdev defined by the sequence of its parent, the machine device;
- - mark itself entering 'component domain'.
- Then this cdev will be used to excute the sequence of the component
- device.
- When UCM manager completes executing the sequence of the component device,
- it will leave 'compnent domain' and reset the saved cdev to NULL.
- - ucm: Parse sequence of component devices
- A machine device's sequence can enable or disable a component device by
- keyword 'enadev' and 'disdev' followed the name of the component device.
- UCM sequence parser will find the component device and mark if its enable
- or disable sequence is needed by the parent, the machine device.
- New element type and struct are defined for the sequence of a component
- device. Component devices will be removed from the machine device list
- 'device_list' of a verb, since we don't want to expose them to audio
- servers with original API to list devices for backward compatibility.
- A new list 'cmpt_device_list' is used for the component devices of a verb.
- - ucm: Skip component directories when scanning sound card configuration files
- Cards are defined by machines. DSPs embedded in SoC and off-soc codecs
- can be taken as components for machines, and can be reused by different
- machines/cards. Codec and SoC vendors can define their own UCM config
- files. If a codec or DSP is used by a machine, the card configuration file
- can include the conf file of the codec and DSP. Later patches will
- complete support for this feature.
- Two new directories will be used to store the UCM configuration files for
- a specific codec or DSP firmware:
- - /usr/share/alsa/ucm/dsps ... for DSP embedded in SoC
- - /usr/share/alsa/ucm/codecs ... for off-soc codecs
- These two directories will be skipped when UCM manager scans the card
- directories under /usr/share/alsa/ucm.
- - ucm: docs: typeset lists of identifiers explicitly
- Doxygen doesn't preserve formatting that relies only on indentation,
- typeset lists of identifiers explicitly.
- This makes the HTML docs a lot more readable.
- This change comes along the lines of commit 72aa0f8332fb ("ucm: reformat
- snd_use_case_get() doc").
- Some TABs has been added too in order to preserve the aligned look when
- reading the source code.
- - ucm: fix crash when calling snd_use_case_geti() with no device or modifier
- When calling snd_use_case_geti(uc_mgr, "_devstatus", &lvalue) the code
- ends up calling device_status(uc_mgr, NULL), which result in a crash in
- strcmp(dev->name, NULL), when there are enabled devices.
- This happens because snd_use_case_geti() allows a "_devstatus"
- identifier even if it's only supposed to allow the form
- "_devstatus/{device}".
- So check that the device name is not null.
- The same issue occurs with "_modstatus", this change fixes that as well.
Configuration
- - conf: don't install smixer.conf when python is not available
- - topology: Update physical link configurations in Broadwell text conf file
- To make this conf file a better example, add configurations for the
- physical link "Codec", same as that defined by Intel Broadwell upstream
- machine driver.
- - conf: Search included files under user specified configuration directories
- Users can include file by giving a relative path or just a file name via
- alsaconf syntax <xxx>. ALSA conf will search the file in top configuration
- directory and additional configuration directories defined by users via
- alsaconf syntax <searchdir:xxx>.
- ALSA conf will search and open an included file in the following order
- of priority:
- 1. directly open the file by its name;
- 2. search for the file name in top config direcotry "/usr/share/alsa/";
- 3. search for the file name in additional configuration directories
- specified by users, via alsaconf syntax
- <searchdir:relative-path/to/user/share/alsa>;
- These directories will be searched in the same order as their
- definition.
- The configuration directories defined by a file will only be used to
- search the files included by this file.
- - conf/ucm: skylake: add skylake-rt286 conf files
- This add the UCM conf files for skylake enabling I2S audio, HDMI and DMIC
- ports.
- - conf: bxtrt298: Add topology conf file for bxt
- Add the conf file for bxt platform as well to define module
- private data.
- - conf: sklrt286: Remove tool to generate private data blobs
- Since tuples are used to define driver private data, the private data
- blobs are no longer required.
- So, remove the source files required to generate the private
- data blobs and the private data blobs.
- - conf: sklrt286: define module private data through tuples in skylake
- In the conf file, module private data can be described through
- tuples instead of blobs defined by vendor defined structures.
- This patch defines the tuple section and the token list. The
- tokens are then used to build the tuple array.
- The module data may have both driver data and firmware data. The
- driver data is passed using the tuple array and the firmware data
- using byte data. A descriptor tuple array is defined to describe
- the succeeding data block.
- - ucm: Add ucm files for DB410c board.
- DB410c board has support for both Digital and Analog audio. Digital
- audio is over HDMI and analog is over codec chip integrated inside the
- APQ8016 SOC.
- It can support:
- - 3 Microphones: Primary Mic(Handset mic), Headset Mic and Secondary
- - 2 Digital Microphones.
- - Earpiece.
- - Headset.
- - Loud Speaker.
- - HDMI.
- [Riku: squashed Srinivas's patches together and converted spaces to tabs]
Kernel Headers
- - topology: ABI - Add voice wake up flag for DAI links
- Add a new flag bit SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP to link flags.
- If a link is used for voice wake up, users can set this flag bit and
- topology will set the link's 'ignore_suspend' to true.
- This ABI update is backward compatible and applied in kernel. We may
- rename this flag when we find a better name for this.
- - topology: ABI - Define new types for physical DAI
- Define the type and ABI struct for physical DAIs (e.g. backend DAIs).
- They are new to ABI and so no backward compatibility risk.
- - topology: ABI - Update manifest and pump ABI version to 5
- Pump ABI version to 5.
- To support physical DAIs and furture extension, add the following fields
- to manifest:
- - the count of physical DAIs. Later patches will add new ABI types for
- physical DAIs.
- - some reserved fields for new ABI objects in the future.
- Kerel will handle this ABI update in a backward compatible way, via patch
- 'ASoC: topology: Make manifest backward compatible from ABI v4'.
- - topology: ABI - Update physical DAI link configurations to ABI v5
- This patch update physicals DAI link config to ABI v5:
- - Define the types and ABI struct for runtime supported hardware configs
- e.g. audio hardware formats. The default HW config ID will help topology
- to find the DAI format to set on init. Topology provides this as a
- fallback if such HW settings are not available in ACPI or device tree,
- to avoid hard code in drivers. It's only for config items that can be
- programmed by SW or FW, not for physical things like link connections
- or GPIO used for HP etc.
- - Add flags. The flags will be used to configure an existing physical
- links.
- - Add private data. The private data is reserved for future extension.
- - Add name and stream name to physical DAI links. Kernel can also use name
- and stream name to find an existing physical link and configure it.
- Kernel can handle the ABI update in a backward compatible way via patch
- 'ASoC: topology: Add support to configure existing physical DAI links'.
- - topology: ABI - Define DAI physical PCM data formats
- Define DAI physical PCM data formats for user space, so users can specify
- the formats of backends by topology (e.g. the DAI format to set on backend
- link init).
- The kernel will also refer to these formats.
- - topology: ABI - Update stream caps and PCM objects to ABI v5
- Here are the ABI updates for PCM (Front DAI & DAI link) objects:
- - add sig_bits to stream caps.
- - add flags and private data to PCM.
- The kernel can handle the ABI update in a backward compatible way with
- the patch "ASoC: topology: Make PCM backward compatible from ABI v4".
- - Update include/sound/tlv.h from 4.9-pre kernel uapi
- The UAPI header in 4.9-pre kernel newly includes existent macros related
- to tlv operation, mainly for layout of TLV packet payload.
- This commit updates corresponding backport header in this library.
Simple Abstraction Mixer Modules
- - mixer: Don't install smixer modules unless python is enabled
- Currently the whole smixer stuff depends on python, so it doesn't make
- sense to install plugins partially when the python support is
- disabled.
- This patch changes Makefile.am not to install the smixer stuff at all
- when the python support is disabled via configure script.
Test/Example code
- - test: use actual information for TLV operation
- Currently, this test program uses undefined type of TLV data. This can
- bring confusions to userspace applications.
- This commit replaces the array with valid information, constructed by newly
- exported TLV macros from kernel land.
alsa-utils
Core
- - Release v1.1.3
- - INSTALL: document how to configure a build for installation in a local dir
- - configure.ac: add a check for rst2man, a reStructuredText man page generator
- Define a USE_RST2MAN conditional so that, when available, rst2man can be
- used to generate man pages from reStructuredText source files.
- The code follows what is done to check for xmlto.
- On Debian system, the rst2man executable is provided by python-docutils
- or python3-docutils.
- - configure.ac: fix the check for xmlto availability
- The same $xmlto variable is used both in AC_ARG_ENABLE and
- AC_CHECK_PROG, but the latter is not setting a value to it when the
- program is not found.
- These two facts result in the "yes" value from the AC_ARG_ENABLE macro
- to be still kept in the variable when the program is not found by
- AC_CHECK_PROG, causing USE_XMLTO to be always set, finally resulting in
- a build failure in case the xmlto program is not actually in the PATH.
- As possible fix could have been to set "no" as a value in AC_CHECK_PROG
- when program is not found.
- However using two separate variables is more explicit, so fix the issue
- this way.
- - alsabat: add amixer config files
- This patch includes the reference asound.state config files
- on Intel Skylake, Broadwell and Hsawell platforms
- - alsabat: automation test scripts
- This patch includes automated test scripts for linux audio driver
- based on alsa-lib interface by using alsabat as test tool.
- It supports analog and display(HDMI/DP) audio test.
- The package needs the alsa-utils, alsa-lib installed environment.
ALSA Control (alsactl)
- - alsactl: Fix potential NULL dereferences in daemon mode
- The code releasing the each card object may access to NULL when a
- bogus count is given. Add a NULL check just to make sure.
ALSA RawMidi Utility (amidi)
- - amidi: add sysex-interval option
- This patch adds a new option to amidi tool: sysex-interval.
- It adds a delay (in milliseconds) in between each SysEx message - it searches
- for a 0xF7 byte.
- This is very useful when sending firmware updates to a remote device via SysEx
- or any other use that requires this delay in between SysEx messages.
- `amidi' manual was updated with an example usage as well.
- - amidi: fix timeout handling
- The timeout is not supposed to expire when ignored messages are
- received. This cannot be handled with the poll() timeout, so add
- a separate timer.
- Reported-by: Martin Tarenskeen <m.tarenskeen@gmail.com>
- Reviewd-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
- Tested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
- - amidi: ignore not only Active Sensing but also Clock bytes
- Active Sensing messages are sent by many devices in the background and
- would only interfere with the actual messages that amidi is supposed to
- capture. Therefore, amidi ignores them by default. However, there are
- also devices that send Clock messages with the same problem, so it is
- a better idea to filter them out, too.
- Reported-by: Martin Tarenskeen <m.tarenskeen@gmail.com>
- Reviewd-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
- Tested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Speaker Test
- - speaker-test: Fix chmap wav file selection.
- The channel selection currently does not work properly when a channel
- map control is provided but no manual channel map was explicitly
- requested with "-m".
- For example, the CEA/HDMI 6ch (surround 5.1) map is:
- FL, FR, LFE, FC, RL, RR.
- Tested command: speaker-test -D hdmi -c 6 -t wav
- Speaker-test tries to play channels in this following order:
- 0 - Front Left
- 3 - Front Center
- 1 - Front Right
- 5 - Rear Right
- 4 - Rear Left
- 2 - LFE
- But wav file played on associated speakers are not aligned. Here are
- the real files played:
- 0- /usr/share/sounds/alsa/Front_Left.wav => OK
- 3- /usr/share/sounds/alsa/Rear_Right.wav => OK
- 1- /usr/share/sounds/alsa/Front_Right.wav => OK
- 5- /usr/share/sounds/alsa/Rear_Center.wav => KO
- 4- found file /usr/share/sounds/alsa/Front_Center.wav => KO
- 2- /usr/share/sounds/alsa/Rear_Left.wav => KO
- Issue is that associated wav files ordering is reworked only if
- channel_map_set variable is set.
- Fix consists in allowing wavs re-ordering if a channel mapping as been
- get or set, i.e. channel_map is not null.
alsaloop
- - alsaloop: try adapt avail_min for playback to avoid 100% CPU usage
alsaucm
- - alsaucm: add a man page, generated from reStructuredText
- - alsaucm: mention the "list1" command in the usage output
aplay/arecord
- - aplay: Fix to handle pause when system is suspended/Resumed
- If PCM is paused and then we do system supend-resume, the stream throws
- error(EBADF) when stream is paused released.
- Check the pcm state before pause/release and if stream is suspended,
- call snd_pcm_resume to resume the stream.
bat (basic audio tester)
- - alsabat: add system power management S3 test
- Support audio pause/resume for playback and capture. The user can
- pause alsabat playback/capture threads by sending a signal. The patch
- provides a method for QA to quick test audio during system s3.
- - alsabat: fix alsabat -86 error
- alsabat reports -86 error when system suspend and resume. Check the
- return value of read_to_pcm() and write_to_pcm(), when -x8 err is
- detected, do resume and wait for read/write to pcm to complete.
- Write PCM device error: Streams pipe error(-86)
- Read PCM device error: Streams pipe error(-86)
- *** Error in alsabat: double free or corruption (out): 0x00007fb438001810 ***
- - alsabat: add amixer config files
- This patch includes the reference asound.state config files
- on Intel Skylake, Broadwell and Hsawell platforms
- - alsabat: automation test scripts
- This patch includes automated test scripts for linux audio driver
- based on alsa-lib interface by using alsabat as test tool.
- It supports analog and display(HDMI/DP) audio test.
- The package needs the alsa-utils, alsa-lib installed environment.