diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 3739fe66b11d..4cc3cb976659 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1821,6 +1821,8 @@ static void build_connector_control(struct usb_mixer_interface *mixer, /* phantom connector - no actual detection */ if (phantom) { + pr_info("XXX creating a phantom ctl for %d -> %d\n", + cval->head.id, cval->assoc_id); snd_usb_mixer_add_control(&cval->head, NULL); return; } @@ -3230,18 +3232,24 @@ static void mixer_notify_id(struct usb_mixer_interface *mixer, int unitid, if (hop >= 2) return; + pr_info("XXX mixer_notify_id %d\n", unitid); for_each_mixer_elem(list, mixer, unitid) { struct usb_mixer_elem_info *info = mixer_elem_list_to_info(list); /* invalidate cache, so the value is read from the device */ info->cached = 0; if (!list->kctl) { - if (info->assoc_id) - mixer_notify_id(mixer, info->assoc_id, ++hop); - return; + if (info->assoc_id) { + pr_info("XXX delegating notify %d -> %d\n", + unitid, info->assoc_id); + mixer_notify_id(mixer, info->assoc_id, hop + 1); + } + } else { + pr_info("XXX snd_ctl_notify %s\n", list->kctl->id.name); + snd_ctl_notify(mixer->chip->card, + SNDRV_CTL_EVENT_MASK_VALUE, + &list->kctl->id); } - snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, - &list->kctl->id); } }