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

index ab2c0da..44e7d9d 100644 (file)
@@ -406,6 +406,8 @@ static int wm8776_resume(struct platform_device *pdev)
 
        /* Sync reg_cache with the hardware */
        for (i = 0; i < ARRAY_SIZE(wm8776_reg); i++) {
+               if (cache[i] == wm8776_reg[i])
+                       continue;
                data[0] = (i << 1) | ((cache[i] >> 8) & 0x0001);
                data[1] = cache[i] & 0x00ff;
                codec->hw_write(codec->control_data, data, 2);