Message ID | 20190421193853.10188-2-daniel.baluta@nxp.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Add runtime PM for SAI digital audio interface | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch next (26ad26718dfaa7cf49d106d212ebf2370076c253) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 14 lines checked |
On Sun, Apr 21, 2019 at 07:39:08PM +0000, Daniel Baluta wrote: > is_slave_mode defaults to false because sai structure > that contains it is kzalloc'ed. > > Anyhow, if we decide to set the following configuration > SAI slave -> SAI master, is_slave_mode will remain set on true > although SAI being master it should be set to false. > > Fix this by updating is_slave_mode for each call of > fsl_sai_set_dai_fmt. > > Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> Thanks > --- > sound/soc/fsl/fsl_sai.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c > index b563004fb89f..d9df98975cf8 100644 > --- a/sound/soc/fsl/fsl_sai.c > +++ b/sound/soc/fsl/fsl_sai.c > @@ -268,12 +268,14 @@ static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai, > case SND_SOC_DAIFMT_CBS_CFS: > val_cr2 |= FSL_SAI_CR2_BCD_MSTR; > val_cr4 |= FSL_SAI_CR4_FSD_MSTR; > + sai->is_slave_mode = false; > break; > case SND_SOC_DAIFMT_CBM_CFM: > sai->is_slave_mode = true; > break; > case SND_SOC_DAIFMT_CBS_CFM: > val_cr2 |= FSL_SAI_CR2_BCD_MSTR; > + sai->is_slave_mode = false; > break; > case SND_SOC_DAIFMT_CBM_CFS: > val_cr4 |= FSL_SAI_CR4_FSD_MSTR; > -- > 2.17.1 >
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index b563004fb89f..d9df98975cf8 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -268,12 +268,14 @@ static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai, case SND_SOC_DAIFMT_CBS_CFS: val_cr2 |= FSL_SAI_CR2_BCD_MSTR; val_cr4 |= FSL_SAI_CR4_FSD_MSTR; + sai->is_slave_mode = false; break; case SND_SOC_DAIFMT_CBM_CFM: sai->is_slave_mode = true; break; case SND_SOC_DAIFMT_CBS_CFM: val_cr2 |= FSL_SAI_CR2_BCD_MSTR; + sai->is_slave_mode = false; break; case SND_SOC_DAIFMT_CBM_CFS: val_cr4 |= FSL_SAI_CR4_FSD_MSTR;
is_slave_mode defaults to false because sai structure that contains it is kzalloc'ed. Anyhow, if we decide to set the following configuration SAI slave -> SAI master, is_slave_mode will remain set on true although SAI being master it should be set to false. Fix this by updating is_slave_mode for each call of fsl_sai_set_dai_fmt. Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> --- sound/soc/fsl/fsl_sai.c | 2 ++ 1 file changed, 2 insertions(+)