Lines Matching full:dai
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
128 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in setup_pcm_framing()
151 dev_err(dai->dev, in setup_pcm_framing()
167 return setup_frameper(dai, rate, prot_desc); in setup_pcm_framing()
170 static int setup_clocking(struct snd_soc_dai *dai, in setup_clocking() argument
185 dev_err(dai->dev, in setup_clocking()
194 dev_dbg(dai->dev, "%s: Codec is master.\n", __func__); in setup_clocking()
206 dev_dbg(dai->dev, "%s: Codec is slave.\n", __func__); in setup_clocking()
217 dev_err(dai->dev, "%s: Error: Unsupported master (fmt = 0x%x)!\n", in setup_clocking()
226 static int setup_pcm_protdesc(struct snd_soc_dai *dai, in setup_pcm_protdesc() argument
240 dev_dbg(dai->dev, "%s: DSP_A.\n", __func__); in setup_pcm_protdesc()
247 dev_dbg(dai->dev, "%s: DSP_B.\n", __func__); in setup_pcm_protdesc()
300 struct snd_soc_dai *dai, in setup_msp_config() argument
303 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in setup_msp_config()
321 dev_dbg(dai->dev, "%s: f_inputclk = %u, frame_freq = %u.\n", in setup_msp_config()
326 dev_dbg(dai->dev, "%s: rate: %u, channels: %d.\n", __func__, in setup_msp_config()
331 dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__); in setup_msp_config()
338 dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__); in setup_msp_config()
353 dev_dbg(dai->dev, "%s: PCM format.\n", __func__); in setup_msp_config()
358 ret = setup_pcm_protdesc(dai, fmt, prot_desc); in setup_msp_config()
362 ret = setup_pcm_multichan(dai, msp_config); in setup_msp_config()
366 ret = setup_pcm_framing(dai, runtime->rate, prot_desc); in setup_msp_config()
373 dev_err(dai->dev, "%s: Error: Unsupported format (%d)!\n", in setup_msp_config()
378 return setup_clocking(dai, fmt, msp_config); in setup_msp_config()
382 struct snd_soc_dai *dai) in ux500_msp_dai_startup() argument
385 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_startup()
387 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n", __func__, dai->id, in ux500_msp_dai_startup()
399 dev_dbg(dai->dev, "%s: Enabling MSP-clocks.\n", __func__); in ux500_msp_dai_startup()
423 struct snd_soc_dai *dai) in ux500_msp_dai_shutdown() argument
426 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_shutdown()
429 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n", __func__, dai->id, in ux500_msp_dai_shutdown()
440 dev_err(dai->dev, in ux500_msp_dai_shutdown()
442 __func__, dai->id, snd_pcm_stream_str(substream)); in ux500_msp_dai_shutdown()
452 dev_err(dai->dev, in ux500_msp_dai_shutdown()
458 struct snd_soc_dai *dai) in ux500_msp_dai_prepare() argument
461 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_prepare()
465 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter (rate = %d).\n", __func__, in ux500_msp_dai_prepare()
466 dai->id, snd_pcm_stream_str(substream), runtime->rate); in ux500_msp_dai_prepare()
468 setup_msp_config(substream, dai, &msp_config); in ux500_msp_dai_prepare()
472 dev_err(dai->dev, "%s: Error: msp_setup failed (ret = %d)!\n", in ux500_msp_dai_prepare()
497 struct snd_soc_dai *dai) in ux500_msp_dai_hw_params() argument
501 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_hw_params()
503 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter.\n", in ux500_msp_dai_hw_params()
504 __func__, dai->id, snd_pcm_stream_str(substream)); in ux500_msp_dai_hw_params()
520 dev_dbg(dai->dev, "TDM-slots active: %d", slots_active); in ux500_msp_dai_hw_params()
528 dev_err(dai->dev, in ux500_msp_dai_hw_params()
537 static int ux500_msp_dai_set_dai_fmt(struct snd_soc_dai *dai, in ux500_msp_dai_set_dai_fmt() argument
540 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_set_dai_fmt()
542 dev_dbg(dai->dev, "%s: MSP %d: Enter.\n", __func__, dai->id); in ux500_msp_dai_set_dai_fmt()
555 dev_err(dai->dev, in ux500_msp_dai_set_dai_fmt()
568 dev_err(dai->dev, in ux500_msp_dai_set_dai_fmt()
578 static int ux500_msp_dai_set_tdm_slot(struct snd_soc_dai *dai, in ux500_msp_dai_set_tdm_slot() argument
583 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_set_tdm_slot()
600 dev_err(dai->dev, "%s: Error: Unsupported slot-count (%d)!\n", in ux500_msp_dai_set_tdm_slot()
607 dev_err(dai->dev, "%s: Error: Unsupported slot-width (%d)!\n", in ux500_msp_dai_set_tdm_slot()
619 static int ux500_msp_dai_set_dai_sysclk(struct snd_soc_dai *dai, in ux500_msp_dai_set_dai_sysclk() argument
622 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_set_dai_sysclk()
624 dev_dbg(dai->dev, "%s: MSP %d: Enter. clk-id: %d, freq: %u.\n", in ux500_msp_dai_set_dai_sysclk()
625 __func__, dai->id, clk_id, freq); in ux500_msp_dai_set_dai_sysclk()
633 dev_err(dai->dev, "%s: MSP %d: Invalid clk-id (%d)!\n", in ux500_msp_dai_set_dai_sysclk()
634 __func__, dai->id, clk_id); in ux500_msp_dai_set_dai_sysclk()
642 int cmd, struct snd_soc_dai *dai) in ux500_msp_dai_trigger() argument
645 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_trigger()
647 dev_dbg(dai->dev, "%s: MSP %d (%s): Enter (msp->id = %d, cmd = %d).\n", in ux500_msp_dai_trigger()
648 __func__, dai->id, snd_pcm_stream_str(substream), in ux500_msp_dai_trigger()
656 static int ux500_msp_dai_of_probe(struct snd_soc_dai *dai) in ux500_msp_dai_of_probe() argument
658 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_of_probe()
662 playback_dma_data = devm_kzalloc(dai->dev, in ux500_msp_dai_of_probe()
668 capture_dma_data = devm_kzalloc(dai->dev, in ux500_msp_dai_of_probe()
680 snd_soc_dai_init_dma_data(dai, playback_dma_data, capture_dma_data); in ux500_msp_dai_of_probe()
685 static int ux500_msp_dai_probe(struct snd_soc_dai *dai) in ux500_msp_dai_probe() argument
687 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); in ux500_msp_dai_probe()
688 struct msp_i2s_platform_data *pdata = dai->dev->platform_data; in ux500_msp_dai_probe()
692 ret = ux500_msp_dai_of_probe(dai); in ux500_msp_dai_probe()
699 snd_soc_dai_init_dma_data(dai, in ux500_msp_dai_probe()