Lines Matching refs:dai
107 int cowork_source_id; //dai id
246 static int is_cowork_mode(struct snd_soc_dai *dai)
248 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
252 if (!is_valid_etdm_dai(dai->id))
254 etdm_data = afe_priv->dai_priv[dai->id];
278 static int get_etdm_cowork_master_id(struct snd_soc_dai *dai)
280 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
285 if (!is_valid_etdm_dai(dai->id))
287 etdm_data = afe_priv->dai_priv[dai->id];
291 dai_id = dai->id;
1863 /* dai ops */
2175 struct snd_soc_dai *dai)
2180 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2192 if (is_cowork_mode(dai)) {
2193 mst_dai_id = get_etdm_cowork_master_id(dai);
2218 if (!is_valid_etdm_dai(dai->id))
2220 mst_etdm_data = afe_priv->dai_priv[dai->id];
2225 bit_width, dai->id);
2273 static int mtk_dai_etdm_set_sysclk(struct snd_soc_dai *dai,
2276 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2281 dev_dbg(dai->dev, "%s id %d freq %u, dir %d\n",
2282 __func__, dai->id, freq, dir);
2283 if (is_cowork_mode(dai))
2284 dai_id = get_etdm_cowork_master_id(dai);
2286 dai_id = dai->id;
2295 static int mtk_dai_etdm_set_tdm_slot(struct snd_soc_dai *dai,
2299 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2304 if (is_cowork_mode(dai))
2305 dai_id = get_etdm_cowork_master_id(dai);
2307 dai_id = dai->id;
2313 dev_dbg(dai->dev, "%s id %d slot_width %d\n",
2314 __func__, dai->id, slot_width);
2321 static int mtk_dai_etdm_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
2323 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2327 if (!is_valid_etdm_dai(dai->id))
2329 etdm_data = afe_priv->dai_priv[dai->id];
2416 struct snd_soc_dai *dai)
2418 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2427 if (!is_valid_etdm_dai(dai->id))
2429 etdm_data = afe_priv->dai_priv[dai->id];
2432 if (dai->id == MT8188_AFE_IO_DPTX) {
2453 ret = mtk_dai_etdm_configure(afe, rate, channels, width, dai->id);
2458 static int mtk_dai_hdmitx_dptx_set_sysclk(struct snd_soc_dai *dai,
2463 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2467 if (!is_valid_etdm_dai(dai->id))
2469 etdm_data = afe_priv->dai_priv[dai->id];
2471 dev_dbg(dai->dev, "%s id %d freq %u, dir %d\n",
2472 __func__, dai->id, freq, dir);
2475 return mtk_dai_etdm_cal_mclk(afe, freq, dai->id);
2491 /* dai driver */
2697 struct mtk_base_afe_dai *dai;
2699 dai = devm_kzalloc(afe->dev, sizeof(*dai), GFP_KERNEL);
2700 if (!dai)
2703 list_add(&dai->list, &afe->sub_dais);
2705 dai->dai_drivers = mtk_dai_etdm_driver;
2706 dai->num_dai_drivers = ARRAY_SIZE(mtk_dai_etdm_driver);
2708 dai->dapm_widgets = mtk_dai_etdm_widgets;
2709 dai->num_dapm_widgets = ARRAY_SIZE(mtk_dai_etdm_widgets);
2710 dai->dapm_routes = mtk_dai_etdm_routes;
2711 dai->num_dapm_routes = ARRAY_SIZE(mtk_dai_etdm_routes);
2712 dai->controls = mtk_dai_etdm_controls;
2713 dai->num_controls = ARRAY_SIZE(mtk_dai_etdm_controls);