ASoC: fsl_micfil: explicitly clear CHnF flags

[ Upstream commit b776c4a461 ]

There may be failure when start 1 channel recording after
8 channels recording. The reason is that the CHnF
flags are not cleared successfully by software reset.

This issue is triggerred by the change of clearing
software reset bit.

CHnF flags are write 1 clear bits. Clear them by force
write.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1651925654-32060-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Shengjiu Wang 2022-05-07 20:14:14 +08:00 коммит произвёл Greg Kroah-Hartman
Родитель afac1e7d78
Коммит a74b88e170
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -202,6 +202,14 @@ static int fsl_micfil_reset(struct device *dev)
if (ret)
return ret;
/*
* Set SRES should clear CHnF flags, But even add delay here
* the CHnF may not be cleared sometimes, so clear CHnF explicitly.
*/
ret = regmap_write_bits(micfil->regmap, REG_MICFIL_STAT, 0xFF, 0xFF);
if (ret)
return ret;
return 0;
}