Commit a91b0e5b authored by Mark Brown's avatar Mark Brown

ASoC: bcm: Convert to modern clocking terminology

As part of the effort to remove our old APIs based on outdated terminology
update the Broadcom drivers to use modern terminology.
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210916143423.24025-1-broonie@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 99a26f24
...@@ -127,14 +127,14 @@ struct bcm2835_i2s_dev { ...@@ -127,14 +127,14 @@ struct bcm2835_i2s_dev {
static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev) static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev)
{ {
unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK; unsigned int provider = dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK;
if (dev->clk_prepared) if (dev->clk_prepared)
return; return;
switch (master) { switch (provider) {
case SND_SOC_DAIFMT_CBS_CFS: case SND_SOC_DAIFMT_CBC_CFC:
case SND_SOC_DAIFMT_CBS_CFM: case SND_SOC_DAIFMT_CBC_CFP:
clk_prepare_enable(dev->clk); clk_prepare_enable(dev->clk);
dev->clk_prepared = true; dev->clk_prepared = true;
break; break;
...@@ -337,8 +337,8 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -337,8 +337,8 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
unsigned int rx_mask, tx_mask; unsigned int rx_mask, tx_mask;
unsigned int rx_ch1_pos, rx_ch2_pos, tx_ch1_pos, tx_ch2_pos; unsigned int rx_ch1_pos, rx_ch2_pos, tx_ch1_pos, tx_ch2_pos;
unsigned int mode, format; unsigned int mode, format;
bool bit_clock_master = false; bool bit_clock_provider = false;
bool frame_sync_master = false; bool frame_sync_provider = false;
bool frame_start_falling_edge = false; bool frame_start_falling_edge = false;
uint32_t csreg; uint32_t csreg;
int ret = 0; int ret = 0;
...@@ -383,36 +383,36 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -383,36 +383,36 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
if (data_length > slot_width) if (data_length > slot_width)
return -EINVAL; return -EINVAL;
/* Check if CPU is bit clock master */ /* Check if CPU is bit clock provider */
switch (dev->fmt & SND_SOC_DAIFMT_MASTER_MASK) { switch (dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
case SND_SOC_DAIFMT_CBS_CFS: case SND_SOC_DAIFMT_CBC_CFC:
case SND_SOC_DAIFMT_CBS_CFM: case SND_SOC_DAIFMT_CBC_CFP:
bit_clock_master = true; bit_clock_provider = true;
break; break;
case SND_SOC_DAIFMT_CBM_CFS: case SND_SOC_DAIFMT_CBP_CFC:
case SND_SOC_DAIFMT_CBM_CFM: case SND_SOC_DAIFMT_CBP_CFP:
bit_clock_master = false; bit_clock_provider = false;
break; break;
default: default:
return -EINVAL; return -EINVAL;
} }
/* Check if CPU is frame sync master */ /* Check if CPU is frame sync provider */
switch (dev->fmt & SND_SOC_DAIFMT_MASTER_MASK) { switch (dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
case SND_SOC_DAIFMT_CBS_CFS: case SND_SOC_DAIFMT_CBC_CFC:
case SND_SOC_DAIFMT_CBM_CFS: case SND_SOC_DAIFMT_CBP_CFC:
frame_sync_master = true; frame_sync_provider = true;
break; break;
case SND_SOC_DAIFMT_CBS_CFM: case SND_SOC_DAIFMT_CBC_CFP:
case SND_SOC_DAIFMT_CBM_CFM: case SND_SOC_DAIFMT_CBP_CFP:
frame_sync_master = false; frame_sync_provider = false;
break; break;
default: default:
return -EINVAL; return -EINVAL;
} }
/* Clock should only be set up here if CPU is clock master */ /* Clock should only be set up here if CPU is clock master */
if (bit_clock_master && if (bit_clock_provider &&
(!dev->clk_prepared || dev->clk_rate != bclk_rate)) { (!dev->clk_prepared || dev->clk_rate != bclk_rate)) {
if (dev->clk_prepared) if (dev->clk_prepared)
bcm2835_i2s_stop_clock(dev); bcm2835_i2s_stop_clock(dev);
...@@ -501,11 +501,11 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -501,11 +501,11 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
/* /*
* Transmitting data immediately after frame start, eg * Transmitting data immediately after frame start, eg
* in left-justified or DSP mode A, only works stable * in left-justified or DSP mode A, only works stable
* if bcm2835 is the frame clock master. * if bcm2835 is the frame clock provider.
*/ */
if ((!rx_ch1_pos || !tx_ch1_pos) && !frame_sync_master) if ((!rx_ch1_pos || !tx_ch1_pos) && !frame_sync_provider)
dev_warn(dev->dev, dev_warn(dev->dev,
"Unstable slave config detected, L/R may be swapped"); "Unstable consumer config detected, L/R may be swapped");
/* /*
* Set format for both streams. * Set format for both streams.
...@@ -538,11 +538,11 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -538,11 +538,11 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
mode |= BCM2835_I2S_FSLEN(framesync_length); mode |= BCM2835_I2S_FSLEN(framesync_length);
/* CLKM selects bcm2835 clock slave mode */ /* CLKM selects bcm2835 clock slave mode */
if (!bit_clock_master) if (!bit_clock_provider)
mode |= BCM2835_I2S_CLKM; mode |= BCM2835_I2S_CLKM;
/* FSM selects bcm2835 frame sync slave mode */ /* FSM selects bcm2835 frame sync slave mode */
if (!frame_sync_master) if (!frame_sync_provider)
mode |= BCM2835_I2S_FSM; mode |= BCM2835_I2S_FSM;
/* CLKI selects normal clocking mode, sampling on rising edge */ /* CLKI selects normal clocking mode, sampling on rising edge */
......
...@@ -848,12 +848,12 @@ static int cygnus_ssp_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt) ...@@ -848,12 +848,12 @@ static int cygnus_ssp_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
ssp_newcfg = 0; ssp_newcfg = 0;
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
case SND_SOC_DAIFMT_CBM_CFM: case SND_SOC_DAIFMT_CBP_CFP:
ssp_newcfg |= BIT(I2S_OUT_CFGX_SLAVE_MODE); ssp_newcfg |= BIT(I2S_OUT_CFGX_SLAVE_MODE);
aio->is_slave = 1; aio->is_slave = 1;
break; break;
case SND_SOC_DAIFMT_CBS_CFS: case SND_SOC_DAIFMT_CBC_CFC:
ssp_newcfg &= ~BIT(I2S_OUT_CFGX_SLAVE_MODE); ssp_newcfg &= ~BIT(I2S_OUT_CFGX_SLAVE_MODE);
aio->is_slave = 0; aio->is_slave = 0;
break; break;
......
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