From patchwork Mon Apr 29 10:01:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julian Wiesener X-Patchwork-Id: 10921631 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 34E65933 for ; Mon, 29 Apr 2019 10:11:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22F352880C for ; Mon, 29 Apr 2019 10:11:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 17CE128817; Mon, 29 Apr 2019 10:11:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 92EBE2880C for ; Mon, 29 Apr 2019 10:11:46 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id C1A2E1668; Mon, 29 Apr 2019 12:01:56 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz C1A2E1668 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1556532166; bh=/Jw8ksDZFxw0l1vQy0NDj2MGE9Ur5GksQChjyPlhtH8=; h=Date:From:To:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=UX1Vne1+YxgibM1WcBqDoJ5HZxmjqHOfvAmMyVaMPsZY67C1LMgOtEJdOyTw4X0/x Svgdu3DOGm5sVPsv/b+wXvrXZXbhzOBsbAEzZbhFnozuxtTaNoOp+v1HzFHK2LnLX/ KOBh/9+ivqgdvj3xrFJQc/pPFSoLKD0UpQOVsGZ4= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 31AEBF80641; Mon, 29 Apr 2019 12:01:56 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 7CFD7F80CAB; Mon, 29 Apr 2019 12:01:54 +0200 (CEST) Received: from mail.vtoc.de (mail.vtoc.de [IPv6:2a01:4f8:a0:4ffe::9]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id C2AB4F80641 for ; Mon, 29 Apr 2019 12:01:51 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz C2AB4F80641 Received: from ardbeg.dac.vtoc.de (unknown [IPv6:2a02:2f0e:204:2300:84d9:248a:23d8:abff]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.vtoc.de (Postfix) with ESMTPSA id 23F5D70B6 for ; Mon, 29 Apr 2019 12:01:51 +0200 (CEST) Date: Mon, 29 Apr 2019 13:01:49 +0300 From: Julian Wiesener To: alsa-devel@alsa-project.org Message-ID: <20190429130149.2074b987@ardbeg.dac.vtoc.de> In-Reply-To: <20190210001643.3e4f3f15@ardbeg.dac.vtoc.de> References: <20190210001643.3e4f3f15@ardbeg.dac.vtoc.de> MIME-Version: 1.0 Subject: [alsa-devel] [PATCH RFC RESEND] ALSA: usb-audio: quirks for Roland MX-1 X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 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: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hi, i did send the patch a few month ago, however i didn't got any feedback. The Patch workarrounds the fact that the device appears to be working ASYNC, however it will be hanging, not playing or capturing a single byte. The 2 channel Altset kind of works, but sound is distorded. The 18 channel Altset works as intended. diff --git a/quirks-table.h.orig b/quirks-table.h index b345beb..7272b46 100644 --- a/quirks-table.h.orig +++ b/quirks-table.h @@ -1777,6 +1777,109 @@ YAMAHA_DEVICE(0x7010, "UB99"), } } }, +{ + /* has ID 0x006e when not in "Advanced Driver" mode */ + USB_DEVICE(0x0582, 0x01a3), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { + .vendor_name = "Roland", + .product_name = "MX-1", + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_IGNORE_INTERFACE + }, + { + .ifnum = 1, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = & (const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels = 0x12, + .iface = 1, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x0d, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_NONE, + .rates = SNDRV_PCM_RATE_96000, + .rate_min = 96000, + .rate_max = 96000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { 96000 } + } + }, + { + .ifnum = 1, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = & (const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels = 2, + .iface = 1, + .altsetting = 2, + .altset_idx = 2, + .endpoint = 0x0d, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_NONE, + .rates = SNDRV_PCM_RATE_96000, + .rate_min = 96000, + .rate_max = 96000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { 96000 } + } + }, + { + .ifnum = 2, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = & (const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels = 0x12, + .iface = 2, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x8e, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_NONE, + .rates = SNDRV_PCM_RATE_96000, + .rate_min = 96000, + .rate_max = 96000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { 96000 } + } + }, + { + .ifnum = 2, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = & (const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels = 2, + .iface = 2, + .altsetting = 2, + .altset_idx = 2, + .endpoint = 0x8e, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_NONE, + .rates = SNDRV_PCM_RATE_96000, + .rate_min = 96000, + .rate_max = 96000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { 96000 } + } + }, + { + .ifnum = 3, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = & (const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x0001, + .in_cables = 0x0001 + } + }, + { + .ifnum = -1 + } + } + } +}, /* this catches most recent vendor-specific Roland devices */ { .match_flags = USB_DEVICE_ID_MATCH_VENDOR |