Message ID | 20171116163517.5010-1-julian@jusst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 16 Nov 2017 17:35:17 +0100, Julian Scheel wrote: > > When an interrupt occurs, the value of at least one of the belonging > controls should have changed. To make sure they get re-read from device > on the next read, invalidate the cache. This was correctly implemented > for uac2 already, but missing for uac1. > > Signed-off-by: Julian Scheel <julian@jusst.de> Applied, thanks. Takashi
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 91bc8f18791e..1beb5b4d027e 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -2330,9 +2330,14 @@ void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid) { struct usb_mixer_elem_list *list; - for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) + for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) { + struct usb_mixer_elem_info *info = + (struct usb_mixer_elem_info *)list; + /* invalidate cache, so the value is read from the device */ + info->cached = 0; snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &list->kctl->id); + } } static void snd_usb_mixer_dump_cval(struct snd_info_buffer *buffer,
When an interrupt occurs, the value of at least one of the belonging controls should have changed. To make sure they get re-read from device on the next read, invalidate the cache. This was correctly implemented for uac2 already, but missing for uac1. Signed-off-by: Julian Scheel <julian@jusst.de> --- sound/usb/mixer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)