/Linux-v6.1/sound/soc/ |
D | soc-dai.c | 3 // soc-dai.c 10 #include <sound/soc-dai.h> 13 #define soc_dai_ret(dai, ret) _soc_dai_ret(dai, __func__, ret) argument 14 static inline int _soc_dai_ret(struct snd_soc_dai *dai, in _soc_dai_ret() argument 27 dev_err(dai->dev, in _soc_dai_ret() 29 func, dai->name, ret); in _soc_dai_ret() 39 #define soc_dai_mark_push(dai, substream, tgt) ((dai)->mark_##tgt = substream) argument 40 #define soc_dai_mark_pop(dai, substream, tgt) ((dai)->mark_##tgt = NULL) argument 41 #define soc_dai_mark_match(dai, substream, tgt) ((dai)->mark_##tgt == substream) argument 44 * snd_soc_dai_set_sysclk - configure DAI system or master clock. [all …]
|
/Linux-v6.1/include/sound/ |
D | soc-dai.h | 3 * linux/sound/soc-dai.h -- ALSA SoC Layer 7 * Digital Audio Interface (DAI) API. 22 * DAI hardware audio formats. 56 * DAI Clock gating. 58 * DAI bit clocks can be gated (disabled) when the DAI is not 76 * DAI hardware signal polarity. 78 * Specifies whether the DAI can also support inverted clocks for the specified 110 * DAI hardware clock providers/consumers 171 int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id, 174 int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai, [all …]
|
D | simple_card_utils.h | 142 struct asoc_simple_dai *dai); 163 #define asoc_simple_parse_tdm(np, dai) \ argument 164 snd_soc_of_parse_tdm_slot(np, &(dai)->tx_slot_mask, \ 165 &(dai)->rx_slot_mask, \ 166 &(dai)->slots, \ 167 &(dai)->slot_width); 202 struct asoc_simple_dai *dai) in asoc_simple_debug_dai() argument 206 /* dai might be NULL */ in asoc_simple_debug_dai() 207 if (!dai) in asoc_simple_debug_dai() 210 if (dai->name) in asoc_simple_debug_dai() [all …]
|
/Linux-v6.1/Documentation/devicetree/bindings/sound/ |
D | amlogic,axg-sound-card.txt | 16 - dai-link: Container for dai-link level properties and the CODEC 20 Required dai-link properties: 22 - sound-dai: phandle and port of the CPU DAI. 24 Required TDM Backend dai-link properties: 25 - dai-format : CPU/CODEC common audio format 27 Optional TDM Backend dai-link properties: 28 - dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks 29 - dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks 34 - dai-tdm-slot-num : Please refer to tdm-slot.txt. 37 - dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted. [all …]
|
D | qcom,sm8250.yaml | 60 ".*-dai-link$": 62 Each subnode represents a dai link. Subnodes of each dai links would be 69 description: Indicates dai-link name and PCM stream name. 74 description: Holds subnode which indicates cpu dai. 79 sound-dai: 83 description: Holds subnode which indicates platform dai. 88 sound-dai: 92 description: Holds subnode which indicates codec dai. 97 sound-dai: 154 mm1-dai-link { [all …]
|
D | google,sc7280-herobrine.yaml | 39 "^dai-link@[0-9a-f]$": 41 Each subnode represents a dai link. Subnodes of each dai links would be 48 description: Indicates dai-link name and PCM stream name. 54 description: dai link address. 57 description: Holds subnode which indicates cpu dai. 60 sound-dai: true 63 - sound-dai 68 description: Holds subnode which indicates codec dai. 71 sound-dai: true 74 - sound-dai [all …]
|
D | amlogic,gx-sound-card.yaml | 41 "^dai-link-[0-9]+$": 45 dai-link child nodes: 46 Container for dai-link level properties and the CODEC sub-nodes. 50 dai-format: 60 sound-dai: 62 description: phandle of the CPU DAI 70 dai-link representing backend links should have at least one subnode. 71 One subnode for each codec of the dai-link. dai-link representing 75 sound-dai: 77 description: phandle of the codec DAI [all …]
|
D | simple-card.yaml | 15 description: Indicates dai-link frame master. 19 description: Indicates dai-link bit clock master 23 description: dai-link uses frame clock inversion 27 description: dai-link uses bit clock inversion 30 dai-tdm-slot-num: 34 dai-tdm-slot-width: 63 When defined, mclk-fs property defined in dai-link sub nodes are ignored. 116 dai: 119 sound-dai: 136 dai-tdm-slot-num: [all …]
|
D | amlogic,g12a-tohdmitx.txt | 8 - #sound-dai-cells: should be 1. 16 #sound-dai-cells = <1>; 27 dai-link-x { 28 sound-dai = <&tdmif_a>; 29 dai-format = "i2s"; 30 dai-tdm-slot-tx-mask-0 = <1 1>; 33 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 37 sound-dai = <&external_dac>; 41 dai-link-y { 42 sound-dai = <&tdmif_c>; [all …]
|
D | audio-graph-port.yaml | 22 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate" 24 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels" 26 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format" 37 When defined, mclk-fs property defined in dai-link sub nodes are 41 description: dai-link uses frame clock inversion 44 description: dai-link uses bit clock inversion 47 description: Indicates dai-link frame master. 52 description: Indicates dai-link bit clock master 57 dai-format: 71 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate" [all …]
|
D | imx-audio-card.yaml | 30 ".*-dai-link$": 32 Each subnode represents a dai link. Subnodes of each dai links would be 39 description: Indicates dai-link name and PCM stream name. 50 dai-tdm-slot-num: 54 dai-tdm-slot-width: 59 description: Holds subnode which indicates cpu dai. 63 sound-dai: 67 description: Holds subnode which indicates codec dai. 71 sound-dai: 96 pri-dai-link { [all …]
|
/Linux-v6.1/sound/soc/tegra/ |
D | tegra210_ahub.c | 101 DAI(ADMAIF1), 102 DAI(ADMAIF2), 103 DAI(ADMAIF3), 104 DAI(ADMAIF4), 105 DAI(ADMAIF5), 106 DAI(ADMAIF6), 107 DAI(ADMAIF7), 108 DAI(ADMAIF8), 109 DAI(ADMAIF9), 110 DAI(ADMAIF10), [all …]
|
/Linux-v6.1/sound/soc/qcom/qdsp6/ |
D | q6apm-lpass-dais.c | 25 static int q6dma_set_channel_map(struct snd_soc_dai *dai, in q6dma_set_channel_map() argument 30 struct q6apm_lpass_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6dma_set_channel_map() 31 struct audioreach_module_config *cfg = &dai_data->module_config[dai->id]; in q6dma_set_channel_map() 34 switch (dai->id) { in q6dma_set_channel_map() 48 dev_err(dai->dev, "tx slot not found\n"); in q6dma_set_channel_map() 53 dev_err(dai->dev, "invalid tx num %d\n", in q6dma_set_channel_map() 72 dev_err(dai->dev, "rx slot not found\n"); in q6dma_set_channel_map() 76 dev_err(dai->dev, "invalid rx num %d\n", in q6dma_set_channel_map() 84 dev_err(dai->dev, "%s: invalid dai id 0x%x\n", in q6dma_set_channel_map() 85 __func__, dai->id); in q6dma_set_channel_map() [all …]
|
D | q6afe-dai.c | 37 struct snd_soc_dai *dai) in q6slim_hw_params() argument 40 struct q6afe_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6slim_hw_params() 41 struct q6afe_slim_cfg *slim = &dai_data->port_config[dai->id].slim; in q6slim_hw_params() 67 struct snd_soc_dai *dai) in q6hdmi_hw_params() argument 69 struct q6afe_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6hdmi_hw_params() 71 struct q6afe_hdmi_cfg *hdmi = &dai_data->port_config[dai->id].hdmi; in q6hdmi_hw_params() 107 dev_err(dai->dev, "invalid Channels = %u\n", channels); in q6hdmi_hw_params() 116 struct snd_soc_dai *dai) in q6i2s_hw_params() argument 118 struct q6afe_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6i2s_hw_params() 119 struct q6afe_i2s_cfg *i2s = &dai_data->port_config[dai->id].i2s_cfg; in q6i2s_hw_params() [all …]
|
/Linux-v6.1/sound/soc/meson/ |
D | axg-tdm-interface.c | 11 #include <sound/soc-dai.h> 35 int axg_tdm_set_tdm_slots(struct snd_soc_dai *dai, u32 *tx_mask, in axg_tdm_set_tdm_slots() argument 39 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_set_tdm_slots() 41 dai->playback_dma_data; in axg_tdm_set_tdm_slots() 43 dai->capture_dma_data; in axg_tdm_set_tdm_slots() 52 dev_err(dai->dev, "interface has no slot\n"); in axg_tdm_set_tdm_slots() 76 dev_err(dai->dev, "unsupported slot width: %d\n", slot_width); in axg_tdm_set_tdm_slots() 82 /* Amend the dai driver and let dpcm merge do its job */ in axg_tdm_set_tdm_slots() 85 dai->driver->playback.channels_max = tx_slots; in axg_tdm_set_tdm_slots() 86 dai->driver->playback.formats = fmt; in axg_tdm_set_tdm_slots() [all …]
|
D | aiu-fifo.c | 11 #include <sound/soc-dai.h> 36 struct snd_soc_dai *dai = aiu_fifo_dai(substream); in aiu_fifo_pointer() local 37 struct aiu_fifo *fifo = dai->playback_dma_data; in aiu_fifo_pointer() 46 static void aiu_fifo_enable(struct snd_soc_dai *dai, bool enable) in aiu_fifo_enable() argument 48 struct snd_soc_component *component = dai->component; in aiu_fifo_enable() 49 struct aiu_fifo *fifo = dai->playback_dma_data; in aiu_fifo_enable() 59 struct snd_soc_dai *dai) in aiu_fifo_trigger() argument 65 aiu_fifo_enable(dai, true); in aiu_fifo_trigger() 70 aiu_fifo_enable(dai, false); in aiu_fifo_trigger() 80 struct snd_soc_dai *dai) in aiu_fifo_prepare() argument [all …]
|
D | meson-codec-glue.c | 9 #include <sound/soc-dai.h> 39 static void meson_codec_glue_input_set_data(struct snd_soc_dai *dai, in meson_codec_glue_input_set_data() argument 42 dai->playback_dma_data = data; in meson_codec_glue_input_set_data() 46 meson_codec_glue_input_get_data(struct snd_soc_dai *dai) in meson_codec_glue_input_get_data() argument 48 return dai->playback_dma_data; in meson_codec_glue_input_get_data() 57 struct snd_soc_dai *dai; in meson_codec_glue_output_get_input_data() local 62 dai = in->priv; in meson_codec_glue_output_get_input_data() 64 return meson_codec_glue_input_get_data(dai); in meson_codec_glue_output_get_input_data() 69 struct snd_soc_dai *dai) in meson_codec_glue_input_hw_params() argument 72 meson_codec_glue_input_get_data(dai); in meson_codec_glue_input_hw_params() [all …]
|
/Linux-v6.1/sound/soc/intel/avs/ |
D | pcm.c | 34 avs_dai_find_path_template(struct snd_soc_dai *dai, bool is_fe, int direction) in avs_dai_find_path_template() argument 41 dw = dai->capture_widget; in avs_dai_find_path_template() 44 dw = dai->playback_widget; in avs_dai_find_path_template() 58 static int avs_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_dai *dai, bool is_fe) in avs_dai_startup() argument 63 template = avs_dai_find_path_template(dai, is_fe, substream->stream); in avs_dai_startup() 65 dev_err(dai->dev, "no %s path for dai %s, invalid tplg?\n", in avs_dai_startup() 66 snd_pcm_stream_str(substream), dai->name); in avs_dai_startup() 75 snd_soc_dai_set_dma_data(dai, substream, data); in avs_dai_startup() 82 struct snd_pcm_hw_params *be_hw_params, struct snd_soc_dai *dai, in avs_dai_hw_params() argument 87 struct avs_dev *adev = to_avs_dev(dai->dev); in avs_dai_hw_params() [all …]
|
/Linux-v6.1/sound/soc/ux500/ |
D | ux500_msp_dai.c | 21 #include <sound/soc-dai.h> 28 static int setup_pcm_multichan(struct snd_soc_dai *dai, in setup_pcm_multichan() argument 31 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in setup_pcm_multichan() 52 dev_dbg(dai->dev, in setup_pcm_multichan() 61 static int setup_frameper(struct snd_soc_dai *dai, unsigned int rate, in setup_frameper() argument 64 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in setup_frameper() 90 dev_err(dai->dev, in setup_frameper() 109 dev_err(dai->dev, in setup_frameper() 118 dev_dbg(dai->dev, "%s: Clocks per frame: %u\n", in setup_frameper() 125 static int setup_pcm_framing(struct snd_soc_dai *dai, unsigned int rate, in setup_pcm_framing() argument [all …]
|
/Linux-v6.1/arch/arm64/boot/dts/amlogic/ |
D | meson-g12b-gtking.dts | 23 #sound-dai-cells = <0>; 50 dai-link-0 { 51 sound-dai = <&frddr_a>; 54 dai-link-1 { 55 sound-dai = <&frddr_b>; 58 dai-link-2 { 59 sound-dai = <&frddr_c>; 63 dai-link-3 { 64 sound-dai = <&tdmif_b>; 65 dai-format = "i2s"; [all …]
|
D | meson-g12b-ugoos-am6.dts | 18 #sound-dai-cells = <0>; 45 dai-link-0 { 46 sound-dai = <&frddr_a>; 49 dai-link-1 { 50 sound-dai = <&frddr_b>; 53 dai-link-2 { 54 sound-dai = <&frddr_c>; 58 dai-link-3 { 59 sound-dai = <&tdmif_b>; 60 dai-format = "i2s"; [all …]
|
/Linux-v6.1/sound/soc/fsl/ |
D | imx-spdif.c | 10 struct snd_soc_dai_link dai; member 35 data->dai.cpus = &comp[0]; in imx_spdif_audio_probe() 36 data->dai.codecs = &comp[1]; in imx_spdif_audio_probe() 37 data->dai.platforms = &comp[2]; in imx_spdif_audio_probe() 39 data->dai.num_cpus = 1; in imx_spdif_audio_probe() 40 data->dai.num_codecs = 1; in imx_spdif_audio_probe() 41 data->dai.num_platforms = 1; in imx_spdif_audio_probe() 43 data->dai.name = "S/PDIF PCM"; in imx_spdif_audio_probe() 44 data->dai.stream_name = "S/PDIF PCM"; in imx_spdif_audio_probe() 45 data->dai.codecs->dai_name = "snd-soc-dummy-dai"; in imx_spdif_audio_probe() [all …]
|
D | imx-audmix.c | 29 struct snd_soc_dai_link *dai; member 87 /* set DAI configuration */ in imx_audmix_fe_hw_params() 90 dev_err(dev, "failed to set cpu dai fmt: %d\n", ret); in imx_audmix_fe_hw_params() 107 dev_err(dev, "failed to set cpu dai tdm slot: %d\n", ret); in imx_audmix_fe_hw_params() 127 /* set AUDMIX DAI configuration */ in imx_audmix_be_hw_params() 130 dev_err(dev, "failed to set AUDMIX DAI fmt: %d\n", ret); in imx_audmix_be_hw_params() 188 priv->dai = devm_kcalloc(&pdev->dev, priv->num_dai, in imx_audmix_probe() 190 if (!priv->dai) in imx_audmix_probe() 232 dev_info(pdev->dev.parent, "DAI FE name:%s\n", dai_name); in imx_audmix_probe() 241 priv->dai[i].cpus = &dlc[0]; in imx_audmix_probe() [all …]
|
D | imx-rpmsg.c | 20 struct snd_soc_dai_link dai; member 78 data->dai.cpus = &dlc[0]; in imx_rpmsg_probe() 79 data->dai.num_cpus = 1; in imx_rpmsg_probe() 80 data->dai.platforms = &dlc[1]; in imx_rpmsg_probe() 81 data->dai.num_platforms = 1; in imx_rpmsg_probe() 82 data->dai.codecs = &dlc[2]; in imx_rpmsg_probe() 83 data->dai.num_codecs = 1; in imx_rpmsg_probe() 85 data->dai.name = "rpmsg hifi"; in imx_rpmsg_probe() 86 data->dai.stream_name = "rpmsg hifi"; in imx_rpmsg_probe() 87 data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | in imx_rpmsg_probe() [all …]
|
/Linux-v6.1/sound/soc/mediatek/common/ |
D | mtk-afe-platform-driver.c | 18 struct mtk_base_afe_dai *dai; in mtk_afe_combine_sub_dai() local 21 /* calcualte total dai driver size */ in mtk_afe_combine_sub_dai() 22 list_for_each_entry(dai, &afe->sub_dais, list) { in mtk_afe_combine_sub_dai() 23 num_dai_drivers += dai->num_dai_drivers; in mtk_afe_combine_sub_dai() 26 dev_info(afe->dev, "%s(), num of dai %zd\n", __func__, num_dai_drivers); in mtk_afe_combine_sub_dai() 37 list_for_each_entry(dai, &afe->sub_dais, list) { in mtk_afe_combine_sub_dai() 38 /* dai driver */ in mtk_afe_combine_sub_dai() 40 dai->dai_drivers, in mtk_afe_combine_sub_dai() 41 dai->num_dai_drivers * in mtk_afe_combine_sub_dai() 43 dai_idx += dai->num_dai_drivers; in mtk_afe_combine_sub_dai() [all …]
|