Commit graph

3452 commits

Author SHA1 Message Date
Mengdong Lin
2b9b3f0134 ucm: Assure the user input card name not to exceed max size of card long name
Users can load a card's UCM configuration file by giving the card short
name or long name, which should not exceed the maximum card long name
defined by the kernel. The kernel uses an 80-character buffer to store
the card long name.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-18 11:55:13 +01:00
Takashi Iwai
24e63b7527 pcm: direct: Fix deadlock in poll_descriptors
The recent change in PCM direct plugins to check XRUN in
poll_descriptors callback caused a regression; as consequence, the
whole playback hangs up.

The culprit is a mutex dead lock by the call in snd_pcm_state() inside
the new snd_pcm_direct_poll_descriptors().  The poll_descriptors code
path is protected with pcm mutex, thus an unlocked version
(__snd_pcm_state()) has to be used inside the callback instead.

Fixes: 789ee39727 ("pcm: direct: check state before enter poll on timer")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-16 16:21:52 +01:00
Vinod Koul
360c976aaa 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.

Signed-off-by: Nishit Sharma <nishitx.sharma@intel.com>
Signed-off-by: G Kranthi <gudishax.kranthikumar@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-12 11:21:33 +01:00
Andreas Pape
79a358ae26 pcm: direct: don't return bogus buffer levels in xrun state
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Mounesh Sutar <mounesh_sutar@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-10 09:24:39 +01:00
Andreas Pape
789ee39727 pcm: direct: check state before enter poll on timer
To avoid the chances of timeout, we need to check the enter poll
in state xrun.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Mounesh Sutar <mounesh_sutar@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-10 09:24:16 +01:00
Andreas Pape
1a9bd0f044 pcm: direct: Fix for sync issue on xrun recover
If using very short periods, DSHARE/DSNOOP/DMIX may report underruns while in
status 'prepared'. This prohibits correct recovery. Now slave xrun conditions
for DSHARE/DSNOOP/DMIX are being handled properly.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Joshua Frkuska <joshua_frkuska@mentor.com>
Signed-off-by: Mounesh Sutar <mounesh_sutar@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-10 09:23:45 +01:00
Mounesh Sutar
3f0dc404f1 pcm: direct: returning semop error code for semaphore up/down failures
Signed-off-by: Mounesh Sutar <sutar.mounesh@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-10 09:20:11 +01:00
Adam Goode
1eddf1f918 seq: improve documentation about new get pid/card functions
Document the technique for determining if the running kernel supports
the new snd_seq_client_info_get_pid and snd_seq_client_info_get_card
functions. Also add a little information about how to use these
functions and add some cross references.

Signed-off-by: Adam Goode <agoode@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-03 17:49:07 +01:00
Takashi Sakamoto
6f7eaf92e7 topology: fix unused-const-variable warning
Last year, unused static const variable was added, then compiler generates
a below warning.

dapm.c:43:30: warning: ‘widget_control_map’ defined but not used [-Wunused-const-variable=]
 static const struct map_elem widget_control_map[] = {
                              ^~~~~~~~~~~~~~~~~~

This commit removes it.

Fixes: 01a0e1a1c2 ("topology: Add DAPM object parser")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 15:05:29 +01:00
Andreas Pape
ff1f669df4 rate: dynamic update avail_min on slave
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 15:00:04 +01:00
Andreas Pape
88e4ae27bb plugin: dynamically update avail_min on slave
mmapped capture access on some plugins can fetch data from
slave in the 'background'. A subsequent snd_pcm_wait waits
for too long time to reach avail_min threshold again.
Waiting too long leads to xruns on other devices waiting for
the capture data.
As a fix the avail_min on slave is recalculated dynamically.

V2: updated patch to fix within 80 characters per line

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 14:59:46 +01:00
mahendran.k
7570e5d775 pcm: rate: fix the hw_ptr update until the boundary available
For long time test case, the slave_hw_ptr will exceed the boundary
and wraparound the slave_hw_ptr. This slave boundary wraparound will
cause the rate->hw_ptr to wraparound irrespective of the
rate->boundary availability and due to that the available size goes
wrong.

Hence, to get the correct available size,
- Its necessary to increment the rate->hw_ptr upto the rate->boundary
and then wraparound the rate->hw_ptr.
- While handling fraction part of slave period, rounded value will be
introduced by input_frames(). To eliminate rounding issue on
rate->hw_ptr, subtract last rounded value from rate->hw_ptr and add
new rounded value of present slave_hw_ptr fraction part to
rate->hw_ptr.

Signed-off-by: mahendran.k <mahendran.kuppusamy@in.bosch.com>
Signed-off-by: Mounesh Sutar <mounesh_sutar@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 14:50:35 +01:00
Alexander Jahn
8eeee1ab7d pcm: dshare: enable silence
This issue depends on system load - if the process using dshare is
scheduled fast enough, then there is no noise. A delay of e.g >~2ms
produces hearable noise.

Reproduction with instrumented aplay(sleep every 100th period for a
given time):
During the sleep time of 2000000us (2s) the hardware plays old samples
in a loop before xrun is detected and recovered after the sleep.
This is resolved by placing it in silence, in case of dshare plugin.

Signed-off-by: Alexander Jahn <ajahn@de.adit-jv.com>
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 14:50:34 +01:00
Joshua Frkuska
0a61c79681 pcm: direct: allow users to configure different period sizes
This patch allows the effective period size to be a multiple of the
slave-pcm period size.
Allowing only exact multiple of original period size is achieved by
borrowing code from the kernel hwrules implementation.

This patch is intended to save cpu workload when for example, the
slave operates with very small periods but a user does not need that
small periods.

This feature is enabled by default and can be disabled by adding
config option 'var_periodsize 0'.

Signed-off-by: Alexander Jahn <ajahn@de.adit-jv.com>
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-02 14:50:27 +01:00
Gustavo Zacarias
9ed4075f05 ucm: parser needs limits.h
It's using PATH_MAX which is defined there, otherwise the build fails on
musl libc.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-28 17:01:21 +01:00
Mengdong Lin
6ad2a9763d ucm: Add ATTRIBUTE_UNUSED for unused parameters of execute_component_seq()
To fix the following warnings:

main.c: In function ‘execute_component_seq’:
main.c:489:24: warning: unused parameter ‘value_list1’ [-Wunused-parameter]
      struct list_head *value_list1,
                        ^
main.c:490:24: warning: unused parameter ‘value_list2’ [-Wunused-parameter]
      struct list_head *value_list2,
                        ^
main.c:491:24: warning: unused parameter ‘value_list3’ [-Wunused-parameter]
      struct list_head *value_list3,
                        ^

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-28 16:15:01 +01:00
Jaroslav Kysela
7e86c8c56f Release v1.1.3
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2016-12-20 15:43:20 +01:00
Jaroslav Kysela
481badb4e9 conf: don't install smixer.conf when python is not available
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2016-12-20 15:41:27 +01:00
Rene Rebe
2544b6cd55 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.

Signed-off-by: René Rebe <rene@exactcode.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-15 22:47:02 +01:00
Andreas Pape
ada1eb4139 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.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-14 15:43:43 +01:00
Alan Young
e1e211208a 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]

Signed-off-by: Alan Young <consult.awy@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-14 15:28:24 +01:00
Takashi Sakamoto
5a2bddfc79 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")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-13 00:20:53 +01:00
Takashi Sakamoto
d008e1ac20 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.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-12 22:36:29 +01:00
Mengdong Lin
60b68cb47e 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-02 20:29:34 +01:00
Mengdong Lin
14c930d0c9 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-02 20:29:22 +01:00
Mengdong Lin
6bf8447b91 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-12-02 20:29:09 +01:00
Takashi Iwai
38a2d2eda8 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.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-29 16:22:21 +01:00
Takashi Iwai
ea74ebbe4d 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.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-29 16:22:20 +01:00
Takashi Iwai
3e4887c112 Revert "pcm: file: Add htimestamp operation in plugin file"
This reverts commit f8d07a7354.

The htimestamp field was already intiailized.  It was just overlooked,
sorry.

Suggested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-29 16:20:08 +01:00
Andreas Pape
f8d07a7354 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.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Joshua Frkuska <joshua_frkuska@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-28 20:18:19 +01:00
Anant Agrawal
876563c824 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.

Signed-off-by: Anant Agrawal <Anant_Agrawal@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-28 20:17:03 +01:00
Joshua Frkuska
2dd78251ff 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.

Signed-off-by: Joshua Frkuska <joshua_frkuska@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-28 20:13:36 +01:00
Mengdong Lin
2ef7a53c31 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-25 10:23:53 +01:00
Mengdong Lin
f53ff68562 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>
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-24 14:20:22 +01:00
Mengdong Lin
f9633ed852 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-24 14:20:03 +01:00
Mengdong Lin
fa7a52e636 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:30 +01:00
Mengdong Lin
75626fec50 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:29 +01:00
Guneshwor Singh
6a93f24dac 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.

Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:29 +01:00
Guneshwor Singh
9117715371 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.

Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:27 +01:00
Mengdong Lin
0b6bd6c19a 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

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:26 +01:00
Guneshwor Singh
50c77cdc7f 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.

Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:25 +01:00
Mengdong Lin
527c8a1b19 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'.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-22 07:50:25 +01:00
Alan Young
faf53c197c 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.

Signed-off-by: Alan Young <consult.awy@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-17 16:19:32 +01:00
Takashi Iwai
a668a94238 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.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-14 11:46:05 +01:00
Mengdong Lin
4597577750 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:22 +01:00
Mengdong Lin
a182ab29c6 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:22 +01:00
Mengdong Lin
c33b3a0ea2 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:21 +01:00
Mengdong Lin
2894c31816 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:21 +01:00
Mengdong Lin
f7bf8b0cc8 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.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:20 +01:00
Mengdong Lin
6b4d775b97 topology: Parse HW configurations of physical DAI links defined by C API
Add HW configurations to C API template of physical link configuration.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-08 16:33:19 +01:00