/linux-6.12.1/Documentation/sound/soc/ |
D | dpcm.rst | 18 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 …]
|
/linux-6.12.1/Documentation/devicetree/bindings/sound/ |
D | imx-audio-card.yaml | 1 # 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 …]
|
/linux-6.12.1/include/sound/ |
D | soc-dpcm.h | 1 /* 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. 64 * Dynamic PCM link 65 * This links together a FE and BE DAI at runtime and stores the link 69 /* FE and BE DAIs*/ [all …]
|
D | soc-topology.h | 1 /* 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 …]
|
D | soc.h | 1 /* SPDX-License-Identifier: GPL-2.0 3 * linux/sound/soc.h -- ALSA SoC Layer 238 .mask = xitems ? roundup_pow_of_two(xitems) - 1 : 0} 440 #include <sound/soc-dapm.h> 441 #include <sound/soc-dpcm.h> 442 #include <sound/soc-topology.h> 516 snd_soc_runtime_action(rtd, stream, -1); in snd_soc_runtime_deactivate() 581 int snd_soc_add_dai_controls(struct snd_soc_dai *dai, 635 SND_SOC_TRIGGER_ORDER_DEFAULT = 0, /* Link->Component->DAI DAI->Component->Link */ 636 SND_SOC_TRIGGER_ORDER_LDC, /* Link->DAI->Component Component->DAI->Link */ [all …]
|
/linux-6.12.1/sound/soc/ |
D | soc-pcm.c | 1 // 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() 41 case -EINVAL: in _soc_pcm_ret() 44 dev_err(rtd->dev, in _soc_pcm_ret() 46 func, rtd->dai_link->name, ret); in _soc_pcm_ret() 52 /* is the current PCM operation for this FE ? */ [all …]
|
D | soc-compress.c | 1 // 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 …]
|
D | soc-topology.c | 1 // 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 …]
|
/linux-6.12.1/sound/soc/intel/avs/ |
D | pcm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // Copyright(c) 2021-2022 Intel Corporation 14 #include <sound/soc-acpi.h> 15 #include <sound/soc-acpi-intel-match.h> 16 #include <sound/soc-component.h> 28 /* LINK-stream utilized in BE operations while HOST in FE ones. */ 39 avs_dai_find_path_template(struct snd_soc_dai *dai, bool is_fe, int direction) in avs_dai_find_path_template() argument 41 struct snd_soc_dapm_widget *dw = snd_soc_dai_get_widget(dai, direction); in avs_dai_find_path_template() 51 dp = list_first_entry_or_null(&dw->edges[dir], typeof(*dp), list_node[dir]); in avs_dai_find_path_template() 56 dw = (dp->source == dw) ? dp->sink : dp->source; in avs_dai_find_path_template() [all …]
|
/linux-6.12.1/sound/soc/mediatek/common/ |
D | mtk-dsp-sof-common.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * mtk-dsp-sof-common.c -- MediaTek dsp sof common ctrl 9 #include "mtk-dsp-sof-common.h" 10 #include "mtk-soc-card.h" 12 /* fixup the BE DAI link to match any values from topology */ 16 struct snd_soc_card *card = rtd->card; in mtk_sof_dai_link_fixup() 18 const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; in mtk_sof_dai_link_fixup() 21 for (i = 0; i < sof_priv->num_streams; i++) { in mtk_sof_dai_link_fixup() 25 const struct sof_conn_stream *conn = &sof_priv->conn_streams[i]; in mtk_sof_dai_link_fixup() 27 if (conn->normal_link && strcmp(rtd->dai_link->name, conn->normal_link)) in mtk_sof_dai_link_fixup() [all …]
|
D | mtk-afe-fe-dai.c | 1 // 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 = snd_soc_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 …]
|
/linux-6.12.1/sound/soc/samsung/ |
D | odroid.c | 1 // SPDX-License-Identifier: GPL-2.0 6 #include <linux/clk-provider.h> 12 #include "i2s-regs.h" 27 struct snd_pcm_runtime *runtime = substream->runtime; in odroid_card_fe_startup() 38 struct odroid_priv *priv = snd_soc_card_get_drvdata(rtd->card); in odroid_card_fe_hw_params() 42 spin_lock_irqsave(&priv->lock, flags); in odroid_card_fe_hw_params() 43 if (priv->be_active && priv->be_sample_rate != params_rate(params)) in odroid_card_fe_hw_params() 44 ret = -EINVAL; in odroid_card_fe_hw_params() 45 spin_unlock_irqrestore(&priv->lock, flags); in odroid_card_fe_hw_params() 59 struct odroid_priv *priv = snd_soc_card_get_drvdata(rtd->card); in odroid_card_be_hw_params() [all …]
|
/linux-6.12.1/sound/soc/generic/ |
D | audio-graph-card.c | 1 // SPDX-License-Identifier: GPL-2.0 8 // based on ${LINUX}/sound/soc/generic/simple-card.c 39 struct snd_soc_dapm_context *dapm = w->dapm; in graph_outdrv_event() 40 struct simple_util_priv *priv = snd_soc_card_get_drvdata(dapm->card); in graph_outdrv_event() 44 gpiod_set_value_cansleep(priv->pa_gpio, 1); in graph_outdrv_event() 47 gpiod_set_value_cansleep(priv->pa_gpio, 0); in graph_outdrv_event() 50 return -EINVAL; in graph_outdrv_event() 70 struct snd_soc_dai *dai = snd_soc_find_dai_with_mutex(dlc); in soc_component_is_pcm() local 72 if (dai && (dai->component->driver->pcm_construct || in soc_component_is_pcm() 73 (dai->driver->ops && dai->driver->ops->pcm_new))) in soc_component_is_pcm() [all …]
|
D | simple-card.c | 1 // SPDX-License-Identifier: GPL-2.0 17 #include <sound/soc-dai.h> 22 #define DAI "sound-dai" macro 23 #define CELL "#sound-dai-cells" 24 #define PREFIX "simple-audio-card," 41 * Get node via "sound-dai = <&phandle port>" in simple_parse_platform() 44 ret = of_parse_phandle_with_args(node, DAI, CELL, 0, &args); in simple_parse_platform() 50 dlc->of_node = args.np; in simple_parse_platform() 61 struct snd_soc_dai *dai; in simple_parse_dai() local 68 * Get node via "sound-dai = <&phandle port>" in simple_parse_dai() [all …]
|
D | simple-card-utils.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // simple-card-utils.c 7 #include <dt-bindings/sound/audio-graph.h> 21 int val = -EINVAL; in simple_util_get_sample_fmt() 35 if (!strcmp(data->convert_sample_format, in simple_util_get_sample_fmt() 72 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-rate"); in simple_util_parse_convert() 73 of_property_read_u32(np, prop, &data->convert_rate); in simple_util_parse_convert() 76 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-channels"); in simple_util_parse_convert() 77 of_property_read_u32(np, prop, &data->convert_channels); in simple_util_parse_convert() 80 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-sample-format"); in simple_util_parse_convert() [all …]
|
D | audio-graph-card2.c | 1 // SPDX-License-Identifier: GPL-2.0 8 // based on ${LINUX}/sound/soc/generic/audio-graph-card.c 25 bitclock-master; 27 frame-master; 39 sample0: left_j, bitclock-master, frame-master 40 sample1: i2s, bitclock-master 56 linux/sound/soc/soc-utils.c 57 linux/sound/soc/generic/test-component.c 60 Normal Audio-Graph 63 CPU <---> Codec [all …]
|
/linux-6.12.1/sound/soc/sof/ |
D | ipc3-pcm.c | 1 // 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 …]
|
D | ipc3-topology.c | 1 // 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" 79 /* DAI */ 89 /* BE DAI link */ 333 [SOF_DAI_TOKENS] = {"DAI tokens", dai_tokens, ARRAY_SIZE(dai_tokens)}, 334 [SOF_DAI_LINK_TOKENS] = {"DAI link tokens", dai_link_tokens, ARRAY_SIZE(dai_link_tokens)}, 351 * sof_comp_alloc - allocate and initialize buffer for a new component 364 size_t ext_size = sizeof(swidget->uuid); in sof_comp_alloc() [all …]
|
D | topology.c | 1 // 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 …]
|
D | ipc4-pcm.c | 1 // 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" 19 * struct sof_ipc4_timestamp_info - IPC4 timestamp info 21 * @dai_copier: the dai copier of the pcm stream 41 * struct sof_ipc4_pcm_stream_priv - IPC4 specific private data 54 struct sof_ipc4_pcm_stream_priv *stream_priv = sps->private; in sof_ipc4_sps_to_time_info() [all …]
|
D | sof-audio.h | 1 /* 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 */ 69 return volume_map[size - 1]; in mixer_to_ipc() 83 return i - 1; in ipc_to_mixer() 94 int dai_data; /* contains DAI-specific information */ 95 int dai_node_id; /* contains DAI-specific information for Gateway configuration */ 99 * struct sof_ipc_pcm_ops - IPC-specific PCM ops [all …]
|
D | ipc4-topology.h | 1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 15 #define SOF_IPC4_FW_PAGE(x) ((((x) + BIT(12) - 1) & ~(BIT(12) - 1)) >> 12) 16 #define SOF_IPC4_FW_ROUNDUP(x) (((x) + BIT(6) - 1) & (~(BIT(6) - 1))) 22 * LL domain - Low latency domain 23 * DP domain - Data processing domain 44 /* Node index and mask applicable for host copier and ALH/HDA type DAI copiers */ 50 /* Node ID for SSP type DAI copiers */ 53 /* Node ID for DMIC type DAI copiers */ 67 * The base of multi-gateways. Multi-gateways addressing starts from 68 * ALH_MULTI_GTW_BASE and there are ALH_MULTI_GTW_COUNT multi-sources [all …]
|
/linux-6.12.1/include/uapi/sound/ |
D | asoc.h | 1 /* 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 …]
|
/linux-6.12.1/sound/soc/sof/intel/ |
D | hda-dai-ops.c | 1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 11 #include <sound/hda-mlink.h> 14 #include "../ipc4-priv.h" 15 #include "../ipc4-topology.h" 16 #include "../sof-priv.h" 17 #include "../sof-audio.h" 20 /* These ops are only applicable for the HDA DAI's in their current form */ 24 * to the link DMA stream_tag argument is assigned to one 25 * of the FEs connected to the BE DAI. 35 fe_substream = snd_soc_dpcm_get_substream(dpcm->fe, dir); in hda_check_fes() [all …]
|
/linux-6.12.1/sound/soc/fsl/ |
D | imx-card.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2021 NXP 14 #include <sound/soc-dapm.h> 54 * struct imx_card_plat_data - specific info for codecs 88 * struct dai_link_data - specific info for dai link 92 * @cpu_sysclk_id: sysclk id for cpu dai 103 * struct imx_card_data - platform device data 107 * @link_data: private data for dai link 142 * Table 13 - Audio Interface Format 153 * Table 7 - mapping multiplier and speed mode [all …]
|