Lines Matching refs:dai

115 	int cowork_source_id; //dai id
267 static int is_cowork_mode(struct snd_soc_dai *dai)
269 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
273 if (!mt8195_afe_etdm_is_valid(dai->id))
276 etdm_data = afe_priv->dai_priv[dai->id];
299 static int get_etdm_cowork_master_id(struct snd_soc_dai *dai)
301 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
306 if (!mt8195_afe_etdm_is_valid(dai->id))
309 etdm_data = afe_priv->dai_priv[dai->id];
313 dai_id = dai->id;
1575 /* dai ops */
1577 struct snd_soc_dai *dai)
1579 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
1587 if (is_cowork_mode(dai)) {
1588 mst_dai_id = get_etdm_cowork_master_id(dai);
1607 mtk_dai_etdm_enable_mclk(afe, dai->id);
1609 cg_id = mtk_dai_etdm_get_cg_id_by_dai_id(dai->id);
1618 struct snd_soc_dai *dai)
1620 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
1628 if (is_cowork_mode(dai)) {
1629 mst_dai_id = get_etdm_cowork_master_id(dai);
1647 cg_id = mtk_dai_etdm_get_cg_id_by_dai_id(dai->id);
1651 mtk_dai_etdm_disable_mclk(afe, dai->id);
2040 struct snd_soc_dai *dai)
2046 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2057 if (is_cowork_mode(dai)) {
2058 mst_dai_id = get_etdm_cowork_master_id(dai);
2084 ret = mtk_dai_etdm_mclk_configure(afe, dai->id);
2089 bit_width, dai->id);
2096 struct snd_soc_dai *dai)
2099 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2106 dev_dbg(afe->dev, "%s(), cmd %d, dai id %d\n", __func__, cmd, dai->id);
2110 if (is_cowork_mode(dai)) {
2111 mst_dai_id = get_etdm_cowork_master_id(dai);
2124 ret = mt8195_afe_enable_etdm(afe, dai->id);
2129 if (is_cowork_mode(dai)) {
2130 mst_dai_id = get_etdm_cowork_master_id(dai);
2143 ret = mt8195_afe_disable_etdm(afe, dai->id);
2187 static int mtk_dai_etdm_set_sysclk(struct snd_soc_dai *dai,
2190 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2195 dev_dbg(dai->dev, "%s id %d freq %u, dir %d\n",
2196 __func__, dai->id, freq, dir);
2197 if (is_cowork_mode(dai))
2198 dai_id = get_etdm_cowork_master_id(dai);
2200 dai_id = dai->id;
2210 static int mtk_dai_etdm_set_tdm_slot(struct snd_soc_dai *dai,
2214 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2218 if (!mt8195_afe_etdm_is_valid(dai->id))
2221 etdm_data = afe_priv->dai_priv[dai->id];
2222 dev_dbg(dai->dev, "%s id %d slot_width %d\n",
2223 __func__, dai->id, slot_width);
2230 static int mtk_dai_etdm_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
2232 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2236 if (!mt8195_afe_etdm_is_valid(dai->id))
2239 etdm_data = afe_priv->dai_priv[dai->id];
2296 struct snd_soc_dai *dai)
2298 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2300 int cg_id = mtk_dai_etdm_get_cg_id_by_dai_id(dai->id);
2305 mtk_dai_etdm_enable_mclk(afe, dai->id);
2311 struct snd_soc_dai *dai)
2313 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2315 int cg_id = mtk_dai_etdm_get_cg_id_by_dai_id(dai->id);
2317 mtk_dai_etdm_disable_mclk(afe, dai->id);
2353 struct snd_soc_dai *dai)
2355 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2364 if (!mt8195_afe_hdmitx_dptx_is_valid(dai->id))
2367 etdm_data = afe_priv->dai_priv[dai->id];
2370 if (dai->id == MT8195_AFE_IO_DPTX) {
2391 ret = mtk_dai_etdm_mclk_configure(afe, dai->id);
2395 ret = mtk_dai_etdm_configure(afe, rate, channels, width, dai->id);
2402 struct snd_soc_dai *dai)
2404 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2407 dev_dbg(afe->dev, "%s(), cmd %d, dai id %d\n", __func__, cmd, dai->id);
2413 if (dai->id == MT8195_AFE_IO_DPTX)
2419 ret = mt8195_afe_enable_etdm(afe, dai->id);
2424 ret = mt8195_afe_disable_etdm(afe, dai->id);
2427 if (dai->id == MT8195_AFE_IO_DPTX)
2438 static int mtk_dai_hdmitx_dptx_set_sysclk(struct snd_soc_dai *dai,
2443 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2447 if (!mt8195_afe_hdmitx_dptx_is_valid(dai->id))
2450 etdm_data = afe_priv->dai_priv[dai->id];
2452 dev_dbg(dai->dev, "%s id %d freq %u, dir %d\n",
2453 __func__, dai->id, freq, dir);
2456 return mtk_dai_etdm_cal_mclk(afe, freq, dai->id);
2459 /* dai driver */
2466 static int mtk_dai_etdm_probe(struct snd_soc_dai *dai)
2468 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
2472 dev_dbg(dai->dev, "%s id %d\n", __func__, dai->id);
2474 if (!mt8195_afe_etdm_is_valid(dai->id))
2477 etdm_data = afe_priv->dai_priv[dai->id];
2482 mtk_dai_etdm_mclk_configure(afe, dai->id);
2483 mtk_dai_etdm_enable_mclk(afe, dai->id);
2607 dev_err(afe->dev, "%s invalid dai id %d\n",
2648 dev_err(afe->dev, "%s invalid dai id %d\n",
2760 struct mtk_base_afe_dai *dai;
2762 dai = devm_kzalloc(afe->dev, sizeof(*dai), GFP_KERNEL);
2763 if (!dai)
2766 list_add(&dai->list, &afe->sub_dais);
2768 dai->dai_drivers = mtk_dai_etdm_driver;
2769 dai->num_dai_drivers = ARRAY_SIZE(mtk_dai_etdm_driver);
2771 dai->dapm_widgets = mtk_dai_etdm_widgets;
2772 dai->num_dapm_widgets = ARRAY_SIZE(mtk_dai_etdm_widgets);
2773 dai->dapm_routes = mtk_dai_etdm_routes;
2774 dai->num_dapm_routes = ARRAY_SIZE(mtk_dai_etdm_routes);
2775 dai->controls = mtk_dai_etdm_controls;
2776 dai->num_controls = ARRAY_SIZE(mtk_dai_etdm_controls);