From patchwork Tue Nov 11 14:09:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Zammit X-Patchwork-Id: 5274801 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7E0D09F387 for ; Tue, 11 Nov 2014 14:11:32 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id A41F020155 for ; Tue, 11 Nov 2014 14:11:31 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id 593AC20136 for ; Tue, 11 Nov 2014 14:11:30 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 3BA90265232; Tue, 11 Nov 2014 15:11:29 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=no version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id A617C2606FD; Tue, 11 Nov 2014 15:10:30 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 62D1426514B; Tue, 11 Nov 2014 15:10:29 +0100 (CET) Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) by alsa0.perex.cz (Postfix) with ESMTP id AFE442606E0 for ; Tue, 11 Nov 2014 15:10:20 +0100 (CET) Received: by mail-pa0-f46.google.com with SMTP id lf10so10644886pab.19 for ; Tue, 11 Nov 2014 06:10:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0ZJhGoqitY+MFOG3eRAjCnWSIf+x4+vnMc9E9S+Scc8=; b=J9xPUel6r+TocJ2BTgPKP+zaKhX8j2i+0Fl2l6DGOYpPMAoe8ak4DEekuYqUncmRDK NW0w/umoWJlmf9vj0vIqYThsAz66bYkwPozH+5WGTQRXLOZJ/8SMWuXMABbfaOt/DvJD v6Yc9JHuMjuCTlKuS4w2rWsAnVSfankRlyJ5Fe3CUAT8HvMAAFhQOwT6O2BQhh+FwWrt h+ommN7M7Wkk3x98JsW7DvtjJafZi4QUekOacyF5ttPwpNIR+hMJAczDoPjNfWk/+MUj 0kDw/ZsJxpVHovzG2qkaYqoxb5Ha3YfM3Ag19sN7vaLTvf1rrJb32K9AR0VXo/7kEhcT b1pw== X-Received: by 10.70.60.198 with SMTP id j6mr40752295pdr.94.1415715018710; Tue, 11 Nov 2014 06:10:18 -0800 (PST) Received: from localhost.localdomain (14-201-185-176.static.tpgi.com.au. [14.201.185.176]) by mx.google.com with ESMTPSA id qd10sm2218180pbc.86.2014.11.11.06.10.16 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 11 Nov 2014 06:10:18 -0800 (PST) From: Damien Zammit X-Google-Original-From: Damien Zammit To: alsa-devel@alsa-project.org Date: Wed, 12 Nov 2014 01:09:55 +1100 Message-Id: <1415714995-20669-3-git-send-email-damien@zamaudio.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1415714995-20669-1-git-send-email-damien@zamaudio.com> References: <1415714995-20669-1-git-send-email-damien@zamaudio.com> Cc: tiwai@suse.de, Damien Zammit , clemens@ladisch.de Subject: [alsa-devel] [PATCH 2/2 v7] ALSA: usb-audio: Add duplex mode for Digidesign Mbox 1 and enable mixer X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP This patch provides duplex support for the Digidesign Mbox 1 sound card and has been a work in progress for about a year. Users have confirmed on my website that previous versions of this patch have worked on the hardware and I have been testing extensively. It also enables the mixer control for providing clock source selector based on the previous patch. The sample rate has been hardcoded to 48kHz because it works better with the S/PDIF sync mode when the sample rate is locked. This is the highest rate that the device supports and no loss of functionality is observed by restricting the sample rate apart from the inability to selec a lower rate. Signed-off-by: Damien Zammit --- sound/usb/quirks-table.h | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index c657752..13f44fd 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -2944,7 +2944,7 @@ YAMAHA_DEVICE(0x7010, "UB99"), .data = (const struct snd_usb_audio_quirk[]){ { .ifnum = 0, - .type = QUIRK_IGNORE_INTERFACE, + .type = QUIRK_AUDIO_STANDARD_MIXER, }, { .ifnum = 1, @@ -2955,16 +2955,40 @@ YAMAHA_DEVICE(0x7010, "UB99"), .iface = 1, .altsetting = 1, .altset_idx = 1, - .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, + .attributes = 0x4, .endpoint = 0x02, - .ep_attr = 0x01, - .rates = SNDRV_PCM_RATE_44100 | - SNDRV_PCM_RATE_48000, - .rate_min = 44100, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_SYNC, + .maxpacksize = 0x130, + .rates = SNDRV_PCM_RATE_48000, + .rate_min = 48000, .rate_max = 48000, - .nr_rates = 2, + .nr_rates = 1, .rate_table = (unsigned int[]) { - 44100, 48000 + 48000 + } + } + }, + { + .ifnum = 1, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = &(const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S24_3BE, + .channels = 2, + .iface = 1, + .altsetting = 1, + .altset_idx = 1, + .attributes = 0x4, + .endpoint = 0x81, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_ASYNC, + .maxpacksize = 0x130, + .rates = SNDRV_PCM_RATE_48000, + .rate_min = 48000, + .rate_max = 48000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { + 48000 } } }, @@ -2972,7 +2996,6 @@ YAMAHA_DEVICE(0x7010, "UB99"), .ifnum = -1 } } - } },