From 8362db7ff413e44a9fe99120404635d3e7ff4ec9 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Thu, 15 Nov 2018 16:06:54 +0800 Subject: [PATCH] ASoC: rockchip: multi_dais: add support for tdm slot set Change-Id: I6867569d9dd9dd1a5137cded4f6aa21b802a53d7 Signed-off-by: Sugar Zhang --- sound/soc/rockchip/rockchip_multi_dais.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sound/soc/rockchip/rockchip_multi_dais.c b/sound/soc/rockchip/rockchip_multi_dais.c index 46028176927e..7a789c8c7e3a 100644 --- a/sound/soc/rockchip/rockchip_multi_dais.c +++ b/sound/soc/rockchip/rockchip_multi_dais.c @@ -135,6 +135,25 @@ static int rockchip_mdais_set_fmt(struct snd_soc_dai *cpu_dai, return 0; } +static int rockchip_mdais_tdm_slot(struct snd_soc_dai *dai, + unsigned int tx_mask, unsigned int rx_mask, + int slots, int slot_width) +{ + struct rk_mdais_dev *mdais = to_info(dai); + struct snd_soc_dai *child; + int ret, i = 0; + + for (i = 0; i < mdais->num_dais; i++) { + child = mdais->dais[i].dai; + ret = snd_soc_dai_set_tdm_slot(child, tx_mask, rx_mask, + slots, slot_width); + if (ret && ret != -ENOTSUPP) + return ret; + } + + return 0; +} + static int rockchip_mdais_dai_probe(struct snd_soc_dai *dai) { struct rk_mdais_dev *mdais = to_info(dai); @@ -162,6 +181,7 @@ static const struct snd_soc_dai_ops rockchip_mdais_dai_ops = { .hw_params = rockchip_mdais_hw_params, .set_sysclk = rockchip_mdais_set_sysclk, .set_fmt = rockchip_mdais_set_fmt, + .set_tdm_slot = rockchip_mdais_tdm_slot, .trigger = rockchip_mdais_trigger, };