Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2338057ybz; Thu, 23 Apr 2020 16:17:37 -0700 (PDT) X-Google-Smtp-Source: APiQypLBJzjVFaRChkrqSMRX2+X3vgFJ3Mgqq0WKBNYhoNUdLw5HlwM43pDrZ6t0MKQ/8Nr7WgMD X-Received: by 2002:aa7:d413:: with SMTP id z19mr5054862edq.80.1587683857437; Thu, 23 Apr 2020 16:17:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587683857; cv=none; d=google.com; s=arc-20160816; b=xxfSXUxFSq1QkVHMLLFljtkolLu/iKesbSMZotcN7wp8G7bRERrGTfFKQBkRCtUX91 GQMAW3um55UDHcGMdQ5DsQJL1pplRcziXMgc1WYnwrinqTUoeASx6ZLFyP1OFK3Evr8B ZvqhFwXPfxjaiwK8UAEzJqO+zI1/VnN9CqMzRWSwHGENyVQLhjFom+KNtJLOeiwhUaL/ 8NjE5BkfOLnKWTE3tVdlgxa5NONaqCwOxFMxBxt46f2PO6Q66nnSc5ytn6rqWNqG5VfE 3dl0Q7DJBTHO2dXBIJ1BZ4vndvMgLy5SLbhkXZE9SSOPfnUTubylyxHJ6zFq8maqeM5h 1VtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=+7KJI6OkXsZQxDGIUVz0dA+FGyQ6WoVTSkCTFYSHURU=; b=HH7/zmLPN1NMSEw3uS4ZGzqWJDcRLwK18SnVQTQwdZZ3yioAIeHTHlzXYk+juINB9I dXftV4e0yl+fzV/RfqxiDJlNkME9fOxSdNEW0nMjnh4PlBOmVLd4xXAXhW5tBlU6G4z7 B3jt7uYB85sd409jtd7P6dbRsSaclAad0zF9mNwPb67wDzc6n5dk3ZvaPXL9brSFSbcV mM16/IMC/lsAIFGu6Xa47jyGc+sP9ywhW1y1zoDSDuiapzn49DlhCS3mNO7rKoaV/5XP MsrU4Kr/pqSy40S5kydPU4IwUUaBPpHWhvkTn4ovD2OLzy6c9vt7WdKhe5vb5/R4frzP rqdw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dg8si2116853edb.548.2020.04.23.16.17.14; Thu, 23 Apr 2020 16:17:37 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729336AbgDWXMn (ORCPT + 99 others); Thu, 23 Apr 2020 19:12:43 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:50150 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728523AbgDWXGv (ORCPT ); Thu, 23 Apr 2020 19:06:51 -0400 Received: from [192.168.4.242] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jRkvb-0004nA-3f; Fri, 24 Apr 2020 00:06:43 +0100 Received: from ben by deadeye with local (Exim 4.93) (envelope-from ) id 1jRkvW-00E6wM-7H; Fri, 24 Apr 2020 00:06:38 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, Denis Kirjanov , "Alberto Aguirre" , "Takashi Iwai" Date: Fri, 24 Apr 2020 00:06:48 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 181/245] ALSA: usb-audio: simplify set_sync_ep_implicit_fb_quirk In-Reply-To: X-SA-Exim-Connect-IP: 192.168.4.242 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.83-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Alberto Aguirre commit 103e9625647ad74d201e26fb74afcd8479142a37 upstream. Signed-off-by: Alberto Aguirre Signed-off-by: Takashi Iwai Signed-off-by: Ben Hutchings --- sound/usb/pcm.c | 52 +++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 32 deletions(-) --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -324,6 +324,7 @@ static int set_sync_ep_implicit_fb_quirk struct usb_host_interface *alts; struct usb_interface *iface; unsigned int ep; + unsigned int ifnum; /* Implicit feedback sync EPs consumers are always playback EPs */ if (subs->direction != SNDRV_PCM_STREAM_PLAYBACK) @@ -333,44 +334,23 @@ static int set_sync_ep_implicit_fb_quirk case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */ case USB_ID(0x0763, 0x2031): /* M-Audio Fast Track C600 */ ep = 0x81; - iface = usb_ifnum_to_if(dev, 3); - - if (!iface || iface->num_altsetting == 0) - return -EINVAL; - - alts = &iface->altsetting[1]; - goto add_sync_ep; - break; + ifnum = 3; + goto add_sync_ep_from_ifnum; case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */ case USB_ID(0x0763, 0x2081): ep = 0x81; - iface = usb_ifnum_to_if(dev, 2); - - if (!iface || iface->num_altsetting == 0) - return -EINVAL; - - alts = &iface->altsetting[1]; - goto add_sync_ep; - case USB_ID(0x2466, 0x8003): + ifnum = 2; + goto add_sync_ep_from_ifnum; + case USB_ID(0x2466, 0x8003): /* Fractal Audio Axe-Fx II */ ep = 0x86; - iface = usb_ifnum_to_if(dev, 2); - - if (!iface || iface->num_altsetting == 0) - return -EINVAL; - - alts = &iface->altsetting[1]; - goto add_sync_ep; - case USB_ID(0x1397, 0x0002): + ifnum = 2; + goto add_sync_ep_from_ifnum; + case USB_ID(0x1397, 0x0002): /* Behringer UFX1204 */ ep = 0x81; - iface = usb_ifnum_to_if(dev, 1); - - if (!iface || iface->num_altsetting == 0) - return -EINVAL; - - alts = &iface->altsetting[1]; - goto add_sync_ep; - + ifnum = 1; + goto add_sync_ep_from_ifnum; } + if (attr == USB_ENDPOINT_SYNC_ASYNC && altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC && altsd->bInterfaceProtocol == 2 && @@ -385,6 +365,14 @@ static int set_sync_ep_implicit_fb_quirk /* No quirk */ return 0; +add_sync_ep_from_ifnum: + iface = usb_ifnum_to_if(dev, ifnum); + + if (!iface || iface->num_altsetting == 0) + return -EINVAL; + + alts = &iface->altsetting[1]; + add_sync_ep: subs->sync_endpoint = snd_usb_add_endpoint(subs->stream->chip, alts, ep, !subs->direction,