Home
last modified time | relevance | path

Searched +full:fe +full:- +full:dai +full:- +full:link (Results 1 – 25 of 59) sorted by relevance

123

/openbmc/linux/Documentation/sound/soc/
H A Ddpcm.rst18 DPCM re-uses all the existing component codec, platform and DAI drivers without
23 -------------------------------------
26 document for all examples :-
32 PCM0 <------------> * * <----DAI0-----> Codec Headset
34 PCM1 <------------> * * <----DAI1-----> Codec Speakers
36 PCM2 <------------> * * <----DAI2-----> MODEM
38 PCM3 <------------> * * <----DAI3-----> BT
40 * * <----DAI4-----> DMIC
42 * * <----DAI5-----> FM
47 modem. This sound card exposes 4 DSP front end (FE) ALSA PCM devices and
[all …]
/openbmc/linux/Documentation/devicetree/bindings/sound/
H A Dimx-audio-card.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/sound/imx-audio-card.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Shengjiu Wang <shengjiu.wang@nxp.com>
13 - $ref: sound-card-common.yaml#
18 - fsl,imx-audio-card
21 ".*-dai-link$":
23 Each subnode represents a dai link. Subnodes of each dai links would be
29 link-name:
[all …]
/openbmc/linux/sound/soc/intel/avs/
H A Dpcm.c1 // SPDX-License-Identifier: GPL-2.0-only
3 // Copyright(c) 2021-2022 Intel Corporation. All rights reserved.
14 #include <sound/soc-acpi.h>
15 #include <sound/soc-acpi-intel-match.h>
16 #include <sound/soc-component.h>
25 * link stream is stored within substream's runtime
36 avs_dai_find_path_template(struct snd_soc_dai *dai, bool is_fe, int direction) in avs_dai_find_path_template() argument
38 struct snd_soc_dapm_widget *dw = snd_soc_dai_get_widget(dai, direction); in avs_dai_find_path_template()
48 dp = list_first_entry_or_null(&dw->edges[dir], typeof(*dp), list_node[dir]); in avs_dai_find_path_template()
53 dw = (dp->source == dw) ? dp->sink : dp->source; in avs_dai_find_path_template()
[all …]
/openbmc/linux/include/sound/
H A Dsoc-dpcm.h1 /* SPDX-License-Identifier: GPL-2.0
3 * linux/sound/soc-dpcm.h -- ALSA SoC Dynamic PCM Support
18 * Types of runtime_update to perform. e.g. originated from FE PCM ops
28 * Dynamic PCM Frontend -> Backend link management states.
31 SND_SOC_DPCM_LINK_STATE_NEW = 0, /* newly created link */
32 SND_SOC_DPCM_LINK_STATE_FREE, /* link to be dismantled */
36 * Dynamic PCM Frontend -> Backend link PCM states.
65 * Dynamic PCM link
66 * This links together a FE and BE DAI at runtime and stores the link
70 /* FE and BE DAIs*/
[all …]
H A Dsoc-topology.h1 /* SPDX-License-Identifier: GPL-2.0
3 * linux/sound/soc-topology.h -- ALSA SoC Firmware Controls and DAPM
9 * algorithms, equalisers, DAIs, widgets, FE caps, BE caps, codec link caps etc.
60 /* generic dynamic object - all dynamic objects belong to this struct */
74 * Kcontrol operations - used to map handlers onto firmware based controls.
96 * DAPM widget event handlers - used to map handlers onto widgets.
105 * Public API - Used by component drivers to load and unload dynamic objects
110 /* external kcontrol init - used for any driver specific init */
122 /* external widget init - used for any driver specific init */
132 /* FE DAI - used for any driver specific init */
[all …]
H A Dsoc.h1 /* SPDX-License-Identifier: GPL-2.0
3 * linux/sound/soc.h -- ALSA SoC Layer
215 .mask = xitems ? roundup_pow_of_two(xitems) - 1 : 0}
417 #include <sound/soc-dapm.h>
418 #include <sound/soc-dpcm.h>
419 #include <sound/soc-topology.h>
493 snd_soc_runtime_action(rtd, stream, -1); in snd_soc_runtime_deactivate()
558 int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
612 SND_SOC_TRIGGER_ORDER_DEFAULT = 0, /* Link->Component->DAI DAI->Component->Link */
613 SND_SOC_TRIGGER_ORDER_LDC, /* Link->DAI->Component Component->DAI->Link */
[all …]
/openbmc/linux/sound/soc/
H A Dsoc-pcm.c1 // SPDX-License-Identifier: GPL-2.0+
3 // soc-pcm.c -- ALSA SoC PCM
25 #include <sound/soc-dpcm.h>
26 #include <sound/soc-link.h>
39 case -EPROBE_DEFER: in _soc_pcm_ret()
40 case -ENOTSUPP: in _soc_pcm_ret()
43 dev_err(rtd->dev, in _soc_pcm_ret()
45 func, rtd->dai_link->name, ret); in _soc_pcm_ret()
73 return (rtd)->dai_link->num_cpus == 1 ? asoc_rtd_to_cpu(rtd, 0)->name : "multicpu"; in soc_cpu_dai_name()
77 return (rtd)->dai_link->num_codecs == 1 ? asoc_rtd_to_codec(rtd, 0)->name : "multicodec"; in soc_codec_dai_name()
[all …]
H A Dsoc-compress.c1 // SPDX-License-Identifier: GPL-2.0+
3 // soc-compress.c -- ALSA SoC Compress
21 #include <sound/soc-dpcm.h>
22 #include <sound/soc-link.h>
26 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in snd_soc_compr_components_open()
47 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in snd_soc_compr_components_free()
59 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_clean()
62 int stream = cstream->direction; /* SND_COMPRESS_xxx is same as SNDRV_PCM_STREAM_xxx */ in soc_compr_clean()
72 cpu_dai->rate = 0; in soc_compr_clean()
75 codec_dai->rate = 0; in soc_compr_clean()
[all …]
H A Dsoc-topology.c1 // SPDX-License-Identifier: GPL-2.0+
3 // soc-topology.c -- ALSA SoC Topology
17 // topology data can contain kcontrols, DAPM graphs, widgets, DAIs, DAI links,
29 #include <sound/soc-dapm.h>
30 #include <sound/soc-topology.h>
83 const u8 *end = tplg->pos + elem_size * count; in soc_tplg_check_elem_count()
85 if (end > tplg->fw->data + tplg->fw->size) { in soc_tplg_check_elem_count()
86 dev_err(tplg->dev, "ASoC: %s overflow end of data\n", in soc_tplg_check_elem_count()
88 return -EINVAL; in soc_tplg_check_elem_count()
94 dev_err(tplg->dev, in soc_tplg_check_elem_count()
[all …]
/openbmc/linux/sound/soc/samsung/
H A Dodroid.c1 // SPDX-License-Identifier: GPL-2.0
6 #include <linux/clk-provider.h>
13 #include "i2s-regs.h"
28 struct snd_pcm_runtime *runtime = substream->runtime; in odroid_card_fe_startup()
39 struct odroid_priv *priv = snd_soc_card_get_drvdata(rtd->card); in odroid_card_fe_hw_params()
43 spin_lock_irqsave(&priv->lock, flags); in odroid_card_fe_hw_params()
44 if (priv->be_active && priv->be_sample_rate != params_rate(params)) in odroid_card_fe_hw_params()
45 ret = -EINVAL; in odroid_card_fe_hw_params()
46 spin_unlock_irqrestore(&priv->lock, flags); in odroid_card_fe_hw_params()
60 struct odroid_priv *priv = snd_soc_card_get_drvdata(rtd->card); in odroid_card_be_hw_params()
[all …]
/openbmc/linux/sound/soc/generic/
H A Daudio-graph-card.c1 // SPDX-License-Identifier: GPL-2.0
8 // based on ${LINUX}/sound/soc/generic/simple-card.c
29 struct snd_soc_dapm_context *dapm = w->dapm; in graph_outdrv_event()
30 struct asoc_simple_priv *priv = snd_soc_card_get_drvdata(dapm->card); in graph_outdrv_event()
34 gpiod_set_value_cansleep(priv->pa_gpio, 1); in graph_outdrv_event()
37 gpiod_set_value_cansleep(priv->pa_gpio, 0); in graph_outdrv_event()
40 return -EINVAL; in graph_outdrv_event()
60 struct snd_soc_dai *dai = snd_soc_find_dai_with_mutex(dlc); in soc_component_is_pcm() local
62 if (dai && (dai->component->driver->pcm_construct || in soc_component_is_pcm()
63 (dai->driver->ops && dai->driver->ops->pcm_new))) in soc_component_is_pcm()
[all …]
H A Dsimple-card.c1 // SPDX-License-Identifier: GPL-2.0
16 #include <sound/soc-dai.h>
21 #define DAI "sound-dai" macro
22 #define CELL "#sound-dai-cells"
23 #define PREFIX "simple-audio-card,"
41 * Get node via "sound-dai = <&phandle port>" in asoc_simple_parse_platform()
44 ret = of_parse_phandle_with_args(node, DAI, CELL, 0, &args); in asoc_simple_parse_platform()
50 dlc->of_node = args.np; in asoc_simple_parse_platform()
61 struct snd_soc_dai *dai; in asoc_simple_parse_dai() local
68 * Get node via "sound-dai = <&phandle port>" in asoc_simple_parse_dai()
[all …]
H A Daudio-graph-card2.c1 // SPDX-License-Identifier: GPL-2.0
8 // based on ${LINUX}/sound/soc/generic/audio-graph-card.c
28 bitclock-master;
30 frame-master;
42 sample0: left_j, bitclock-master, frame-master
43 sample1: i2s, bitclock-master
59 linux/sound/soc/soc-utils.c
60 linux/sound/soc/generic/test-component.c
63 Normal Audio-Graph
66 CPU <---> Codec
[all …]
H A Dsimple-card-utils.c1 // SPDX-License-Identifier: GPL-2.0
3 // simple-card-utils.c
35 if (!strcmp(data->convert_sample_format, in asoc_simple_fixup_sample_fmt()
54 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-rate"); in asoc_simple_parse_convert()
55 of_property_read_u32(np, prop, &data->convert_rate); in asoc_simple_parse_convert()
58 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-channels"); in asoc_simple_parse_convert()
59 of_property_read_u32(np, prop, &data->convert_channels); in asoc_simple_parse_convert()
62 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-sample-format"); in asoc_simple_parse_convert()
63 of_property_read_string(np, prop, &data->convert_sample_format); in asoc_simple_parse_convert()
68 * asoc_simple_is_convert_required() - Query if HW param conversion was requested
[all …]
/openbmc/linux/sound/soc/sof/intel/
H A Dhda-dai-ops.c1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
10 #include <sound/hda-mlink.h>
13 #include "../ipc4-priv.h"
14 #include "../ipc4-topology.h"
15 #include "../sof-priv.h"
16 #include "../sof-audio.h"
19 /* These ops are only applicable for the HDA DAI's in their current form */
23 * to the link DMA stream_tag argument is assigned to one
24 * of the FEs connected to the BE DAI.
34 fe_substream = snd_soc_dpcm_get_substream(dpcm->fe, dir); in hda_check_fes()
[all …]
/openbmc/linux/sound/soc/sof/
H A Dipc3-topology.c1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
12 #include "sof-priv.h"
13 #include "sof-audio.h"
14 #include "ipc3-priv.h"
80 /* DAI */
90 /* BE DAI link */
316 [SOF_DAI_TOKENS] = {"DAI tokens", dai_tokens, ARRAY_SIZE(dai_tokens)},
317 [SOF_DAI_LINK_TOKENS] = {"DAI link tokens", dai_link_tokens, ARRAY_SIZE(dai_link_tokens)},
331 * sof_comp_alloc - allocate and initialize buffer for a new component
344 size_t ext_size = sizeof(swidget->uuid); in sof_comp_alloc()
[all …]
H A Dipc3-pcm.c1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
11 #include "ipc3-priv.h"
13 #include "sof-priv.h"
14 #include "sof-audio.h"
26 return -EINVAL; in sof_ipc3_pcm_hw_free()
28 if (!spcm->prepared[substream->stream]) in sof_ipc3_pcm_hw_free()
33 stream.comp_id = spcm->stream[substream->stream].comp_id; in sof_ipc3_pcm_hw_free()
36 return sof_ipc_tx_message_no_reply(sdev->ipc, &stream, sizeof(stream)); in sof_ipc3_pcm_hw_free()
46 struct sof_ipc_fw_version *v = &sdev->fw_ready.version; in sof_ipc3_pcm_hw_params()
47 struct snd_pcm_runtime *runtime = substream->runtime; in sof_ipc3_pcm_hw_params()
[all …]
H A Dtopology.c1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
18 #include "sof-priv.h"
19 #include "sof-audio.h"
25 * from dB gain 20th root of 10 in Q1.16 fixed-point notation
28 /* 40th root of 10 in Q1.16 fixed-point notation*/
40 * sof_update_ipc_object - Parse multiple sets of tokens within the token array associated with the
62 token_list = tplg_ops ? tplg_ops->token_list : NULL; in sof_update_ipc_object()
68 dev_err(scomp->dev, "Invalid token count for token ID: %d\n", token_id); in sof_update_ipc_object()
69 return -EINVAL; in sof_update_ipc_object()
78 dev_err(scomp->dev, "Invalid tokens for token id: %d\n", token_id); in sof_update_ipc_object()
[all …]
H A Dipc4-pcm.c1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
11 #include "sof-audio.h"
12 #include "sof-priv.h"
14 #include "ipc4-priv.h"
15 #include "ipc4-topology.h"
16 #include "ipc4-fw-reg.h"
25 if (trigger_list->count == 1) in sof_ipc4_set_multi_pipeline_state()
26 return sof_ipc4_set_pipeline_state(sdev, trigger_list->pipeline_instance_ids[0], in sof_ipc4_set_multi_pipeline_state()
39 ipc_size = sizeof(u32) * (trigger_list->count + 1); in sof_ipc4_set_multi_pipeline_state()
43 return sof_ipc_tx_message_no_reply(sdev->ipc, &msg, ipc_size); in sof_ipc4_set_multi_pipeline_state()
[all …]
H A Dsof-audio.h1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
20 #include <sound/sof/dai.h>
22 #include "sof-priv.h"
24 #define SOF_AUDIO_PCM_DRV_NAME "sof-audio-component"
37 /* max number of FE PCMs before BEs */
68 return volume_map[size - 1]; in mixer_to_ipc()
82 return i - 1; in ipc_to_mixer()
93 int dai_data; /* contains DAI-specific information */
97 * struct sof_ipc_pcm_ops - IPC-specific PCM ops
101 * @dai_link_fixup: Function pointer for DAI link fixup
[all …]
/openbmc/linux/include/uapi/sound/
H A Dasoc.h1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
3 * uapi/sound/asoc.h -- ALSA SoC Firmware Controls and DAPM
34 * Maximum number of physical link's hardware configs
38 /* individual kcontrol info types - can be mixed with other types */
49 /* individual widget kcontrol info types - can be mixed with other types */
56 /* DAPM widget types - add new items to the end */
116 /* vendor block IDs - please add new vendor types to end */
133 /* DAI flags */
138 /* DAI clock gating */
143 /* DAI mclk_direction */
[all …]
/openbmc/linux/sound/soc/intel/skylake/
H A Dskl-pcm.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * skl-pcm.c -ASoC HDA Platform driver file implementing PCM functionality
5 * Copyright (C) 2014-2015 Intel Corp
20 #include "skl-topology.h"
21 #include "skl-sst-dsp.h"
22 #include "skl-sst-ipc.h"
60 return substream->runtime->private_data; in get_hdac_ext_stream()
67 struct hdac_bus *bus = hstream->bus; in get_bus_ctx()
77 hdac_stream(stream)->bufsize = 0; in skl_substream_alloc_pages()
78 hdac_stream(stream)->period_bytes = 0; in skl_substream_alloc_pages()
[all …]
/openbmc/linux/sound/soc/mediatek/common/
H A Dmtk-afe-fe-dai.c1 // SPDX-License-Identifier: GPL-2.0
3 * mtk-afe-fe-dais.c -- Mediatek afe fe dai operator
14 #include "mtk-afe-platform-driver.h"
16 #include "mtk-afe-fe-dai.h"
17 #include "mtk-base-afe.h"
38 struct snd_soc_dai *dai) in mtk_afe_fe_startup() argument
41 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); in mtk_afe_fe_startup()
42 struct snd_pcm_runtime *runtime = substream->runtime; in mtk_afe_fe_startup()
43 int memif_num = asoc_rtd_to_cpu(rtd, 0)->id; in mtk_afe_fe_startup()
44 struct mtk_base_afe_memif *memif = &afe->memif[memif_num]; in mtk_afe_fe_startup()
[all …]
/openbmc/linux/sound/soc/fsl/
H A Dimx-card.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2017-2021 NXP
15 #include <sound/soc-dapm.h>
55 * struct imx_card_plat_data - specific info for codecs
89 * struct dai_link_data - specific info for dai link
93 * @cpu_sysclk_id: sysclk id for cpu dai
104 * struct imx_card_data - platform device data
108 * @link_data: private data for dai link
143 * Table 13 - Audio Interface Format
154 * Table 7 - mapping multiplier and speed mode
[all …]
H A Dfsl-asoc-card.c1 // SPDX-License-Identifier: GPL-2.0
23 #include "imx-audmux.h"
32 #define DRIVER_NAME "fsl-asoc-card"
39 /* Default DAI format without Master and Slave flag */
43 * struct codec_priv - CODEC private data
61 * struct cpu_priv - CPU private data
79 * struct fsl_asoc_card_priv - Freescale Generic ASOC card private data
80 * @dai_link: DAI link structure including normal one and DPCM link
90 * @asrc_rate: ASRC sample rate used by Back-Ends
91 * @asrc_format: ASRC sample format used by Back-Ends
[all …]

123