Detailed changes v1.1.9 v1.2.1: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (1 revision) |
(No difference)
|
Revision as of 12:57, 15 November 2019
Detailed changelog between 1.1.9 and 1.2.1 releases
Changelog between 1.0.29 and 1.2.1 releases
alsa-lib
Core
- - Release v1.2.1
- - conf: implement snd_config_add_before() and snd_config_add_after()
- - topology: remove configuration files (moved to alsa-topology-conf repository)
- - create separated libatopology library with the topology routines
- - ucm: remove configuration files (moved to alsa-ucm-conf repository)
- - conf: improve the include paths code
- - various cleanups (more straight code and allocations)
- - do not add the base config path /usr/share/alsa to the
- explicit include list of directories
- (it's not wanted for ucm configs)
- - Use __func__ instead of __FUNCTION__
- They are equivalent, but __func__ is in C99. __FUNCTION__ exists only
- for backwards compatibility with old gcc versions.
- - rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
- Use proper reference counting for the dynamic symbol.
- - ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
- Adding a new Conexant CX2072X codec profile and reusing the existing
- BYT/CHT platform snippets.
- Currently tested only on ASUS E200HA laptop.
Config API
- - conf: implement snd_config_add_before() and snd_config_add_after()
- - ucm: change the If block parsing
- - evaluate always If before the other blocks
- - ucm: add If condition block
- The syntax is simple:
- If./any-if-identificator/ {
- Condition {
- Type /type_here/
- /optional defines/
- }
- True {
- /block used when condition is evaluated as true/
- }
- False {
- /block used when condition is evaluated as false/
- }
- }
- The Type "ControlExists" is implemented:
- Condition {
- Type ControlExists
- Device "hw:${CardId}"
- Control "iface=CARD,name='Headphone Jack'"
- }
Control API
- - control_shm: add missing socket close to the error path (coverity)
- - control_shm: remove duplicate code (coverity)
Mixer API
- - mixer: simple - add snd_mixer_selem_id_parse() from amixer
PCM API
- - pcm: the maximal rate is 768000Hz, fix the remain code
- - pcm: fix the period_size for direct plugins (dmix, dsnoop, dshare)
- BugLink: https://github.com/alsa-project/alsa-lib/issues/8
- - pcm: Fix the wrong PCM object passed for locking/unlocking
- Most of PCM API functions have snd_pcm_lock()/unlock() wraps for the
- actual calls of ops, and some plugins try to unlock/relock internally
- for the given PCM object. This, unfortunately, causes a problem in
- some configurations and leads to the unexpected behavior or deadlock.
- The main problem is that we call snd_pcm_lock() with the given PCM
- object, while calling the ops with pcm->op_arg or pcm->fast_op_arg as
- the slave PCM object. Meanwhile the plugin code assumes that the
- passed PCM object is already locked, and calls snd_pcm_unlock().
- This bug doesn't hit always because in most cases pcm->op_arg and
- fast_op_arg are identical with pcm itself. But in some configurations
- they have different values, so the problem surfaces.
- This patch is an attempt to resolve these inconsistencies. It
- replaces most of snd_pcm_lock()/unlock() calls with either pcm->op_arg
- or pcm->fast_op_arg, depending on the call pattern, so that the plugin
- code can safely run snd_pcm_unlock() to the given PCM object.
- Fixes: 54931e5a5455 ("pcm: Add thread-safety to PCM API")
- Reported-by: Ben Russell <thematrixeatsyou@gmail.com>
- - pcm: chmap: Fix memory leak at snd_pcm_set_chmap()
- snd_pcm_set_chmap() leaks the memory returned from snd_pcm_get_chmap()
- without releasing. Add the missing free() call as well as a slight
- code refactoring.
- Reported-by: Conrad Jones
- BugLink: https://github.com/alsa-project/alsa-lib/pull/11
- Fixes: d20e24e5d161 ("chmap: Always succeed setting the map to what it already is")
- - pcm: dshare: allow missing bindings
- allow opening the device and start the audio clock without blocking
- any channel
- this is required if the audio clock has to be available all the time,
- even when application is not streaming audio data
- - pcm: return -ENOSYS when ops or fast_ops callback is NULL
- function is allowed to continue until it checks for error variable, as to
- not conflict with original implementation flow
- for simple functions involving only one line, return error immediately in
- case callback is NULL
- - pcm_file: improve error checking in write_wav_header function
- previously errno would be returned even for cases where it may have
- not been populated, for example one of the write functions failing,
- or writing only partial buffer,
- now progress through write operations separately and report errno when
- appropriate
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm_file: in case of failed write clear file buffer variables
- previously, in case of failed write to output file, error is returned
- from snd_pcm_writei/read APIs, user could run pcm_drain as fallback and
- encounter an assert, since drain would try to write remaining file
- buffer to a file
- if failed to write to output file in first place, it makes sense to clear
- current internal pmc_file file buffer variables
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm_file: use EIO instead of EPIPE when failing to write output file
- EPIPE is defined as XRUN which is not entirely correct in this condition
- failing to write to a file in pcm_file plugin can not be simply recovered
- by a retry as user of the api might be led to believe when receiving EPIPE
- use EIO instead to indicate a different kid of error that may not be
- recoverable by retry
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm_file: return errno in case of a failed write operation
- allows correct error code propagation for snd_pcm_file_write_bytes caller
- - pcm_file: remove double line
- snd_pcm_file_add_frames called two times by mistake, introduced in
- 2a800c0c4f259043c9217a4aa6a57afaf9f77477
- - pcm_file: report write output file error to api user
- when writing to output file fails, api user is notified and can handle
- recovery
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm_file: do not disrupt playback on output file write fail
- previously playback could be interrupted by snd_pcm_file_add_frames:
- assert(file->wbuf_used_bytes < file->wbuf_size_bytes)
- in case snd_pcm_file_write_bytes fails to write full amount of bytes
- to file, variable wbuf_used_bytes would not be fully decremented by
- requested amount of bytes function was called with
- for the assert to trigger, multiple write fails need to happen, so
- that wbuf_used_bytes overflows wbuf_size_bytes,
- this patch will allow application to report error code to api user
- who might have an idea how to recover, before assert is triggered,
- also reporting error along with the print out message might give user
- a better idea of what is going on, where previously reason for
- mentioned assert was not immediately clear
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm: rate: Avoid pointer arithmetic on `void *`
- The pointer operand to the binary `+` operator must be to a complete
- object type.
- - pcm: direct: Remove unused empty struct
- - pcm: Make sure parameter qualifiers match between declaration and definition
- - pcm: hw: Don't return in a void function
- A return statement with an expression in a function returning void is
- a constraint violation.
- - Use __func__ instead of __FUNCTION__
- They are equivalent, but __func__ is in C99. __FUNCTION__ exists only
- for backwards compatibility with old gcc versions.
- - pcm_file: another locking fix (coverity)
- - pcm_file: coverity fixes (including double locking)
- - pcm_hw: close file descriptor in the error path in snd_pcm_hw_open() (coverity)
- - pcm_file: call pclose() correctly for popen() (coverity)
- - pcm: fix memory leak in _snd_pcm_parse_config_chmaps() (coverity)
- - pcm: file: add infile read support for mmap mode
- mmap_begin callback is used to copy data from input file to mmaped
- buffer
- guard for corner use of api (multiple mmap_begin calls by user) is
- introduced to check if next continuous buffer was already overwritten
- buffer is overwritten with input file data only in case of stream capture
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm: add mmap_begin callback to snd_pcm_fast_ops_t api
- main motivation for adding the callback is to use it to enable operation
- on mmaped buffer before user access for pcm_file plugin
- support for MMAP read access with masking by data from input file is not
- implemented for pcm_file plugin, by adding this callback implementing
- such feature can be done by rewriting next continuous portion of buffer
- on each mmap_begin call
- plugins like softvol use pcm_plugin interface and overwrite the buffer by
- looping around it in avail_update callback, this patch hopes to simplify
- the task by adding new api callback, removing the need for rewriting
- pcm_file (to use pcm_plugin callbacks) and careful checking when looping
- around whole mmaped buffer
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm: file: add missing unlock on early return
- - pcm: file: use snd_pcm_file_areas_read_infile for readi
- use previously introduced helper function, this commit unifies behavior
- of readi and readn
- corner case behavior of readi is changed by this commit, previously,
- in case 0 bytes were red from file (EOF), frames = 0 was returned,
- signaling api user as if no data was red from slave, after the patch,
- amount of frames red from slave with data red from slave stored in buffer
- is returned when EOF is reached
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm: file: add support for infile reading in non interleaved mode
- add helper function to copy input file data to buffer mapped by areas,
- in case of an error, do not fill the areas, allowing device read buffer
- to be provided to api caller
- previously unused rbuf variable is reused for this purpose
- Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
- - pcm: dsnoop: Added "hw_ptr_alignment" option in configuration for slave pointer alignment
- This change adapt the fix commit 6b058fda9dce
- ("pcm: dmix: Add option to allow alignment of slave pointers")
- for dsnoop plugin
- Issue is that snd_pcm_wait() goes back to waiting because the hw_ptr
- is not period aligned. Therefore snd_pcm_wait() will block for a longer
- time as required.
- With these rcar driver changes the exact position of the dma is returned.
- During snd_pcm_start they read hw_ptr as reference, and this hw_ptr
- is now not period aligned, and is a little ahead over the period while it
- is read. Therefore when the avail is calculated during snd_pcm_wait(),
- it is missing the avail_min by a few frames.
- An additional option hw_ptr_alignment is provided to dsnoop configuration,
- to allow the user to configure the slave application and hw pointer
- alignment at startup
- - pcm: dshare: Added "hw_ptr_alignment" option in configuration for alignment of slave pointers
- This change adapt the fix commit 6b058fda9dce
- ("pcm: dmix: Add option to allow alignment of slave pointers")
- for dshare plugin
- Issue is that snd_pcm_wait() goes back to waiting because the hw_ptr
- is not period aligned. Therefore snd_pcm_wait() will block for a longer
- time as required.
- With these rcar driver changes the exact position of the dma is returned.
- During snd_pcm_start they read hw_ptr as reference, and this hw_ptr
- is now not period aligned, and is a little ahead over the period while it
- is read. Therefore when the avail is calculated during snd_pcm_wait(),
- it is missing the avail_min by a few frames.
- An additional option hw_ptr_alignment is provided to dshare configuration,
- to allow the user to configure the slave application and hw pointer
- alignment at startup
- - pcm: direct: Add generic hw_ptr_alignment function for dmix, dshare and dsnoop
- Move the code snd_pcm_direct_reset_slave_ptr() from pcm_dmix.c
- to pcm_direct.c and its header so that the helper function can be
- re-used by other direct-pcm plugins.
- There is no change in the behavior or the functionality.
PCM Plugin API
- - pcm: the maximal rate is 768000Hz, fix the remain code
RawMidi API
- - rawmidi_hw: add sanity check for the invalid stream arguments (coverity)
- - rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
- Use proper reference counting for the dynamic symbol.
Topology API
- - create separated libatopology library with the topology routines
- - topology: Fix variable overflow in split_format
- The 1 which was 32-bit long, when left-shifted by more than 31 caused
- an overflow, which resulted in some of the formats being not supported.
- - topology: add support to parse private data for pcm
- We have private data section in struct snd_soc_tplg_pcm, but alsatplg
- doesn't support handling it yet, here add handling in tplg_parse_pcm()
- to enable it.
- - topology: next round of coverity fixes
- - topology: various coverity fixes
Use Case Manager API
- - ucm: add possibility to keep order of childs for If blocks
- Because of the nature of the structured parser, it is not guaranteed
- that the order of the parsed tree is equal to the lines in the source.
- Add possibility to insert the If results before or after the selected
- identifier like:
- SectionDevice."Speaker" {
- ...
- }
- If.1 {
- Condition { ... }
- Before.SectionDevice "Speaker"
- True { ... }
- }
- If.2 {
- Condition { ... }
- After.SectionDevice "Speaker"
- True { ... }
- }
- If the "After" or "Before" identifiers are not found, the result is added
- after the last entry in the block.
- - ucm: change the If block parsing
- - evaluate always If before the other blocks
- - ucm: docs: Add MinBufferLevel value
- Allows ucm to override minimum buffer level for platforms that
- incorrectly report their buffer level.
- - ucm: docs: Add EDID File value
- Add a sys path to the EDID file for the corresponding HDMI device so
- userspace can use if needed
- - use-case header file: add more references to correct ASCII ID parsers for CTL/mixer IDs
- - ucm: add snd_use_case_parse_selem_id()
- and add strict ucm_id checks to snd_use_case_parse_ctl_elem_id()
- - ucm: add If.Condition.RegexMatch
- If.1 {
- Condition {
- Type RegexMatch
- String "something to match"
- Regex ".*(thing)"
- }
- ...
- }
- - ucm: add ${CardComponents} substitution to the value string processing
- - ucm: evaluate nested If blocks also in True/False blocks
- - ucm: add If.Condition.String to match strings and substrings
- Case insensitive string match:
- If.1 {
- Condition {
- Type String
- String1 "aa"
- String2 "bb"
- }
- True {
- ...
- }
- }
- Substring is present (case sensitive):
- If.1 {
- Condition {
- Type String
- Haystack "White Horse"
- Needle "Horse"
- }
- True {
- ...
- }
- }
- - ucm: add snd_use_case_parse_ctl_elem_id()
- - ucm: add PlaybackCTL and CaptureCTL default values when they are not set
- - ucm: small cosmetic uc_error change in execute_sequence()
- - ucm: add If condition block
- The syntax is simple:
- If./any-if-identificator/ {
- Condition {
- Type /type_here/
- /optional defines/
- }
- True {
- /block used when condition is evaluated as true/
- }
- False {
- /block used when condition is evaluated as false/
- }
- }
- The Type "ControlExists" is implemented:
- Condition {
- Type ControlExists
- Device "hw:${CardId}"
- Control "iface=CARD,name='Headphone Jack'"
- }
- - ucm: do not cache all control devices in get_card_long_name()
- - ucm: parser - use less memory for integer/real values in parse_value()
- - ucm: save the whole ctl info to the ctl_list structure
- - ucm: add the run-time variable substitution
- Those two variables are supported:
- ${ConfName} - configuration file name
- ${CardId} - card identification string (like PCH)
- ${CardName} - card name (driver)
- ${CardLongName} - card long name (driver)
- ${env:ENV_NAME} - returns the environment variable ENV_NAME
- - ucm: fix memory leaks for cdev, bin-file and tlv elements
- - ucm: do not report failure when long name configuration does not exist
- - ucm: add support for multiple control devices, more aggresive caching
- - ucm: extend snd_use_case_mgr_open() to address the sound card directly
- Some clients like pulseaudio wants to access the multiple instances
- of sound cards. This patch adds prefixes like "hw:" to the card_name
- argument to handle this. The card index (value) or card identification
- (string) can be used for this prefix.
- Also the prefix "strict:" was added to avoid the driver name and
- driver long name matching. It might be useable for use case
- configurations which are not bound to the one sound card.
- - ucm: switch to ucm2 directory and v2 format, keep backward compatibility
- - conf: improve the include paths code
- - various cleanups (more straight code and allocations)
- - do not add the base config path /usr/share/alsa to the
- explicit include list of directories
- (it's not wanted for ucm configs)
- - ucm: parse_verb_file() - remove folder_name variable and extra logic
- The member uc_mgr->conf_file_name already contains the used directory
- name.
- - ucm: fix uc_mgr_scan_master_configs() - skip correctly component directories
- - ucm: cosmetic fix in get_card_long_name()
- - ucm: another coverity fix in uc_mgr_config_load()
- - ucm: coverity fixes
/Makefile.am
- - create separated libatopology library with the topology routines
/src/Makefile.am
- - create separated libatopology library with the topology routines
ALSA Server
- - Use __func__ instead of __FUNCTION__
- They are equivalent, but __func__ is in C99. __FUNCTION__ exists only
- for backwards compatibility with old gcc versions.
- - aserver: fix resource leak coverity
Configuration
- - conf: implement snd_config_add_before() and snd_config_add_after()
- - topology: remove configuration files (moved to alsa-topology-conf repository)
- - ucm: remove configuration files (moved to alsa-ucm-conf repository)
- - conf: improve the include paths code
- - various cleanups (more straight code and allocations)
- - do not add the base config path /usr/share/alsa to the
- explicit include list of directories
- (it's not wanted for ucm configs)
- - conf: List cases in range explicitly
- Case ranges are a GNU extension, and provide only a slight readability
- improvement.
- - config: parse_string() fix the dynamic buffer allocation failure code (coverity)
- - src/conf.c: add missing va_end() call (coverity)
- - ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
- Adding a new Conexant CX2072X codec profile and reusing the existing
- BYT/CHT platform snippets.
- Currently tested only on ASUS E200HA laptop.
Dynamic Loader helpers
- - rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
- Use proper reference counting for the dynamic symbol.
Utils
- - create separated libatopology library with the topology routines
alsa-utils
Core
- - Release v1.2.1
Audio Transfer utility
- - axfer: handle -ETIMEDOUT before non-block I/O operation
- When running for IRQ-based scheduling model, transmission backend is
- expected to queue PCM event in different context from the main thread.
- When queueing no events during time equivalent to one period of PCM
- buffer, the backend has problems.
- This commit outputs report it for non-blocking operation for IRQ-based
- scheduling model. The timeout is equivalent to all frames in buffer,
- instead of period for safe.
- - axfer: code refactoring for a helper function to wait for avail buffer space
- This commit applies code refactoring for waiting PCM event queued
- per period of PCM buffer in copying operation for IRQ-based scheduling
- model.
- - axfer: handle -ETIMEDOUT before handle mmap I/O operation
- When running for IRQ-based scheduling model, transmission backend is
- expected to queue PCM event in different context from the main thread.
- When queueing no events during time equivalent to one period of PCM
- buffer, the backend has problems.
- This commit outputs report it for mmap operation for IRQ-based
- scheduling model. The timeout is equivalent to all frames in buffer,
- instead of period for safe.
- - axfer: return ETIMEDOUT when no event occurs after waiter expiration
- Although the waiter abstraction handles timeout as success, it should
- report for callers to know timeout.
- This commit takes the waiter to return -ETIMEDOUT when timeout expires.
- - axfer: fix to return error code when a call of select(2) fails
- A call of select(2) returns negative code and report errors via errno
- local variable, howver current waiter implementation for select(2)
- returns the negative code instead of errno.
- This commit fixes it.
- - axfer: return the number of file descriptors for I/O events from select(2) waiter
- A call of select(2) returns error code at failure, the number of file
- descriptors available I/O at success. Current implementation of
- waiter abstraction for select(2) returns 0 at success and callers
- can't get the number.
- This commit fixes it.
- - axfer: test: fix invalid comparison of 64 bit storage in ILP32 data type
- In system V ABIs with ILP32 data model, bit shift for '1ul' can brings
- undefined behaviour when the calculation result is over 32 bit width.
- This commit fixes the bug.
- Reported-by: Rolf Eike Beer <eike@sf-mail.de>
- Reference: https://bugs.gentoo.org/681652
- Reference: https://github.com/alsa-project/alsa-utils/issues/23
- - axfer: mapper: fix parameter check for demuxer
- Each container should be configured to store one saple per frame in
- demuxer case. This commit fixes the bug.
- Fixes: 25c8e3bebb53 ('axfer: add support for a mapper for multiple target')
- - axfer: remove unused variable warnings
alsamixer
- - alsamixer: Remove exp10 usage
- exp10 is a GNU extension and not available everywhere (eg. uClibc-ng).
alsatplg (topology)
- - alsaucm, topology: LDADD cleanups and add support for libatopology
alsaucm
- - alsaucm: fix the implicit card open
- - alsaucm, topology: LDADD cleanups and add support for libatopology
- - alsaucm: do the implicit ucm open only when the command requires it
- - alsaucm: call snd_config_update_free_global() to make valgrind more happy
amixer
- - amixer: do not double LF for container type
aplay/arecord
- - aplay: fix memory leak when setup_chmap() fail
- setup_chmap() will return with error number if hw_map calloc fail or
- channels doesn't match with hw_params, but memory free was ignored when
- error occurs.
- Reviewed-by: Takashi Sakamoto o-takashi@sakamocchi.jp
alsa-plugins
Core
- - Release v1.2.1
PulseAudio -> ALSA plugin
- - pulse: Add DEVICE parameter
- Basically this patch adds the DEVICE parameter to pulse PCM and
- control plugins, so that users may pass the specific pulse device
- for multiple opens. Along with the addition of the DEVICE parameter
- in the config definition, the plugin code is slightly modified for
- allowing to receive the empty strings that are treated as the
- "default" mode (= NULL).
Detailed changelog between 0.0.0 and 1.2.1 releases
Changelog between 1.0.29 and 1.2.1 releases
alsa-ucm-conf
Configuration
- - sof-hda-dsp: add MixerId values, change order for BassSpeaker
- - do not set the speaker volume for the BassSpeaker
- - do not set ConflictingDevice for HeadphoneMic
- (one way should be enough in DigitalMic)
- - add ucm/README.md and ucm2/README.md
- - VEYRON-I2S: adapt to ucm2
- - skylake-rt286: adapt to ucm2
- - SDP4430: adapt to ucm2
- - PAZ00: adapt to ucm2
- - PandaBoardES: adapt to ucm2
- - PandaBoard: adapt to ucm2
- - HDAudio-Lenovo-DualCodecs: adapt to ucm2
- - HDAudio-Gigabyte-ALC1220DualCodecs: adapt to ucm2
- - GoogleNyan: adapt to ucm2
- - Dell-WD15-Dock: adapt to ucm2
- - DB820c: adapt to ucm2
- - DB410c: adapt to ucm2
- - DAISY-I2S: adapt to ucm2
- - broxton-rt298: adapt to ucm2
- - broadwell-rt286: adapt to ucm2
- - sof-hda-dsp: adapt to latest alsa-lib
- - move to ucm2
- - add 'Syntax 2' to the main configuration files
- - use condition for 'Headphone Jack' / 'Headphone Mic Jack' selection
- - remove cdev (not required)
- - use ${CardId} where appropriate
- - merge config for Lenovo Carbon X1 7th gen to main HiFi.conf
- - sof-hda-dsp: the JackHWMute definition should be in the Headphone device
- - sof-hda-dsp: fix the volume/switch values in HiFi
- - sof-hda-dsp: add ValueDefaults sections with correct CTL devices
- - sof-hda-dsp: do not touch the analog part for HDMI/DP
- - sof-hda-dsp: use more user friendly names for Dmic
- Also correct the names in ConflictingDevice sections
- (must be device name - not comment text).
- - sof-hda-dsp: Fix the Hdmi config for the Lenovo Carbon X1 (7th gen)
- - sof-hda-dsp: improve the Hdmi use case comment
- - sof-hda-dsp: fix the capture device names (use sofhdadsp)
- - SOF/HDA/SKL UCM: rename from sof-skl_hda_card to sof-hda-dsp
- Follow the kernel change and rename everything to more clear
- sof-hda-dsp.
- - sof-skl_hda: change to use common HDMI codec driver
- Modify UCM sequences to use user-space interface of the common
- HDMI codec driver. Use of hdac-hdmi driver is no longer supported
- by this UCM file.
- To use this UCM file, kernel must be compiled with
- SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
- - sof-skl_hda: move hdmi as separate use case
- Move hdmi definitions as separate use case and conf file. This will
- enable Pulseaudio to create separate profile for hdmi and make routing
- much more fluent than with single profile.
- - sof-skl_hda: add PlaybackVolume and CaptureVolume definitions
- PlaybackVolume and CaptureVolume are not defined currently and these are
- needed in the future for example with Pulseaudio to enable hardware
- volume control.
- - sof-skl_hda: add device definition to speaker disable sequence
- For example Pulseaudio is not able to run the disable sequence
- if the device is not defined. So add the definition.
- - sof-skl_hda: remove volume setting in enable/disable sequences
- If the volume setting is defined in enable sequence you will
- always get that exact volume when switching outputs in some
- user space software like Pulseaudio. Pulseaudio will itself
- keep track of the volume previously set.
- - skylake-rt298: cleanups, add .conf suffixes
- - broxton-rt298: cleanups, add .conf suffixes
- - kblrt5660: cleanups, add .conf suffixes
- - broadwell-rt286: cleanups, add .conf suffixes
- - DB410c: cleanups, add .conf suffixes
- - DB820c: cleanups, add .conf suffixes
- - SDP4430: cleanups, add .conf suffixes, upper/lower case
- - PandaBoardES: cleanups, add .conf suffixes, upper/lower case
- - PandaBoard: cleanups, add .conf suffixes, upper/lower case
- - add configuration for Lenovo ThinkPad Carbon X1 7th gen (Bass Speaker)
- - remove 'Bass Speaker' from the generic sof_skl_hda-card config
- - Add initial support for generic SOF Skylake driver (DMIC)
- Based on: https://github.com/RanderWang/intel-UCM/tree/hdmi/sof-skl_hda_card
- Cleanups, remove commented or empty configuration.
- - conf/ucm: cht-bsw-rt5672: Add board specific profile for Lenovo Thinkpad 8 tablet
- The Lenovo Thinkpad 8 tablet has stereo speakers and its internal DMIC
- on DMIC1, at a device specific profile for this.
- - conf/ucm: Add UCM profile for cht-bsw-rt5672 boards
- Add an UCM profile for Intel boards with a RT5672 codec.
- Re-use the existing platform enable and disable sequences for BYT/CHT SST
- support and add a codecs/rt5672 dir with codec specific enable / disable
- sequences for the various inputs and outputs.
- This is partly based on earlier work done here:
- https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672
- - ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
- Adding a new Conexant CX2072X codec profile and reusing the existing
- BYT/CHT platform snippets.
- Currently tested only on ASUS E200HA laptop.
- - ucm: bytcr/PlatformEnableSeq.conf update some comments
- Commit f91cc3c7d6b7 ("Update chtrt5645 ucm variants to use
- bytcr/PlatformEnableSeq.conf component") updated the
- following 2 comments:
- # codec0_out settings (used if SSP2 is connected to aif1)
- # modem_out settings (used if SSP0 is connected to aif2)
- Specifically it added the " to aif1" resp. " to aif2" part of the comments.
- This is not correct, AIF1 / AIF2 are something which is present on
- Realtek codecs only, and either one can be used indepedent of
- SSP0 or SSP2 being used (the comments in the chtrt5645 UCM profile
- before this change were wrong / outdated).
- Besides there not being any relationship between SSP0 or SSP2 being
- used, bytcr/PlatformEnableSeq.conf is also used with other codecs,
- e.g. the ESS8316 codec where this is not applicable at all.
- Therefor this commit removes the " to aif?" part of the comments again
- to avoid confusing people reading this in the future.
- - ucm: Add ucm files for DB820c board
- DB820c board is based of MSM8996 Qualcomm SoC, which has support for both
- Digital and Analog audio. Digital audio is over HDMI and analog is over
- WCD9335 codec via SLIMbus.
- Board itself has HDMI port, a 3.5mm audio Jack and an Audio expansion
- connector.
- This patch adds support for HDMI port and 3.5mm jack.
- - Revert "conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio"
- This reverts commit 914327e00b7626b1acd176d498f35f7b4e213dd3 .
- The USB driver defines identical profile as for WD15.
- - conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio
- USB-audio device on Dell WD19 docking station provides two individual
- output PCM streams, one for headphone Jack and another for speaker out
- Jack. A UCM profile gives the proper roles for these.
- - conf/ucm: bytcht-es8316: Add long-name UCM profiles
- After recent kernel work, the kernel now sets a long-name for bytcht-es8316
- boards which indicates if a single (mono) speaker or stereo speakers are
- used and if in1 or in2 is used for the internal mic (the headset mic will
- be on the other input).
- This commit adds UCM profiles for bytcht-es8316 boards using these new
- long-names, based on the generic bytcht-es8316 profile.
- - conf/ucm: Add UCM profile for bytcht-es8316 boards
- Add an UCM profile for Bay Trail and Cherry Trail boards with an
- ES8316 codec.
- Re-use the existing platform enable and disable sequences for BYT/CHT SST
- support and add a codecs/es8316 dir with codec specific enable / disable
- sequences for the various inputs and outputs.
- - Create device component for rt5645 Internal Analog Mic UCM
- Since the Internal Analog Microphone device configuration is
- identical for the rt5645 and rt5645 mono speaker UCMs, move
- the entire definition to a component.
- - Factor out rt5645 variants Headset+Digital Mic UCM shared {en,dis}able sequences
- - Factor out rt5645 variants Speaker+Headphones shared UCM enable sequences
- Move common enable sequences for rt5645 variants and rt5650
- UCM configurations into a shared component. The corresponding
- disable sequences are only two lines each and do not seem worth
- creating components for.
- - Create shared {En,Dis}ableSeq.conf components for rt5645 variants
- Factor out the common enable and disable sequences used
- in rt5645 variants, including the rt5650. Move the sequences
- into a new component directory codecs/rt5645/ along with
- a Makefile.
- Some lines like
- cset "name='Stereo1 ADC1 Mux' 1"
- and
- cset "name='I2S2 Func Switch' on"
- are not set set in the chtrt5650 UCM sequences and thus are not present
- in the new component, in order to maximize reuse.
- - Update chtrt5645 ucm variants to use bytcr/PlatformEnableSeq.conf component
- The Lenovo Ideapad Miix 320, Asus T100HA, and chtrt5645 mono variant
- UCM configurations have not been updated to make use of the shared
- bytcr/PlatfromEnableSeq.conf sequence. This commit deletes those
- command sequences and loads the shared component directly.
- - conf/ucm: bytcr-rt5651: Document mono speaker wiring
- During my recent work on the bytcht-es8316 UCM profile I realized that the
- bytcr-rt5651 devices with a single speaker use a differential setup just
- like the es8316 does. The tell-tale here is the speaker going quiet when
- playing the exact same sound on both channels when things are configured
- for stereo speakers.
- I've run some tests and the rt5651 does have a special mono balanced out
- mode for its line-out but using this results in the same sound (and the
- same loudness / volume of the sound) as our current solution, so adding
- support for this to the kernel buys us nothing.
- This commit makes no changes, it just documents my findings in a big
- comment for future reference.
- - conf/ucm: bytcr-rt5651: Add bytcr-rt5651-stereo-spk-dmic-mic config
- Add a config for boards which use a digital mic as internal mic,
- combined with having the headset mic on in2.
- An example of such a board is the Point of View TAB-P1006W-232 (v1.0) tablet.
- - conf/ucm: bytcr-rt5651: Add digital mic support
- Add a new ucm/codecs/rt5651/DigitalMic.conf snippet for digital mic support
- and include this in the default non board-specific bytcr-rt5651.conf.
- - conf/ucm: bytcr-rt5651: Add support for a headset-mic on IN2
- The first design with the headset-mic on IN2 rather then the
- default / reference-design IN3 has shown up.
- Add a new ucm/codecs/rt5651/IN2-HeadsetMic.conf snippet to deal with this
- and include this in the default non board-specific bytcr-rt5651.conf.
- - conf/ucm: bytcr-rt5651: Enable Stereo? ADC MIXL ADC? switches when enabling inputs
- Explicitly enable the right 'Stereo? ADC MIXL ADC?' when selecting an input,
- rather then just enabling them all in ucm/codecs/rt5651/EnableSeq.conf .
- This is a preparation patch for adding digital mic support.
- - conf/ucm: kblrt5660: Add ucm setting for Dell Edge IoT platform
- The new generation of Dell Edge IoT platform is based on Intel
- Kabylake platform, and the audio codec is ALC3277 which is 100%
- compatible with RT5660 in I2S mode.
- The audio design on this IoT platform is as below:
- - Intel kabylake platform
- - connect the codec ALC3277 via SSP0
- - line-out and line-in with Micbias jacks
- - line-out mute control and jack detection of line-out and line-in
- - two HDMI ports with audio capability
- - conf/ucm: chtrt5650: Add UCM config for chtrt5650
- Add a UCM configuration for the rt5650 codec. Tested on
- a Samsung Chromebook 3. Adapted with minor modifications
- from GitHub user evan-a-a's gist:
- https://gist.github.com/evan-a-a/86b2a698708074530e2d0ee7c6498767
- - ucm: Set default include path
- Many UCM profiles include the UCM profile components under ucm/*
- subdirectories and thusly put <searchdir:ucm> at each place. This is
- rather cumbersome.
- This patch makes the UCM parser to set the default include path, so
- that each profile no longer needs to set searchdir. All the
- <searchdir:ucm> lines currently found in the profiles are removed
- gracefully, too.
- For the needed implementation, a new helper,
- _snd_config_load_with_include() is introduced. It's not exported,
- only for the use inside alsa-lib.
- - conf: Move UCM profile snippets into components subdirectory
- We have placed UCM profile snippets to be included by the main config
- files also in the same directory, src/conf/ucm, it confuses alsaucm
- program that scans over all subdirectories. It thinks such a file is
- also the main config file, and spews errors like:
- % alsaucm
- ALSA lib utils.c:67:(uc_mgr_config_load) could not open configuration file /usr/share/alsa/ucm/bytcr/bytcr.conf
- ALSA lib parser.c:1427:(load_master_config) error: could not parse configuration for card bytcr
- alsaucm: unable to obtain card list: No such file or directory
- Actually we already defined the subdirectory for such components, and
- they are skipped at parsing the main configs. So we just need to move
- the files there -- this is what's done here.
- One more thing done here is to add a new component subdirectory,
- platforms, for definitions bytcr/* that don't match with neither the
- existing ones (codecs nor dsps).
- Suggested-by: Hans de Goede <hdegoede@redhat.com>
- Reviewed-by: Hans de Goede <hdegoede@redhat.com>
- Tested-by: Hans de Goede <hdegoede@redhat.com>
- - conf/ucm/Dell-WD15-Dock: Fix incorrect device names
- The device name string for Dell WD15 (and its variants) dock is set as
- "WD15Dock", while the actual device name to be used is "Dock".
- Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1112292
- Fixes: 8ebb40c96970 ("conf/ucm: Add a UCM profile for Dell WD15 Dock USB-audio")
- - conf/ucm: bytcr-rt5640: Improve human readable input/output names
- The Comment field is displayed tot the end user in various UIs as such
- names like MonoSpeaker and DigitalMics without any spaces are no good.
- Also the names themselves as well as how they get displayed in the
- typical UI (in separate input / output tabs) makes the adding of
- playback and capture to the comment superfluous and this looks weird
- in the UI, so drop it.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Add bytcr-rt5651-mono-spk-in2-mic-hp-swapped config
- Add a longname profile for devices with a mono speaker, the Internal Mic
- hooked up to IN2 and the left and right channels of their headphones
- output swapped.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Add long-name UCM profiles
- After recent kernel work, the kernel now sets a long-name for bytcr-rt5651
- boards which indicates if a single (mono) speaker or stereo speakers are
- used and if in1, in2, or in1 and 2 are used for the internal mic(s) (the
- headset mic sofar is always on in3).
- This commit adds UCM profiles for bytcr-rt5651 boards using these new
- long-names, based on the generic bytcr-rt5651 profile.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Add mono speaker output profile
- Many rt5651 devices only have a single speaker and even though there is
- some external mixing done on the PCB, the quality of that mixing is quite
- poor and various sounds come out garbled when relying on the on PCB mixing.
- Using the codecs builtin mixer to mix left + right to the left output works
- much better. This commits adds a new MonoSpeaker.conf output profile which
- allows this.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Split into 1 .conf file per input / output
- Split the bytcr-rt5651 config into 1 .conf file per input / output as
- has already been done for the bytcr-rt5640 and the chtnau8824 profiles.
- This allows easy creation of long-name profiles with the specific input /
- output combinations found on a board without needing to copy and paste
- things.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Add support for mic input on various pins
- Note this commit replaces the pre-existing "Handset Microphone" and
- "Main Microphone" options, these come from the first commit of the
- bytcr-rt5651 UCM profile and were based on wrong assumptions about the
- input mappings. None of the existing devices has the Hand/Headset mic
- on IN1 as these options assumed.
- The rt5651 is used in various configurations with the Internal Mic(s)
- hooked up to IN1, IN2, or to IN1 and IN2 and the Headset Mic hooked up
- to IN3.
- Add support for all these to the generic bytcr-rt5651 profile and name
- them accotding to their input + functions.
- A follow up commit will add specialized longname configs which
- will only expose the inputs actually used on the board with that
- longname.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Fix ADC and Mic capture volumes
- Fix ADC and Mic capture volumes, so that the microphone inputs actually
- work.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Use generic SSP enable + disable sequence, support SSP0
- Use the generic SSP enable sequence from bytcr/PlatformEnableSeq.conf,
- for boards using SSP2 this is identical the code it replaces and this
- adds support for boards using SSP0.
- This fixes sound not working on Bay Trail CR tablets with a rt5651 codec.
- This commit also calls the generic disable sequence on shutdown
- (this is new).
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Change Speaker/Headphone en/disable sequences to fix switching
- pulseaudio will run the DisableSequence of the current playback device
- before running the EnableSequence of the new playback device.
- This causes the Platform Clock and BIAS to temporarily get turned off which
- on the rt5651 breaks audio-streams which are playing when switching.
- This commit moves the disabling to the EnableSequence of the other device
- fixing this.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Start with all outputs and inputs disabled
- Start with all switches disabled, so that e.g. the
- LOUT L/R Playback Switches are not left enabled when starting with
- headphones plugged in.
- This fixes the platform clock being kept on by these in some cases.
- While at also move the IN? Boost and IF1 ASRC Switch lines around
- a bit to match the order from https://github.com/plbossart/UCM so
- the profiles can be more easily compared.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Configure all volumes at 0dB
- The volumes are taken from this commit:
- https://github.com/plbossart/UCM/commit/753e2430cd0e6cafbf10c6b29b689dbd32ac5250
- That commit also adds line-in support, so it has not been
- taken in its entirety.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5651: Do not use both DAC1 and HPVOL inputs for HP
- The headphones can either be driven directly from DAC1, or through
- the HP volume mixer chain to allow volume control, both can be enabled
- at the same time, but this should not be done.
- Mix only DAC1 to the headphones and not the HP volume path, there
- are 2 reasons to choice the DAC1 path;
- 1) It is the power-on-reset default
- 2) We don't expose the volume control to e.g. pulseaudio anyways so it
- is not useful
- While at it also move the "HPO MIX DAC1" and "HPO MIX HPVOL" entries up a
- bit so that they are no longer inbetween the "HPO L Playback Switch" and
- "HPO R Playback Switch" entries.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: bytcr-rt5645: Use the generic bytcr/PlatformEnableSeq.conf
- Use the generic Intel SSP bytcr/PlatformEnableSeq.conf file, it is
- identical to all the cset statements this commit removes.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf/ucm: VEYRON-I2S: Add internal speakers and mic, other fixes
- Other fixes include output/input names (comments) for UIs (pavucontrol)
- to display, and Playback/CapturePCM entries so pulseaudio initializes
- correctly on this hardware.
- - conf/ucm: chtnau8824: Add Cube iWork8 Air and Pipo W2S specific profiles
- The Cube iWork8 Air and Pipo W2S tablets both only have a single speaker.
- Add long-name profiles for them which are identical to the default
- chtnau8824 profile, except that they include the nau8824/MonoSpeaker.conf
- snippet instead of the nau8824/Speaker.conf one.
- - conf/ucm: chtnau8824: Add UCM profile for chtnau8824 boards
- Add UCM profile for chtnau8824 boards based on:
- https://github.com/plbossart/UCM/blob/master/chtnau8824
- Split into multiple files in the same way as this was done for the
- bytcr-rt5640 support, re-using the existing ucm/PlatformEnableSeq.conf
- and ucm/PlatformDisableSeq.conf files for the SST mixer settings.
- - conf/ucm: bytcr-rt5640: Add default DisableSequence
- Add a disable sequence powering off the SST mixer elements, loosely
- based on the default DisableSequence from:
- https://github.com/plbossart/UCM/blob/master/chtnau8824/HiFi.conf
- - conf/ucm: bytcr-rt5640: Add long-name UCM profiles
- With a recently merged kernel commit, the kernel now sets a long-name for
- bytcr-rt5640 boards which indicates if a single (mono) speaker or stereo
- speakers are used and wether dmic1, in1 or in3 is used for the internal
- mic (the headset mic sofar is always in2).
- This commit adds UCM profiles for bytcr-rt5640 boards using these new
- long-names, based on the generic bytcr-rt5640 profile.
- The added profiles have the unnecessary input / output options from the
- generic profile removed leaving only 2 input and 2 output options, which
- are automatically switched between by e.g. pulse based on jack-detect.
- - conf/ucm: bytcr-rt5640: Add generic bytcr-rt5640 UCM profile
- This commit adds the generic UCM profile for bytcr-rt5640 boards from:
- https://github.com/plbossart/UCM, plus the fixes from this pull-req:
- https://github.com/plbossart/UCM/pull/31
- The profile has been split up into separate per input / output files to
- allow for creation of long-name profiles with the specific input / output
- combinations found on a board without needing to copy and paste things.
- Note this profile exports all inputs and both stereo/mono speaker setups
- even though a typical device will not use all. Ideally a long-name based
- device specific profile made up of the various parts should be used
- instead.
- - conf/ucm: Add a UCM profile for Dell WD15 Dock USB-audio
- USB-audio device on Dell WD15 docking station provides two individual
- PCM streams, one for headphone and another for line out. A UCM
- profile gives the proper roles for these.
- - conf/ucm: chtrt5645: At config for the Lenovo Ideapad Miix 320
- The Lenovo Ideapad Miix 320 uses a digital mic connected to the DMIC2 input
- (unlike the Asus T100HA which has it connected to the DMIC1 input), add a
- long-name config specific for the Miix 320, which is a copy of the standard
- chtrt5645 config with the internal analog mic section replaced with one
- for a digital mic connected to the DMIC2 input.
- - conf/ucm: chtrt5645: At config for the Asus T100HA
- The Asus T100HA uses a digital mic rather then an analog one, add
- long-name config specific for the T100HA, which is a copy of the standard
- chtrt5645 config with the internal analog mic section replaced with one
- for the digital mic found on the Asus T100HA.
- - conf/ucm: chtrt5645: Fix recording from internal analog microphone
- The internal analog mic switch is called 'Int Analog Mic Switch'
- (not 'Int Mic Switch') and is connected to BST2 not BST1.
- Also change the analog mic volume levels so that we get better
- audio / less noise.
- - conf/ucm: chtrt5645: Microphone recording fixes
- Apply microphone recording changes from:
- https://github.com/plbossart/UCM.git
- [hdegoede@redhat.com: Drop non generic DMIC changes]
- - conf/ucm: chtrt5645: Cleanup and playback fixes
- Apply cleanup and playback fixes changes from:
- https://github.com/plbossart/UCM.git
- [hdegoede@redhat.com: Modify commit msg and paths for merging into alsa-lib]
- - conf/ucm: increase the input volume for LineIn
- Otherwise, the boost value is 0, and the sound captured from that
- LineIn jack is too weak for users.
- - conf/ucm: Add chtrt5645-mono-speaker-analog-mic configuration
- Add a configuration for Cherry Trail boards which use a rt5645 codec
- connected to a mono speaker and with an analog mic on IN2N + IN2P.
- The chtrt5645-mono-speaker-analog-mic/HiFi.conf for this is based on the
- latest version from https://github.com/plbossart/UCM/tree/master/chtrt5645
- with all the unused input options removed and some changes made to make
- the analog mic work.
- This commit also adds 2 ucm dirs with the longname of 2 boards known to use
- this setup, which simply contain a symlink to the generic
- chtrt5645-mono-speaker-analog-mic entry.
- - conf/ucm: Add Gigabyte mobo UCM profile with dual HD-audio codecs
- Like the previous Lenovo laptops, some Gigabyte mobos have dual
- HD-audio codecs and need to switch dynamically via UCM profile.
- Reuse the same profile as Lenovo dual codecs, so far.
- - conf/ucm: Add dual HD-audio codecs config for Lenovo
- Some recent Lenovo laptops have dual codecs and we need to switch them
- accordingly. The kernel side already contains a fix and gives the
- unique longname string for identifying the board, and here we hook up
- the corresponding UCM profile.
- The profile was corrected and tested by Hui Wang on Lenovo p520.
- Tested-by: Kailang <kailang@realtek.com>
- Tested-by: Hui Wang <hui.wang@canonical.com>
- - conf/ucm: rt5651: Mute speakers on boot
- The UCM configuration is enabling the speakers in the SectionDefaults.
- This is a problem when booting with an headset already connected since
- the audio output is routed at the same time both on speakers and
- heaphones until the jack is disconnected and reconnected again.
- Fix this disabling all the outputs in the default mixer configuration.
- - conf/ucm: rt5651: Add missing cdev
- - conf/ucm: rt5651: Fix HiFi file name
- The conf HiFi file name is HiFi.conf, fix the name in the main
- configuration file.
- - conf/ucm: rt5651: Add UCM config for bytcr-rt5651
- Add a UCM configuration for the rt5651 codec on Intel's Cherry-Trail
- platform. Adapted from [0].
- [0] https://github.com/plbossart/UCM/tree/master/bytcr-rt5651
- - conf/ucm: DB410c-HiFi: add CIC selection
- This patch adds CIC selection controls which have been added recently to
- the kernel to select mic source.
- Without this patch user has to manually select the control to record
- from DMIC or AMIC.
- - conf/ucm: broxton: add broxton-rt298 conf files
- This adds the UCM conf files for broxton enabling with rt298 codec on
- I2S audio, HDMI and DMIC ports.
- - conf/ucm: skylake: add skylake-rt286 conf files
- This add the UCM conf files for skylake enabling I2S audio, HDMI and DMIC
- ports.
- - 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]
- - conf/ucm: chtrt5645: Add UCM config for chtrt5645
- Add a UCM configuration for the rt5645 codec on Intel's Cherry-Trail
- platform. Tested on the Microsoft Surface 3.
- - conf/ucm: ROCKCHIP-I2S: rename to VEYRON-I2S
- Commit a192f52fc63a introduced an ucm profile for Rockchip Veyron-
- Chromebooks by taking the ucm profile from the ChromeOS userspace.
- But similarly to DAISY-I2S, PAZ00 and most other profiles, the audio
- setup is pretty specific to a board type, so hogging the Rockchip name
- will make it harder for future Rockchip based boards to fit in nicely.
- And while Veyron also is a family of boards, all of them share the
- same audio setup. The ucm profile was not released with any official
- alsa release and the audio setup also isn't in the mainline kernel yet,
- so such a rename should be easily possible.
- Fixes: a192f52fc63a ("conf/ucm: ROCKCHIP-I2S: add Rockchip I2S UCM config.")
- - conf/ucm: ROCKCHIP-I2S: add Rockchip I2S UCM config.
- Taken from the ChromeOS sources, this configuration was tested on Veyron
- Jerry based Chromebook from Google.
- [Added missing Makefile changes by tiwai]
- - conf/ucm: broadwell-rt286: change to set capture volume and capture device
- Set 'Mic Capture Volume' in capture device EnableSequence, to fix
- capture no volume by default issue.
- Also add JackHWMute Value item to mute onboard dmic while headset
- mic is plugged in.
- Tested-by: Mark Brown <broonie@kernel.org>
- - conf/ucm: broadwell-rt286: change to use the correct jack kcontrol name
- The headset jack has two kctls: "Headphone Jack" and "Mic Jack",
- we need switch speaker output according to the former JackControl.
- Here correct it.
- - conf/ucm: broadwell-rt286: add ucm config
- The configure should apply to all Broadwell-rt286 boards from Intel,
- like Wilson Beach SDS Ultrabook.
- - conf/ucm: GoogleNyan: Add configuration
- Taken from the ChromeOS sources, this configuration should apply to all
- Nyan boards from Google, so far HP Chromebook 14 (nyan-blaze) and Acer
- Chromebook 13 (nyan-big).
- - conf/ucm: PAZ00: add Toshiba AC100/Dynabook AZ new config
- Recent mainline kernels threat Toshiba AC100 audio hardware as hw:PAZ00
- vs old hw:tegraalc5632.
- This patch adds config files for new hw name and include them to
- makefiles.
- - conf/ucm: DAISY-I2S: Set default filter mode for HiFi.
- Default to music mode filter for the HiFi use case on the Samsung ARM
- Chromebook. This mode is better at 44.1k and 48k audio than the
- "Voice" setting.
- - conf/ucm: tegraalc5632: add UCM config from Ubuntu
- - conf/ucm: SDP4430: add UCM config from Ubuntu
- - conf/ucm: PandaBoardES: add UCM config from Ubuntu
- - conf/ucm: PandaBoard: add UCM config from Ubuntu
- - conf/ucm: DAISY-I2S: add Samsung ARM Chromebook UCM config from ChromeOS
alsa-topology-conf
Configuration files
- - ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
- The values of bclk and fsync are inverted WRT the codec. But the existing
- solution already works for Broadwell, see the alsa-lib config:
- `alsa-lib/src/conf/topology/broadwell/broadwell.conf`
- This commit provides the backwards-compatible solution to fix this misuse.
- This commit goes in pair with the corresponding patch for linux.
- Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- Tested-by: Pan Xiuli <xiuli.pan@linux.intel.com>
- Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- - conf: topology: Fix index mismatch for skl and bxt
- The topology index in the conf is set to 1, where the driver expects index
- set to 0. Fix the inconsistency.
- - 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: bxtrt298: Add topology conf file for bxt
- Add the conf file for bxt platform as well to define module
- private data.
- - 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.
- - topology: Update PCM configurations in Broadwell text conf file
- To make this conf file a better example, update the name & ID of PCMs
- (front-end DAI link) and their cpu DAI (front-end DAI), same as those
- defined by Broadwell upstream driver.
- - conf: topology: Add Skylake i2s conf
- The Skylake topology configuration for simple topology graph is
- provided. This exposes the PCM capabilities of the DSP.
- - conf: topology: Add topology file for broadwell audio DSP
Detailed changelog between 1.0.29 and 1.2.1 releases
Changelog between 1.0.29 and 1.2.1 releases
alsa-firmware
Core
- - Release v1.2.1
- - Change FSF address (Franklin Street)
AICA (Dreamcast) Firmware
- - Fix up aica firmware licensing
- The 3-clause BSD that this firmware uses requires more than just
- keeping the copyright notice, like license.txt currently says.
- Rather, it has has that "redistributions in binary form (which is
- what the ALSA Project is doing, since only the firmware binary is
- provided) must reproduce the above copyright notice, this list of
- conditions and the following disclaimer in the documentation and/or
- other materials provided with the distribution." This means that more
- than just the copyright notice needs to be included. This change is
- intended to address this by adding the parts that were omitted
- originally.
Cirrus Logic CS46xx Firmware
- - Change FSF address (Franklin Street)
Digigram Echo Audio Firmware
- - Change FSF address (Franklin Street)
Sound Blaster HDA CA0132 Firmware
- - Add new firmware for Creative CA0132 HD-Audio Codec
- Support has been added for new cards through the ca0132 driver. These
- new firmware files are for these cards.
- [ NOTE: the files taken from the original PR to linux-firmware tree.
- These new files basically only addition to the already existing
- CA0132 firmware files, and follow the same license.
- The PR to linux-firmware tree was pending just because it was
- submitted by a third person, which is a quite unusual case.
- -- tiwai ]