From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0F64C4741F for ; Mon, 9 Nov 2020 13:29:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8ECCD2076E for ; Mon, 9 Nov 2020 13:29:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604928552; bh=pqN5mLApKE2LD0TZgtTFudaN295BDvqaXfWFCG1oJzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rOFDPETa8tUEmYjU5BUhjTk8ShyywhBDbCv/ZJg4Cjirry3c13RKX9u772Um5h1Gx yZgZVSI6h6uDC/zVRaTdkciorT2PmoQQJ7rJRQfPOluA+6NLHOMlvTiZlGuFx77XR5 ZKKkqlY4CTfJyQJaNVMlCOyd0/lLHvnKuM+eHUx8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732665AbgKINMd (ORCPT ); Mon, 9 Nov 2020 08:12:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:38106 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731726AbgKINM2 (ORCPT ); Mon, 9 Nov 2020 08:12:28 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 700A6208FE; Mon, 9 Nov 2020 13:12:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604927548; bh=pqN5mLApKE2LD0TZgtTFudaN295BDvqaXfWFCG1oJzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VRjt6jnlfKIwtGUywcAMptzpslW2heVtXM5chuRJ9MEwPzzCCCmFF8ya0ORyjEfPp jdX3CPkKqY6kSSPcdKikWpokxOIXlfKDlgViRiPTrkLZ2LtTJRXeG5vt6p3ElSsJ2E B1X9wjb107w2llBsJuiSaX8SYayeMhDaTv9o6YLc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Keith Winstein , Takashi Iwai Subject: [PATCH 5.4 25/85] ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2 Date: Mon, 9 Nov 2020 13:55:22 +0100 Message-Id: <20201109125023.790289878@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201109125022.614792961@linuxfoundation.org> References: <20201109125022.614792961@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Keith Winstein commit f15cfca818d756dd1c9492530091dfd583359db3 upstream. The Zoom UAC-2 USB audio interface provides an async playback endpoint ("1 OUT (ASYNC)") and capture endpoint ("2 IN (ASYNC)"), both with 2-channel S32_LE in 44.1, 48, 88.2, 96, 176.4, or 192 kilosamples/s. The device provides explicit feedback to adjust the host's playback rate, but the feedback appears unstable and biased relative to the device's capture rate. "alsaloop -t 1000" experiences playback underruns and tries to resample the captured audio to match the varying playback rate. Forcing the kernel to use implicit feedback appears to produce more stable results. This causes the host to transmit one playback sample for each capture sample received. (Zoom North America has been notified of this change.) Signed-off-by: Keith Winstein Tested-by: Keith Winstein Cc: BugLink: https://lore.kernel.org/r/20201027071841.GA164525@trolley.csail.mit.edu Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/usb/pcm.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -339,6 +339,10 @@ static int set_sync_ep_implicit_fb_quirk ep = 0x81; ifnum = 2; goto add_sync_ep_from_ifnum; + case USB_ID(0x1686, 0xf029): /* Zoom UAC-2 */ + ep = 0x82; + ifnum = 2; + goto add_sync_ep_from_ifnum; case USB_ID(0x1397, 0x0001): /* Behringer UFX1604 */ case USB_ID(0x1397, 0x0002): /* Behringer UFX1204 */ ep = 0x81;