ASoC: don't touch pxa-ssp registers when stream is running
In pxa_ssp_set_dai_fmt(), check whether there is anything to do at all. If there would be but the SSP port is in use already, bail out. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
090cec81ae
Коммит
cbf1146d5e
|
@ -522,6 +522,17 @@ static int pxa_ssp_set_dai_fmt(struct snd_soc_dai *cpu_dai,
|
|||
u32 sscr1;
|
||||
u32 sspsp;
|
||||
|
||||
/* check if we need to change anything at all */
|
||||
if (priv->dai_fmt == fmt)
|
||||
return 0;
|
||||
|
||||
/* we can only change the settings if the port is not in use */
|
||||
if (ssp_read_reg(ssp, SSCR0) & SSCR0_SSE) {
|
||||
dev_err(&ssp->pdev->dev,
|
||||
"can't change hardware dai format: stream is in use");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* reset port settings */
|
||||
sscr0 = ssp_read_reg(ssp, SSCR0) &
|
||||
(SSCR0_ECS | SSCR0_NCS | SSCR0_MOD | SSCR0_ACS);
|
||||
|
|
Загрузка…
Ссылка в новой задаче