ASoC: Only restore non-default registers for WM8731
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Sat, 2 Jan 2010 13:14:07 +0000 (13:14 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 4 Jan 2010 21:50:23 +0000 (21:50 +0000)
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/wm8731.c

index 3a497810f9391c36f9918f0a3c93e20dce5779e5..5a2619dbf283b8a6195eb912dae6fb2c9ae96149 100644 (file)
@@ -456,6 +456,9 @@ static int wm8731_resume(struct platform_device *pdev)
 
        /* Sync reg_cache with the hardware */
        for (i = 0; i < ARRAY_SIZE(wm8731_reg); i++) {
+               if (cache[i] == wm8731_reg[i])
+                       continue;
+
                data[0] = (i << 1) | ((cache[i] >> 8) & 0x0001);
                data[1] = cache[i] & 0x00ff;
                codec->hw_write(codec->control_data, data, 2);