From: Mark Brown Date: Sun, 22 Feb 2009 20:04:41 +0000 (+0000) Subject: ASoC: Only write back non-default registers when resuming WM8753 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=e611bd82441130991d7f4600dfd4632cebd417c5;p=linux-2.6-omap-h63xx.git ASoC: Only write back non-default registers when resuming WM8753 This will reduce the number of writes done on resume, allowing that to complete faster (especially on systems with very slow I2C like the current Samsung driver). Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index bc29558149e..2241204b515 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c @@ -1526,6 +1526,11 @@ static int wm8753_resume(struct platform_device *pdev) for (i = 0; i < ARRAY_SIZE(wm8753_reg); i++) { if (i + 1 == WM8753_RESET) continue; + + /* No point in writing hardware default values back */ + if (cache[i] == wm8753_reg[i]) + continue; + data[0] = ((i + 1) << 1) | ((cache[i] >> 8) & 0x0001); data[1] = cache[i] & 0x00ff; codec->hw_write(codec->control_data, data, 2);