Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3058387ybt; Mon, 29 Jun 2020 14:10:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJykiiTMaq92sZM5pxtcDPwNqtcdXLfEsy8W+vup+WvWYGeE1Sy0OmguPJcRlf+84OPttlNT X-Received: by 2002:a50:cbcd:: with SMTP id l13mr3524231edi.384.1593465036629; Mon, 29 Jun 2020 14:10:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593465036; cv=none; d=google.com; s=arc-20160816; b=y+LssMcCUJJQO728ngOPGA8l+/4ACuHqGcQAv1EytR6I7+m1Gju66fdrccc8oMTSGc NUPmEMVPgZDe2wD3Re1EEOMFEBpY3EYeHFZpwnDhcDks9ZpDHRKBNhyD7ccYaxZ9aY0i zBjIE+omO5xR7n/CGvrg8oneOqtGRPt/P+XUnJeoXRO82gH3BPrwhttGqQ/myWaYzAoE 7kCHKBMdY/5JCbubPzAyUwH72174z44RR1W1Yz6jqwkHhQEMF2rP5F+9PuDx8IWI5+Nl vWaz+MIV12YsrI3Dz9u/gvJpfFSdJLE3jOP+F1p1xiWBXKpx6Ey0HPmWWT3OWDvqUL5t DMWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bfT2A7xIemKXfiGM5MckxZN1ayJxgOS5rDQ1lmpu9RM=; b=HKGM7H0t2FZXYeJuCen2cSms2ikC4O3VFaCuAfnoIXOhqpgwpYepOm1DcRvPhiQ89y 2kXfbDPKIB8Zby+UKk7ObbBnVFBoZlvCka/onDTneR3FNVhSNzbI6hCRakIpx4hb+QEd cd6Fo6VJpfNDoNXNwowZXZQUsoVYPxiynG3v1BRxSDxDXIa1TniAjtfRECcsXYQqEpfW xDIkpQiI0tnwQN0g50x5BTg2+hDiDzPr8/4/zWSzFALq3R7g4bk8n6tDmi34KWo7/GKG ZFaRK7Rp5RGYn3rS3X132VrnVrF6GSnQAxD0glp9m9O5ptaapS4+apFrSlyDUceZk9Lb sx7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Djuw6pBW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ga5si446864ejb.567.2020.06.29.14.10.13; Mon, 29 Jun 2020 14:10:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Djuw6pBW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390446AbgF2VIq (ORCPT + 99 others); Mon, 29 Jun 2020 17:08:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:45426 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730330AbgF2TAT (ORCPT ); Mon, 29 Jun 2020 15:00:19 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5B90425551; Mon, 29 Jun 2020 15:55:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593446114; bh=sAiNEf54H7tUH6Ot3FT8uPvmxim8eAexcw0I/inkF2c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Djuw6pBW1zA3AHwqHCqHSRzYL5HL7EBkoM1NyJi/M+gJ14ktCBjMOZq+mJnQ/HQJx Nj3Rq50k1ngmChq6mj42r3O00pEUqIzIT0I6ooJUfLc8Y9sqMnLmJFmvO/NT1/nGCF SHjV+b5Mdte4aZLpQYMKyIWMIuUWMmPQ655K//qg= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Mack , Takashi Iwai , Sasha Levin Subject: [PATCH 4.4 105/135] ALSA: usb-audio: allow clock source validity interrupts Date: Mon, 29 Jun 2020 11:52:39 -0400 Message-Id: <20200629155309.2495516-106-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629155309.2495516-1-sashal@kernel.org> References: <20200629155309.2495516-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.229-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-4.4.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 4.4.229-rc1 X-KernelTest-Deadline: 2020-07-01T15:53+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Mack [ Upstream commit 191227d99a281333b50aaf82ab4152fbfa249c19 ] miniDSP USBStreamer UAC2 devices send clock validity changes with the control field set to zero. The current interrupt handler ignores all packets if the control field does not match the mixer element's, but it really should only do that in case that field is needed to distinguish multiple elements with the same ID. This patch implements a logic that lets notifications packets pass if the element ID is unique for a given device. Signed-off-by: Daniel Mack Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/usb/mixer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index a2a9712bd6fa7..eb98e60e57335 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -2391,6 +2391,7 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer, __u8 unitid = (index >> 8) & 0xff; __u8 control = (value >> 8) & 0xff; __u8 channel = value & 0xff; + unsigned int count = 0; if (channel >= MAX_CHANNELS) { usb_audio_dbg(mixer->chip, @@ -2399,6 +2400,12 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer, return; } + for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) + count++; + + if (count == 0) + return; + for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) { struct usb_mixer_elem_info *info; @@ -2406,7 +2413,7 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer, continue; info = (struct usb_mixer_elem_info *)list; - if (info->control != control) + if (count > 1 && info->control != control) continue; switch (attribute) { -- 2.25.1