Lines Matching full:dai
317 struct snd_soc_dai *dai) in tegra_admaif_prepare() argument
319 return tegra_isomgr_adma_setbw(substream, dai, true); in tegra_admaif_prepare()
323 struct snd_soc_dai *dai) in tegra_admaif_shutdown() argument
325 tegra_isomgr_adma_setbw(substream, dai, false); in tegra_admaif_shutdown()
330 struct snd_soc_dai *dai) in tegra_admaif_hw_params() argument
332 struct device *dev = dai->dev; in tegra_admaif_hw_params()
333 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai); in tegra_admaif_hw_params()
372 reg = CH_TX_REG(TEGRA_ADMAIF_CH_ACIF_TX_CTRL, dai->id); in tegra_admaif_hw_params()
375 reg = CH_RX_REG(TEGRA_ADMAIF_CH_ACIF_RX_CTRL, dai->id); in tegra_admaif_hw_params()
378 cif_conf.mono_conv = admaif->mono_to_stereo[path][dai->id]; in tegra_admaif_hw_params()
379 cif_conf.stereo_conv = admaif->stereo_to_mono[path][dai->id]; in tegra_admaif_hw_params()
391 static int tegra_admaif_start(struct snd_soc_dai *dai, int direction) in tegra_admaif_start() argument
393 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai); in tegra_admaif_start()
400 reg = CH_TX_REG(TEGRA_ADMAIF_TX_ENABLE, dai->id); in tegra_admaif_start()
405 reg = CH_RX_REG(TEGRA_ADMAIF_RX_ENABLE, dai->id); in tegra_admaif_start()
416 static int tegra_admaif_stop(struct snd_soc_dai *dai, int direction) in tegra_admaif_stop() argument
418 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai); in tegra_admaif_stop()
428 enable_reg = CH_TX_REG(TEGRA_ADMAIF_TX_ENABLE, dai->id); in tegra_admaif_stop()
429 status_reg = CH_TX_REG(TEGRA_ADMAIF_TX_STATUS, dai->id); in tegra_admaif_stop()
430 reset_reg = CH_TX_REG(TEGRA_ADMAIF_TX_SOFT_RESET, dai->id); in tegra_admaif_stop()
436 enable_reg = CH_RX_REG(TEGRA_ADMAIF_RX_ENABLE, dai->id); in tegra_admaif_stop()
437 status_reg = CH_RX_REG(TEGRA_ADMAIF_RX_STATUS, dai->id); in tegra_admaif_stop()
438 reset_reg = CH_RX_REG(TEGRA_ADMAIF_RX_SOFT_RESET, dai->id); in tegra_admaif_stop()
451 dev_warn(dai->dev, "timeout: failed to disable ADMAIF%d_%s\n", in tegra_admaif_stop()
452 dai->id + 1, dir_name); in tegra_admaif_stop()
462 dev_err(dai->dev, "timeout: SW reset failed for ADMAIF%d_%s\n", in tegra_admaif_stop()
463 dai->id + 1, dir_name); in tegra_admaif_stop()
471 struct snd_soc_dai *dai) in tegra_admaif_trigger() argument
483 return tegra_admaif_start(dai, substream->stream); in tegra_admaif_trigger()
487 return tegra_admaif_stop(dai, substream->stream); in tegra_admaif_trigger()
609 static int tegra_admaif_dai_probe(struct snd_soc_dai *dai) in tegra_admaif_dai_probe() argument
611 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai); in tegra_admaif_dai_probe()
613 snd_soc_dai_init_dma_data(dai, &admaif->playback_dma_data[dai->id], in tegra_admaif_dai_probe()
614 &admaif->capture_dma_data[dai->id]); in tegra_admaif_dai_probe()
627 #define DAI(dai_name, channel) \ macro
654 DAI("ADMAIF1", TEGRA210_ADMAIF_MAX_CHANNEL),
655 DAI("ADMAIF2", TEGRA210_ADMAIF_MAX_CHANNEL),
656 DAI("ADMAIF3", TEGRA210_ADMAIF_MAX_CHANNEL),
657 DAI("ADMAIF4", TEGRA210_ADMAIF_MAX_CHANNEL),
658 DAI("ADMAIF5", TEGRA210_ADMAIF_MAX_CHANNEL),
659 DAI("ADMAIF6", TEGRA210_ADMAIF_MAX_CHANNEL),
660 DAI("ADMAIF7", TEGRA210_ADMAIF_MAX_CHANNEL),
661 DAI("ADMAIF8", TEGRA210_ADMAIF_MAX_CHANNEL),
662 DAI("ADMAIF9", TEGRA210_ADMAIF_MAX_CHANNEL),
663 DAI("ADMAIF10", TEGRA210_ADMAIF_MAX_CHANNEL),
667 DAI("ADMAIF1", TEGRA186_ADMAIF_MAX_CHANNEL),
668 DAI("ADMAIF2", TEGRA186_ADMAIF_MAX_CHANNEL),
669 DAI("ADMAIF3", TEGRA186_ADMAIF_MAX_CHANNEL),
670 DAI("ADMAIF4", TEGRA186_ADMAIF_MAX_CHANNEL),
671 DAI("ADMAIF5", TEGRA186_ADMAIF_MAX_CHANNEL),
672 DAI("ADMAIF6", TEGRA186_ADMAIF_MAX_CHANNEL),
673 DAI("ADMAIF7", TEGRA186_ADMAIF_MAX_CHANNEL),
674 DAI("ADMAIF8", TEGRA186_ADMAIF_MAX_CHANNEL),
675 DAI("ADMAIF9", TEGRA186_ADMAIF_MAX_CHANNEL),
676 DAI("ADMAIF10", TEGRA186_ADMAIF_MAX_CHANNEL),
677 DAI("ADMAIF11", TEGRA186_ADMAIF_MAX_CHANNEL),
678 DAI("ADMAIF12", TEGRA186_ADMAIF_MAX_CHANNEL),
679 DAI("ADMAIF13", TEGRA186_ADMAIF_MAX_CHANNEL),
680 DAI("ADMAIF14", TEGRA186_ADMAIF_MAX_CHANNEL),
681 DAI("ADMAIF15", TEGRA186_ADMAIF_MAX_CHANNEL),
682 DAI("ADMAIF16", TEGRA186_ADMAIF_MAX_CHANNEL),
683 DAI("ADMAIF17", TEGRA186_ADMAIF_MAX_CHANNEL),
684 DAI("ADMAIF18", TEGRA186_ADMAIF_MAX_CHANNEL),
685 DAI("ADMAIF19", TEGRA186_ADMAIF_MAX_CHANNEL),
686 DAI("ADMAIF20", TEGRA186_ADMAIF_MAX_CHANNEL),
690 DAI("ADMAIF1", TEGRA264_ADMAIF_MAX_CHANNEL),
691 DAI("ADMAIF2", TEGRA264_ADMAIF_MAX_CHANNEL),
692 DAI("ADMAIF3", TEGRA264_ADMAIF_MAX_CHANNEL),
693 DAI("ADMAIF4", TEGRA264_ADMAIF_MAX_CHANNEL),
694 DAI("ADMAIF5", TEGRA264_ADMAIF_MAX_CHANNEL),
695 DAI("ADMAIF6", TEGRA264_ADMAIF_MAX_CHANNEL),
696 DAI("ADMAIF7", TEGRA264_ADMAIF_MAX_CHANNEL),
697 DAI("ADMAIF8", TEGRA264_ADMAIF_MAX_CHANNEL),
698 DAI("ADMAIF9", TEGRA264_ADMAIF_MAX_CHANNEL),
699 DAI("ADMAIF10", TEGRA264_ADMAIF_MAX_CHANNEL),
700 DAI("ADMAIF11", TEGRA264_ADMAIF_MAX_CHANNEL),
701 DAI("ADMAIF12", TEGRA264_ADMAIF_MAX_CHANNEL),
702 DAI("ADMAIF13", TEGRA264_ADMAIF_MAX_CHANNEL),
703 DAI("ADMAIF14", TEGRA264_ADMAIF_MAX_CHANNEL),
704 DAI("ADMAIF15", TEGRA264_ADMAIF_MAX_CHANNEL),
705 DAI("ADMAIF16", TEGRA264_ADMAIF_MAX_CHANNEL),
706 DAI("ADMAIF17", TEGRA264_ADMAIF_MAX_CHANNEL),
707 DAI("ADMAIF18", TEGRA264_ADMAIF_MAX_CHANNEL),
708 DAI("ADMAIF19", TEGRA264_ADMAIF_MAX_CHANNEL),
709 DAI("ADMAIF20", TEGRA264_ADMAIF_MAX_CHANNEL),
710 DAI("ADMAIF21", TEGRA264_ADMAIF_MAX_CHANNEL),
711 DAI("ADMAIF22", TEGRA264_ADMAIF_MAX_CHANNEL),
712 DAI("ADMAIF23", TEGRA264_ADMAIF_MAX_CHANNEL),
713 DAI("ADMAIF24", TEGRA264_ADMAIF_MAX_CHANNEL),
714 DAI("ADMAIF25", TEGRA264_ADMAIF_MAX_CHANNEL),
715 DAI("ADMAIF26", TEGRA264_ADMAIF_MAX_CHANNEL),
716 DAI("ADMAIF27", TEGRA264_ADMAIF_MAX_CHANNEL),
717 DAI("ADMAIF28", TEGRA264_ADMAIF_MAX_CHANNEL),
718 DAI("ADMAIF29", TEGRA264_ADMAIF_MAX_CHANNEL),
719 DAI("ADMAIF30", TEGRA264_ADMAIF_MAX_CHANNEL),
720 DAI("ADMAIF31", TEGRA264_ADMAIF_MAX_CHANNEL),
721 DAI("ADMAIF32", TEGRA264_ADMAIF_MAX_CHANNEL),