ASoC: Remove volatility from WM8900 POWER1 register
Not all bits can be read back from POWER1 so avoid corruption when using a read/modify/write cycle by marking it non-volatile - the only thing we read back from it is the chip revision which has diagnostic value only. We can re-add later but that's a more invasive change than is suitable for a bugfix. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
This commit is contained in:
@ -186,7 +186,6 @@ static int wm8900_volatile_register(unsigned int reg)
|
|||||||
{
|
{
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case WM8900_REG_ID:
|
case WM8900_REG_ID:
|
||||||
case WM8900_REG_POWER1:
|
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
@ -1200,11 +1199,6 @@ static int wm8900_probe(struct snd_soc_codec *codec)
|
|||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read back from the chip */
|
|
||||||
reg = snd_soc_read(codec, WM8900_REG_POWER1);
|
|
||||||
reg = (reg >> 12) & 0xf;
|
|
||||||
dev_info(codec->dev, "WM8900 revision %d\n", reg);
|
|
||||||
|
|
||||||
wm8900_reset(codec);
|
wm8900_reset(codec);
|
||||||
|
|
||||||
/* Turn the chip on */
|
/* Turn the chip on */
|
||||||
|
Reference in New Issue
Block a user