Message ID | 20220519154318.2153729-23-ckeepax@opensource.cirrus.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 7cc3965fde74c9c725ed01de4ac35bc7d562d16a |
Headers | show |
Series | Specify clock provider directly to CPU DAIs | expand |
On 5/19/22 10:42 AM, Charles Keepax wrote: > 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> > --- > sound/soc/sunxi/sun4i-i2s.c | 20 ++++++++++---------- > sound/soc/sunxi/sun8i-codec.c | 8 ++++---- > 2 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c > index 7047f71629ab3..872838d3e0a94 100644 > --- a/sound/soc/sunxi/sun4i-i2s.c > +++ b/sound/soc/sunxi/sun4i-i2s.c > @@ -702,13 +702,13 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, > SUN4I_I2S_FMT0_FMT_MASK, val); > > /* DAI clock master masks */ > - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { > - case SND_SOC_DAIFMT_CBS_CFS: > + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { > + case SND_SOC_DAIFMT_BP_FP: > /* BCLK and LRCLK master */ > val = SUN4I_I2S_CTRL_MODE_MASTER; > break; > > - case SND_SOC_DAIFMT_CBM_CFM: > + case SND_SOC_DAIFMT_BC_FC: > /* BCLK and LRCLK slave */ > val = SUN4I_I2S_CTRL_MODE_SLAVE; > break; > @@ -802,13 +802,13 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, > SUN8I_I2S_TX_CHAN_OFFSET(offset)); > > /* DAI clock master masks */ > - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { > - case SND_SOC_DAIFMT_CBS_CFS: > + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { > + case SND_SOC_DAIFMT_BP_FP: > /* BCLK and LRCLK master */ > val = SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT; > break; > > - case SND_SOC_DAIFMT_CBM_CFM: > + case SND_SOC_DAIFMT_BC_FC: > /* BCLK and LRCLK slave */ > val = 0; > break; > @@ -909,13 +909,13 @@ static int sun50i_h6_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, > SUN50I_H6_I2S_TX_CHAN_SEL_OFFSET(offset)); > > /* DAI clock master masks */ > - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { > - case SND_SOC_DAIFMT_CBS_CFS: > + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { > + case SND_SOC_DAIFMT_BP_FP: > /* BCLK and LRCLK master */ > val = SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT; > break; > > - case SND_SOC_DAIFMT_CBM_CFM: > + case SND_SOC_DAIFMT_BC_FC: > /* BCLK and LRCLK slave */ > val = 0; > break; > @@ -1081,7 +1081,7 @@ static int sun4i_i2s_set_tdm_slot(struct snd_soc_dai *dai, > > static const struct snd_soc_dai_ops sun4i_i2s_dai_ops = { > .hw_params = sun4i_i2s_hw_params, > - .set_fmt = sun4i_i2s_set_fmt, > + .set_fmt_new = sun4i_i2s_set_fmt, > .set_sysclk = sun4i_i2s_set_sysclk, > .set_tdm_slot = sun4i_i2s_set_tdm_slot, > .trigger = sun4i_i2s_trigger, > diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c > index 0bea2162f68d9..6e9ef948d6621 100644 > --- a/sound/soc/sunxi/sun8i-codec.c > +++ b/sound/soc/sunxi/sun8i-codec.c > @@ -286,11 +286,11 @@ static int sun8i_codec_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) > u32 dsp_format, format, invert, value; > > /* clock masters */ > - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { > - case SND_SOC_DAIFMT_CBS_CFS: /* Codec slave, DAI master */ > + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { > + case SND_SOC_DAIFMT_BP_FP: /* Codec slave, DAI master */ This is a codec driver, and it is only ever used on the codec end of a link, so I would not expect it to be changed. Regards, Samuel > value = 0x1; > break; > - case SND_SOC_DAIFMT_CBM_CFM: /* Codec Master, DAI slave */ > + case SND_SOC_DAIFMT_BC_FC: /* Codec Master, DAI slave */ > value = 0x0; > break; > default: > @@ -630,7 +630,7 @@ static int sun8i_codec_hw_free(struct snd_pcm_substream *substream, > } > > static const struct snd_soc_dai_ops sun8i_codec_dai_ops = { > - .set_fmt = sun8i_codec_set_fmt, > + .set_fmt_new = sun8i_codec_set_fmt, > .set_tdm_slot = sun8i_codec_set_tdm_slot, > .startup = sun8i_codec_startup, > .hw_params = sun8i_codec_hw_params, >
On Thu, May 19, 2022 at 06:40:11PM -0500, Samuel Holland wrote: > On 5/19/22 10:42 AM, Charles Keepax wrote: > > 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> > > --- > > sound/soc/sunxi/sun4i-i2s.c | 20 ++++++++++---------- > > sound/soc/sunxi/sun8i-codec.c | 8 ++++---- > > 2 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c > > index 0bea2162f68d9..6e9ef948d6621 100644 > > --- a/sound/soc/sunxi/sun8i-codec.c > > +++ b/sound/soc/sunxi/sun8i-codec.c > > @@ -286,11 +286,11 @@ static int sun8i_codec_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) > > u32 dsp_format, format, invert, value; > > > > /* clock masters */ > > - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { > > - case SND_SOC_DAIFMT_CBS_CFS: /* Codec slave, DAI master */ > > + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { > > + case SND_SOC_DAIFMT_BP_FP: /* Codec slave, DAI master */ > > This is a codec driver, and it is only ever used on the codec end of a link, so > I would not expect it to be changed. > Thanks for spotting that, silly mistake on my part. Will fix for a rev 2. Thanks, Charles
diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index 7047f71629ab3..872838d3e0a94 100644 --- a/sound/soc/sunxi/sun4i-i2s.c +++ b/sound/soc/sunxi/sun4i-i2s.c @@ -702,13 +702,13 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN4I_I2S_FMT0_FMT_MASK, val); /* DAI clock master masks */ - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { - case SND_SOC_DAIFMT_CBS_CFS: + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { + case SND_SOC_DAIFMT_BP_FP: /* BCLK and LRCLK master */ val = SUN4I_I2S_CTRL_MODE_MASTER; break; - case SND_SOC_DAIFMT_CBM_CFM: + case SND_SOC_DAIFMT_BC_FC: /* BCLK and LRCLK slave */ val = SUN4I_I2S_CTRL_MODE_SLAVE; break; @@ -802,13 +802,13 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN8I_I2S_TX_CHAN_OFFSET(offset)); /* DAI clock master masks */ - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { - case SND_SOC_DAIFMT_CBS_CFS: + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { + case SND_SOC_DAIFMT_BP_FP: /* BCLK and LRCLK master */ val = SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT; break; - case SND_SOC_DAIFMT_CBM_CFM: + case SND_SOC_DAIFMT_BC_FC: /* BCLK and LRCLK slave */ val = 0; break; @@ -909,13 +909,13 @@ static int sun50i_h6_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN50I_H6_I2S_TX_CHAN_SEL_OFFSET(offset)); /* DAI clock master masks */ - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { - case SND_SOC_DAIFMT_CBS_CFS: + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { + case SND_SOC_DAIFMT_BP_FP: /* BCLK and LRCLK master */ val = SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT; break; - case SND_SOC_DAIFMT_CBM_CFM: + case SND_SOC_DAIFMT_BC_FC: /* BCLK and LRCLK slave */ val = 0; break; @@ -1081,7 +1081,7 @@ static int sun4i_i2s_set_tdm_slot(struct snd_soc_dai *dai, static const struct snd_soc_dai_ops sun4i_i2s_dai_ops = { .hw_params = sun4i_i2s_hw_params, - .set_fmt = sun4i_i2s_set_fmt, + .set_fmt_new = sun4i_i2s_set_fmt, .set_sysclk = sun4i_i2s_set_sysclk, .set_tdm_slot = sun4i_i2s_set_tdm_slot, .trigger = sun4i_i2s_trigger, diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c index 0bea2162f68d9..6e9ef948d6621 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -286,11 +286,11 @@ static int sun8i_codec_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) u32 dsp_format, format, invert, value; /* clock masters */ - switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { - case SND_SOC_DAIFMT_CBS_CFS: /* Codec slave, DAI master */ + switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) { + case SND_SOC_DAIFMT_BP_FP: /* Codec slave, DAI master */ value = 0x1; break; - case SND_SOC_DAIFMT_CBM_CFM: /* Codec Master, DAI slave */ + case SND_SOC_DAIFMT_BC_FC: /* Codec Master, DAI slave */ value = 0x0; break; default: @@ -630,7 +630,7 @@ static int sun8i_codec_hw_free(struct snd_pcm_substream *substream, } static const struct snd_soc_dai_ops sun8i_codec_dai_ops = { - .set_fmt = sun8i_codec_set_fmt, + .set_fmt_new = sun8i_codec_set_fmt, .set_tdm_slot = sun8i_codec_set_tdm_slot, .startup = sun8i_codec_startup, .hw_params = sun8i_codec_hw_params,
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> --- sound/soc/sunxi/sun4i-i2s.c | 20 ++++++++++---------- sound/soc/sunxi/sun8i-codec.c | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-)