Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2500b58 authored by Julian Scheel's avatar Julian Scheel Committed by Takashi Iwai
Browse files

ALSA: usb-audio: uac1: Invalidate ctl on interrupt



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: default avatarJulian Scheel <julian@jusst.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3aabf94c
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2330,10 +2330,15 @@ 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,
				    struct usb_mixer_elem_list *list)