The patch below does not apply to the 3.16-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

>From 66d627d554a4284dad00b2039efd18e1c129cc2f Mon Sep 17 00:00:00 2001
From: Bard Liao <[email protected]>
Date: Fri, 26 Sep 2014 11:06:40 +0800
Subject: [PATCH] ASoC: rt286: Fix sync function

We try to write index registers into cache when we write an index
register, but we change the reg value before updating the cache.
As a result, the cache is never be updated. This patch will fix
this issue.

Signed-off-by: Bard Liao <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]

diff --git a/sound/soc/codecs/rt286.c b/sound/soc/codecs/rt286.c
index 7a6608404d04..b86b426f159d 100644
--- a/sound/soc/codecs/rt286.c
+++ b/sound/soc/codecs/rt286.c
@@ -191,7 +191,6 @@ static int rt286_hw_write(void *context, unsigned int reg, 
unsigned int value)
        /*handle index registers*/
        if (reg <= 0xff) {
                rt286_hw_write(client, RT286_COEF_INDEX, reg);
-               reg = RT286_PROC_COEF;
                for (i = 0; i < INDEX_CACHE_SIZE; i++) {
                        if (reg == rt286->index_cache[i].reg) {
                                rt286->index_cache[i].def = value;
@@ -199,6 +198,7 @@ static int rt286_hw_write(void *context, unsigned int reg, 
unsigned int value)
                        }
 
                }
+               reg = RT286_PROC_COEF;
        }
 
        data[0] = (reg >> 24) & 0xff;

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to