Commit 8d43d1bc authored by Chaithrika U S's avatar Chaithrika U S Committed by Mark Brown

ASoC: DaVinci: Add hw_param callback for S/PDIF DIT link

On TI DM6467 EVM, S/PDIF DIT codec fails to open as it is unable to install
hardware params. This dummy codec has no set_fmt and set_sysclk implementations
and calls from the application to these functions cause errors. This patch adds
a new hardware params callback function for S/PDIF transciever codec.
Signed-off-by: default avatarChaithrika U S <chaithrika@ti.com>
Tested-by: default avatarAnuj Aggarwal <anuj.aggarwal@ti.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 3a9d6202
...@@ -81,10 +81,24 @@ static int evm_hw_params(struct snd_pcm_substream *substream, ...@@ -81,10 +81,24 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
return 0; return 0;
} }
static int evm_spdif_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
/* set cpu DAI configuration */
return snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);
}
static struct snd_soc_ops evm_ops = { static struct snd_soc_ops evm_ops = {
.hw_params = evm_hw_params, .hw_params = evm_hw_params,
}; };
static struct snd_soc_ops evm_spdif_ops = {
.hw_params = evm_spdif_hw_params,
};
/* davinci-evm machine dapm widgets */ /* davinci-evm machine dapm widgets */
static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = { static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = {
SND_SOC_DAPM_HP("Headphone Jack", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL),
...@@ -165,7 +179,7 @@ static struct snd_soc_dai_link dm6467_evm_dai[] = { ...@@ -165,7 +179,7 @@ static struct snd_soc_dai_link dm6467_evm_dai[] = {
.stream_name = "spdif", .stream_name = "spdif",
.cpu_dai = &davinci_mcasp_dai[DAVINCI_MCASP_DIT_DAI], .cpu_dai = &davinci_mcasp_dai[DAVINCI_MCASP_DIT_DAI],
.codec_dai = &dit_stub_dai, .codec_dai = &dit_stub_dai,
.ops = &evm_ops, .ops = &evm_spdif_ops,
}, },
}; };
static struct snd_soc_dai_link da8xx_evm_dai = { static struct snd_soc_dai_link da8xx_evm_dai = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment