projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3bbcd27
)
ALSA: hda - Fix wrong dirty check in snd_hda_codec_resume_amp()
author
Takashi Iwai
<tiwai@suse.de>
Thu, 20 Dec 2012 11:54:18 +0000
(12:54 +0100)
committer
Takashi Iwai
<tiwai@suse.de>
Sat, 12 Jan 2013 07:34:06 +0000
(08:34 +0100)
The dirty entry has to be checked at the beginning in the loop, not in
the inner loop for channels. This caused a regression that the right
channel isn't properly written.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c
patch
|
blob
|
blame
|
history
diff --git
a/sound/pci/hda/hda_codec.c
b/sound/pci/hda/hda_codec.c
index afc3ccd998f84cf7bd286829b804c0eed1f8d9aa..febadc9ed593a600e648a880f04b61000ad35fa6 100644
(file)
--- a/
sound/pci/hda/hda_codec.c
+++ b/
sound/pci/hda/hda_codec.c
@@
-1969,6
+1969,9
@@
void snd_hda_codec_resume_amp(struct hda_codec *codec)
unsigned int idx, dir, ch;
buffer = snd_array_elem(&codec->amp_cache.buf, i);
+ if (!buffer->head.dirty)
+ continue;
+ buffer->head.dirty = 0;
key = buffer->head.key;
if (!key)
continue;
@@
-1978,9
+1981,6
@@
void snd_hda_codec_resume_amp(struct hda_codec *codec)
for (ch = 0; ch < 2; ch++) {
if (!(buffer->head.val & INFO_AMP_VOL(ch)))
continue;
- if (!buffer->head.dirty)
- continue;
- buffer->head.dirty = 0;
mutex_unlock(&codec->hash_mutex);
put_vol_mute(codec, buffer, nid, ch, dir, idx,
buffer->vol[ch]);