summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* conf: don't install smixer.conf when python is not availableJaroslav Kysela2016-12-201-0/+2
| | | | Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* pcm: file: update linked hw_ptr and appl_ptrAndreas Pape2016-12-141-0/+8
| | | | | | | | | | | | | | | | | | 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>
* pcm_rate: Do not discard slave reported delay in status result.Alan Young2016-12-141-6/+44
| | | | | | | | | | | | | | | 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>
* topology: fix unused-variable warnings introduced to build_link()Takashi Sakamoto2016-12-131-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* pcm: fix wrong document references to PCM APIs which perform direct memory ↵Takashi Sakamoto2016-12-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ucm: Execute sequence of component devicesMengdong Lin2016-12-022-1/+85
| | | | | | | | | | | | | | | | | | | | | 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>
* ucm: Parse sequence of component devicesMengdong Lin2016-12-023-1/+118
| | | | | | | | | | | | | | | | | | 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>
* ucm: Skip component directories when scanning sound card configuration filesMengdong Lin2016-12-021-1/+46
| | | | | | | | | | | | | | | | | | | | | 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>
* pcm: dmix: Do not discard slave reported delay in status resultTakashi Iwai2016-11-291-17/+28
| | | | | | | 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>
* pcm: Add the PCM state checks to pluginsTakashi Iwai2016-11-293-0/+50
| | | | | | | | | | | | | | | | | | | | | 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>
* Revert "pcm: file: Add htimestamp operation in plugin file"Takashi Iwai2016-11-291-1/+0
| | | | | | | | | | This reverts commit f8d07a7354a3fee1e30073aa7ac2efb89ef4e782. 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>
* pcm: file: Add htimestamp operation in plugin fileAndreas Pape2016-11-281-0/+1
| | | | | | | | | | 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>
* pcm: dshare: Fix endless playback of bufferAnant Agrawal2016-11-281-0/+1
| | | | | | | | | 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>
* pcm: direct: Protect from freeing semaphore when already in useJoshua Frkuska2016-11-283-9/+13
| | | | | | | | | | | | | | 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>
* topology: Update physical link configurations in Broadwell text conf fileMengdong Lin2016-11-251-0/+19
| | | | | | | | | 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>
* topology: Store number of strings of a text sectionMengdong Lin2016-11-244-6/+14
| | | | | | | | | | | | | 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>
* topology: Merge private data before embedded controls of a widgetMengdong Lin2016-11-241-7/+15
| | | | | | | | | | 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>
* topology: Revise document and comments for ABI v5Mengdong Lin2016-11-221-1/+0
| | | | | | | | | | | | | 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>
* topology: Export physical DAIs to the binary for kernelGuneshwor Singh2016-11-224-0/+71
| | | | | | | | | | 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>
* topology: Support configuring physical DAIs by C APIGuneshwor Singh2016-11-223-0/+58
| | | | | | | | | | 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>
* topology: Parse physical DAIs in text conf fileMengdong Lin2016-11-225-0/+135
| | | | | | | | 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>
* pcm_dshare: Do not discard slave reported delay in status result.Alan Young2016-11-171-17/+28
| | | | | | | | | | | | | 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>
* topology: Parse name and stream name of physical DAI linksMengdong Lin2016-11-081-0/+19
| | | | | | | | | | | | | 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>
* topology: Parse and build private data of physical linksMengdong Lin2016-11-081-1/+26
| | | | | | | | 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>
* topology: Parse link flags of physical DAI linksMengdong Lin2016-11-081-0/+33
| | | | | | | | | 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>
* topology: Parse HW configurations of physical DAI links in text conf fileMengdong Lin2016-11-084-0/+214
| | | | | | | | | 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>
* topology: Parse HW configurations of physical DAI links defined by C APIMengdong Lin2016-11-083-6/+52
| | | | | | | 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>
* topology: Define new type and section name to configure physical linksMengdong Lin2016-11-083-10/+10
| | | | | | | | | | | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Rename varaibles for add physical links by C APIMengdong Lin2016-11-081-10/+14
| | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Define a function to build a single physical DAI linkMengdong Lin2016-11-083-8/+25
| | | | | | | | | | | | 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). Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Merge an element's be & cc pointer to one link pointerMengdong Lin2016-11-082-14/+7
| | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Use snd_config_get_bool to simplify boolean flag parsingMengdong Lin2016-11-081-4/+5
| | | | | | | | The link flags in the text conf file are boolean, so this patch uses snd_config_get_bool() to simplify the code. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: tplg_elem_lookup() checks parameter before searchingMengdong Lin2016-11-051-0/+3
| | | | | | | Check the parameters at first in case of misuse. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Parse and build private data for PCMMengdong Lin2016-11-051-2/+50
| | | | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Define a function to build a single PCM elementMengdong Lin2016-11-053-5/+17
| | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Parse flags for PCMMengdong Lin2016-11-051-0/+49
| | | | | | | | Users can define flags by both text conf file and C API. Add flags and flag_mask to C API template of PCM object. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Parse sig_bits of stream capsMengdong Lin2016-11-051-0/+1
| | | | | | | Add sig_bits to stream caps template of C API and parse it. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* conf: Search included files under user specified configuration directoriesMengdong Lin2016-10-251-1/+158
| | | | | | | | | | | | | | | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* topology: Fix missing stream name of widgets in text conf fileMengdong Lin2016-10-251-0/+10
| | | | | | | | | | | 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. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* pcm_plug: Clear plugins on all error conditionsMichael Forney2016-10-201-1/+3
| | | | | | | | | 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. Signed-off-by: Michael Forney <mforney@mforney.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* conf/ucm: skylake: add skylake-rt286 conf filesVinod Koul2016-10-106-1/+234
| | | | | | | | | | | This add the UCM conf files for skylake enabling I2S audio, HDMI and DMIC ports. Signed-off-by: Karthik D M <karthik.d.m@intel.com> Signed-off-by: Nishit Sharma <nishitx.sharma@intel.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ctl: correct documentation about TLV featureTakashi Sakamoto2016-09-301-10/+10
| | | | | | | | From my misunderstanding, some explanations are wrong. This commit corrects them. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ctl: improve documentation about TLV-related APIsTakashi Sakamoto2016-09-301-0/+21
| | | | | | | | | The documentation gives no hints to users about format of TLV data. This commit add hints to construct/parse the information. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ctl: improve API documentation for TLV operationTakashi Sakamoto2016-09-301-3/+3
| | | | | | | | | | | | 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") Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ucm: fix crash when calling snd_use_case_geti() with no device or modifierAntonio Ospite2016-09-291-0/+8
| | | | | | | | | | | | | | | | | 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. Signed-off-by: Antonio Ospite <ao2@ao2.it> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* pcm: Better understandable locking codeTakashi Iwai2016-09-023-11/+34
| | | | | | | | | | | | | | | | | 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. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* conf: bxtrt298: Add topology conf file for bxtShreyas NC2016-08-303-1/+3328
| | | | | | | | | Add the conf file for bxt platform as well to define module private data. Signed-off-by: Shreyas NC <shreyas.nc@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* conf: sklrt286: Remove tool to generate private data blobsShreyas NC2016-08-3024-2153/+0
| | | | | | | | | | | | 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. Signed-off-by: Shreyas NC <shreyas.nc@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* conf: sklrt286: define module private data through tuples in skylakeShreyas NC2016-08-302-37/+2659
| | | | | | | | | | | | | | | | | 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. Signed-off-by: Shreyas NC <shreyas.nc@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* pcm: Fix shm initialization race-conditionIsmael Luceno2016-08-221-2/+3
| | | | | | | | | | | 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 Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>