From 134ad70473318b22025537ecd9fb78f6a9f65507 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Mon, 20 Oct 2008 23:58:50 +0200 Subject: [PATCH] --- yaml --- r: 116858 b: refs/heads/master c: e76f7558d89868bc295fe1220c2e5a0a82f698f6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/mfd/wm8350-core.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0a942bee4c67..e2efb02bc2a6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 799f9e3267b0938c8059ed78d7e39e00b6aa6bd2 +refs/heads/master: e76f7558d89868bc295fe1220c2e5a0a82f698f6 diff --git a/trunk/drivers/mfd/wm8350-core.c b/trunk/drivers/mfd/wm8350-core.c index fbe22fb7847b..0d47fb9e4b3b 100644 --- a/trunk/drivers/mfd/wm8350-core.c +++ b/trunk/drivers/mfd/wm8350-core.c @@ -183,6 +183,9 @@ static int wm8350_write(struct wm8350 *wm8350, u8 reg, int num_regs, u16 *src) (wm8350->reg_cache[i] & ~wm8350_reg_io_map[i].writable) | src[i - reg]; + /* Don't store volatile bits */ + wm8350->reg_cache[i] &= ~wm8350_reg_io_map[i].vol; + src[i - reg] = cpu_to_be16(src[i - reg]); } @@ -1120,6 +1123,7 @@ static int wm8350_create_cache(struct wm8350 *wm8350, int mode) } value = be16_to_cpu(value); value &= wm8350_reg_io_map[i].readable; + value &= ~wm8350_reg_io_map[i].vol; wm8350->reg_cache[i] = value; } else wm8350->reg_cache[i] = reg_map[i];