mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
ASoC: hisilicon: 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-10-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3b14c15a33
commit
0f362524dd
1 changed files with 10 additions and 10 deletions
|
@ -227,9 +227,9 @@ static int hi6210_i2s_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
|
|||
* We don't actually set the hardware until the hw_params
|
||||
* call, but we need to validate the user input here.
|
||||
*/
|
||||
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_CBS_CFS:
|
||||
switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
@ -245,8 +245,8 @@ static int hi6210_i2s_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
|
|||
}
|
||||
|
||||
i2s->format = fmt;
|
||||
i2s->master = (i2s->format & SND_SOC_DAIFMT_MASTER_MASK) ==
|
||||
SND_SOC_DAIFMT_CBS_CFS;
|
||||
i2s->master = (i2s->format & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) ==
|
||||
SND_SOC_DAIFMT_BP_FP;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -375,21 +375,21 @@ static int hi6210_i2s_hw_params(struct snd_pcm_substream *substream,
|
|||
hi6210_write_reg(i2s, HII2S_MUX_TOP_MODULE_CFG, val);
|
||||
|
||||
|
||||
switch (i2s->format & SND_SOC_DAIFMT_MASTER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBM_CFM:
|
||||
switch (i2s->format & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_BC_FC:
|
||||
i2s->master = false;
|
||||
val = hi6210_read_reg(i2s, HII2S_I2S_CFG);
|
||||
val |= HII2S_I2S_CFG__S2_MST_SLV;
|
||||
hi6210_write_reg(i2s, HII2S_I2S_CFG, val);
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBS_CFS:
|
||||
case SND_SOC_DAIFMT_BP_FP:
|
||||
i2s->master = true;
|
||||
val = hi6210_read_reg(i2s, HII2S_I2S_CFG);
|
||||
val &= ~HII2S_I2S_CFG__S2_MST_SLV;
|
||||
hi6210_write_reg(i2s, HII2S_I2S_CFG, val);
|
||||
break;
|
||||
default:
|
||||
WARN_ONCE(1, "Invalid i2s->fmt MASTER_MASK. This shouldn't happen\n");
|
||||
WARN_ONCE(1, "Invalid i2s->fmt CLOCK_PROVIDER_MASK. This shouldn't happen\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -513,7 +513,7 @@ static int hi6210_i2s_dai_probe(struct snd_soc_dai *dai)
|
|||
static const struct snd_soc_dai_ops hi6210_i2s_dai_ops = {
|
||||
.trigger = hi6210_i2s_trigger,
|
||||
.hw_params = hi6210_i2s_hw_params,
|
||||
.set_fmt = hi6210_i2s_set_fmt,
|
||||
.set_fmt_new = hi6210_i2s_set_fmt,
|
||||
.startup = hi6210_i2s_startup,
|
||||
.shutdown = hi6210_i2s_shutdown,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue