Lines Matching refs:dai
23 #include <sound/soc-dai.h>
30 static int setup_pcm_multichan(struct snd_soc_dai *dai,
33 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
54 dev_dbg(dai->dev,
63 static int setup_frameper(struct snd_soc_dai *dai, unsigned int rate,
66 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
92 dev_err(dai->dev,
111 dev_err(dai->dev,
120 dev_dbg(dai->dev, "%s: Clocks per frame: %u\n",
127 static int setup_pcm_framing(struct snd_soc_dai *dai, unsigned int rate,
130 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
153 dev_err(dai->dev,
169 return setup_frameper(dai, rate, prot_desc);
172 static int setup_clocking(struct snd_soc_dai *dai,
187 dev_err(dai->dev,
196 dev_dbg(dai->dev, "%s: Codec is master.\n", __func__);
208 dev_dbg(dai->dev, "%s: Codec is slave.\n", __func__);
219 dev_err(dai->dev, "%s: Error: Unsupported master (fmt = 0x%x)!\n",
228 static int setup_pcm_protdesc(struct snd_soc_dai *dai,
242 dev_dbg(dai->dev, "%s: DSP_A.\n", __func__);
249 dev_dbg(dai->dev, "%s: DSP_B.\n", __func__);
302 struct snd_soc_dai *dai,
305 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
323 dev_dbg(dai->dev, "%s: f_inputclk = %u, frame_freq = %u.\n",
328 dev_dbg(dai->dev, "%s: rate: %u, channels: %d.\n", __func__,
333 dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__);
340 dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__);
355 dev_dbg(dai->dev, "%s: PCM format.\n", __func__);
360 ret = setup_pcm_protdesc(dai, fmt, prot_desc);
364 ret = setup_pcm_multichan(dai, msp_config);
368 ret = setup_pcm_framing(dai, runtime->rate, prot_desc);
375 dev_err(dai->dev, "%s: Error: Unsupported format (%d)!\n",
380 return setup_clocking(dai, fmt, msp_config);
384 struct snd_soc_dai *dai)
387 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
389 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n", __func__, dai->id,
401 dev_dbg(dai->dev, "%s: Enabling MSP-clocks.\n", __func__);
425 struct snd_soc_dai *dai)
428 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
431 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n", __func__, dai->id,
442 dev_err(dai->dev,
444 __func__, dai->id, snd_pcm_stream_str(substream));
454 dev_err(dai->dev,
460 struct snd_soc_dai *dai)
463 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
467 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter (rate = %d).\n", __func__,
468 dai->id, snd_pcm_stream_str(substream), runtime->rate);
470 setup_msp_config(substream, dai, &msp_config);
474 dev_err(dai->dev, "%s: Error: msp_setup failed (ret = %d)!\n",
499 struct snd_soc_dai *dai)
503 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
505 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n",
506 __func__, dai->id, snd_pcm_stream_str(substream));
522 dev_dbg(dai->dev, "TDM-slots active: %d", slots_active);
530 dev_err(dai->dev,
539 static int ux500_msp_dai_set_dai_fmt(struct snd_soc_dai *dai,
542 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
544 dev_dbg(dai->dev, "%s: MSP %d: Enter.\n", __func__, dai->id);
557 dev_err(dai->dev,
570 dev_err(dai->dev,
580 static int ux500_msp_dai_set_tdm_slot(struct snd_soc_dai *dai,
585 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
602 dev_err(dai->dev, "%s: Error: Unsupported slot-count (%d)!\n",
609 dev_err(dai->dev, "%s: Error: Unsupported slot-width (%d)!\n",
621 static int ux500_msp_dai_set_dai_sysclk(struct snd_soc_dai *dai,
624 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
626 dev_dbg(dai->dev, "%s: MSP %d: Enter. clk-id: %d, freq: %u.\n",
627 __func__, dai->id, clk_id, freq);
635 dev_err(dai->dev, "%s: MSP %d: Invalid clk-id (%d)!\n",
636 __func__, dai->id, clk_id);
644 int cmd, struct snd_soc_dai *dai)
647 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
649 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter (msp->id = %d, cmd = %d).\n",
650 __func__, dai->id, snd_pcm_stream_str(substream),
658 static int ux500_msp_dai_of_probe(struct snd_soc_dai *dai)
660 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
664 playback_dma_data = devm_kzalloc(dai->dev,
670 capture_dma_data = devm_kzalloc(dai->dev,
682 snd_soc_dai_init_dma_data(dai, playback_dma_data, capture_dma_data);
687 static int ux500_msp_dai_probe(struct snd_soc_dai *dai)
689 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
690 struct msp_i2s_platform_data *pdata = dai->dev->platform_data;
694 ret = ux500_msp_dai_of_probe(dai);
701 snd_soc_dai_init_dma_data(dai,