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 <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
b7a2976775
Коммит
66d627d554
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче