ALSA: usb-audio: correct the value cache check.
authorYao-Wen Mao <yaowen@google.com>
Fri, 28 Aug 2015 08:33:25 +0000 (16:33 +0800)
committerTakashi Iwai <tiwai@suse.de>
Fri, 28 Aug 2015 08:38:25 +0000 (10:38 +0200)
The check of cval->cached should be zero-based (including master channel).

Signed-off-by: Yao-Wen Mao <yaowen@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer.c

index fd5c49e9486721929cf152b2e86116babae3207c..f494dced3c11e3a662b93d95df9ea53ff2767dfc 100644 (file)
@@ -2540,7 +2540,7 @@ static int restore_mixer_value(struct usb_mixer_elem_list *list)
                for (c = 0; c < MAX_CHANNELS; c++) {
                        if (!(cval->cmask & (1 << c)))
                                continue;
-                       if (cval->cached & (1 << c)) {
+                       if (cval->cached & (1 << (c + 1))) {
                                err = snd_usb_set_cur_mix_value(cval, c + 1, idx,
                                                        cval->cache_val[idx]);
                                if (err < 0)