mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 05:26:07 +00:00
ASoC: bcm: 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 these CPU side drivers to use the new direct callback. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220519154318.2153729-6-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
fee11f7084
commit
04ea240446
@ -133,8 +133,8 @@ static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev)
|
||||
return;
|
||||
|
||||
switch (provider) {
|
||||
case SND_SOC_DAIFMT_CBC_CFC:
|
||||
case SND_SOC_DAIFMT_CBC_CFP:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_BP_FC:
|
||||
clk_prepare_enable(dev->clk);
|
||||
dev->clk_prepared = true;
|
||||
break;
|
||||
@ -385,12 +385,12 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
/* Check if CPU is bit clock provider */
|
||||
switch (dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBC_CFC:
|
||||
case SND_SOC_DAIFMT_CBC_CFP:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_BP_FC:
|
||||
bit_clock_provider = true;
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBP_CFC:
|
||||
case SND_SOC_DAIFMT_CBP_CFP:
|
||||
case SND_SOC_DAIFMT_BC_FP:
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
bit_clock_provider = false;
|
||||
break;
|
||||
default:
|
||||
@ -399,12 +399,12 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
/* Check if CPU is frame sync provider */
|
||||
switch (dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBC_CFC:
|
||||
case SND_SOC_DAIFMT_CBP_CFC:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
case SND_SOC_DAIFMT_BC_FP:
|
||||
frame_sync_provider = true;
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBC_CFP:
|
||||
case SND_SOC_DAIFMT_CBP_CFP:
|
||||
case SND_SOC_DAIFMT_BP_FC:
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
frame_sync_provider = false;
|
||||
break;
|
||||
default:
|
||||
@ -743,7 +743,7 @@ static const struct snd_soc_dai_ops bcm2835_i2s_dai_ops = {
|
||||
.prepare = bcm2835_i2s_prepare,
|
||||
.trigger = bcm2835_i2s_trigger,
|
||||
.hw_params = bcm2835_i2s_hw_params,
|
||||
.set_fmt = bcm2835_i2s_set_dai_fmt,
|
||||
.set_fmt_new = bcm2835_i2s_set_dai_fmt,
|
||||
.set_bclk_ratio = bcm2835_i2s_set_dai_bclk_ratio,
|
||||
.set_tdm_slot = bcm2835_i2s_set_dai_tdm_slot,
|
||||
};
|
||||
|
@ -849,11 +849,11 @@ static int cygnus_ssp_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
|
||||
ssp_newcfg = 0;
|
||||
|
||||
switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBP_CFP:
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
ssp_newcfg |= BIT(I2S_OUT_CFGX_SLAVE_MODE);
|
||||
aio->is_slave = 1;
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBC_CFC:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
ssp_newcfg &= ~BIT(I2S_OUT_CFGX_SLAVE_MODE);
|
||||
aio->is_slave = 0;
|
||||
break;
|
||||
@ -1148,7 +1148,7 @@ static const struct snd_soc_dai_ops cygnus_ssp_dai_ops = {
|
||||
.shutdown = cygnus_ssp_shutdown,
|
||||
.trigger = cygnus_ssp_trigger,
|
||||
.hw_params = cygnus_ssp_hw_params,
|
||||
.set_fmt = cygnus_ssp_set_fmt,
|
||||
.set_fmt_new = cygnus_ssp_set_fmt,
|
||||
.set_sysclk = cygnus_ssp_set_sysclk,
|
||||
.set_tdm_slot = cygnus_set_dai_tdm_slot,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user