mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
ASoC: ux500: Update to use set_fmt_new callback
As part of updating the core to directly tell drivers if they are clock provider or consumer update this CPU side driver to use the new direct callback. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220519154318.2153729-27-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
563ff63dc9
commit
ce3467c784
@ -191,8 +191,8 @@ static int setup_clocking(struct snd_soc_dai *dai,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBM_CFM:
|
||||
switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
dev_dbg(dai->dev, "%s: Codec is master.\n", __func__);
|
||||
|
||||
msp_config->iodelay = 0x20;
|
||||
@ -204,7 +204,7 @@ static int setup_clocking(struct snd_soc_dai *dai,
|
||||
|
||||
break;
|
||||
|
||||
case SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
dev_dbg(dai->dev, "%s: Codec is slave.\n", __func__);
|
||||
|
||||
msp_config->tx_clk_sel = TX_CLK_SEL_SRG;
|
||||
@ -328,15 +328,15 @@ static int setup_msp_config(struct snd_pcm_substream *substream,
|
||||
dev_dbg(dai->dev, "%s: rate: %u, channels: %d.\n", __func__,
|
||||
runtime->rate, runtime->channels);
|
||||
switch (fmt &
|
||||
(SND_SOC_DAIFMT_FORMAT_MASK | SND_SOC_DAIFMT_MASTER_MASK)) {
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS:
|
||||
(SND_SOC_DAIFMT_FORMAT_MASK | SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK)) {
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_BP_FP:
|
||||
dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__);
|
||||
|
||||
msp_config->default_protdesc = 1;
|
||||
msp_config->protocol = MSP_I2S_PROTOCOL;
|
||||
break;
|
||||
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_BC_FC:
|
||||
dev_dbg(dai->dev, "%s: SND_SOC_DAIFMT_I2S.\n", __func__);
|
||||
|
||||
msp_config->data_size = MSP_DATA_BITS_16;
|
||||
@ -348,10 +348,10 @@ static int setup_msp_config(struct snd_pcm_substream *substream,
|
||||
|
||||
break;
|
||||
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_BC_FC:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_BC_FC:
|
||||
dev_dbg(dai->dev, "%s: PCM format.\n", __func__);
|
||||
|
||||
msp_config->data_size = MSP_DATA_BITS_16;
|
||||
@ -477,7 +477,7 @@ static int ux500_msp_dai_prepare(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
/* Set OPP-level */
|
||||
if ((drvdata->fmt & SND_SOC_DAIFMT_MASTER_MASK) &&
|
||||
if ((drvdata->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) &&
|
||||
(drvdata->msp->f_bitclk > 19200000)) {
|
||||
/* If the bit-clock is higher than 19.2MHz, Vape should be
|
||||
* run in 100% OPP. Only when bit-clock is used (MSP master)
|
||||
@ -544,13 +544,13 @@ static int ux500_msp_dai_set_dai_fmt(struct snd_soc_dai *dai,
|
||||
dev_dbg(dai->dev, "%s: MSP %d: Enter.\n", __func__, dai->id);
|
||||
|
||||
switch (fmt & (SND_SOC_DAIFMT_FORMAT_MASK |
|
||||
SND_SOC_DAIFMT_MASTER_MASK)) {
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM:
|
||||
SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK)) {
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_BC_FC:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_BC_FC:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_BC_FC:
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -707,7 +707,7 @@ static int ux500_msp_dai_probe(struct snd_soc_dai *dai)
|
||||
static const struct snd_soc_dai_ops ux500_msp_dai_ops[] = {
|
||||
{
|
||||
.set_sysclk = ux500_msp_dai_set_dai_sysclk,
|
||||
.set_fmt = ux500_msp_dai_set_dai_fmt,
|
||||
.set_fmt_new = ux500_msp_dai_set_dai_fmt,
|
||||
.set_tdm_slot = ux500_msp_dai_set_tdm_slot,
|
||||
.startup = ux500_msp_dai_startup,
|
||||
.shutdown = ux500_msp_dai_shutdown,
|
||||
|
Loading…
Reference in New Issue
Block a user