From patchwork Wed Apr 29 09:56:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Panchenko | d-Systems X-Patchwork-Id: 192836 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=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_SANE_1 autolearn=no 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 8BA32C47247 for ; Thu, 30 Apr 2020 16:57:24 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 185D920731 for ; Thu, 30 Apr 2020 16:57:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="tq4cnkzK"; dkim=pass (2048-bit key) header.d=d-systems.ee header.i=@d-systems.ee header.b="bIEZsR/i" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 185D920731 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=d-systems.ee Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org 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 6CD611680; Thu, 30 Apr 2020 18:56:32 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 6CD611680 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1588265842; bh=E/QUdf+6WltoWml7fyFKesYEGrZvfjmVdFUKj2qt9CQ=; h=To:From:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=tq4cnkzKptS39/egysC8nWQzUp9+X7gzUFZ7hcq32iNOV7WTOC5QxWio7FM5Sa9UC FZBpVWuvgl/AqNKcVV1yh6iMPDXIxQ45sYzE1x6zNo2ItakBBt+/ZZYJjUEwmOwif8 jP98tgRq1vvvgFU6ATXNMpdpru5mHzJXBlGvR6lg= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id BFBF8F802A8; Thu, 30 Apr 2020 18:53:49 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 1C92CF80247; Wed, 29 Apr 2020 11:56:43 +0200 (CEST) Received: from mail.d-sys.org (70-31-180-213.sta.estpak.ee [213.180.31.70]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 2C399F800B6 for ; Wed, 29 Apr 2020 11:56:39 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 2C399F800B6 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=d-systems.ee header.i=@d-systems.ee header.b="bIEZsR/i" Received: from [10.255.10.40] (GW.ds.local [10.255.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: dmitry@d-systems.ee) by mail.d-sys.org (Postfix) with ESMTPSA id DAD186059B for ; Wed, 29 Apr 2020 12:48:53 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d-systems.ee; s=mail; t=1588153733; bh=E/QUdf+6WltoWml7fyFKesYEGrZvfjmVdFUKj2qt9CQ=; h=To:From:Subject:Date; b=bIEZsR/iuEW5A/O3BAz5oAdj66/GyMOB0rhHUFb2D44aFGQRHgKTYJy3DJoByD6oS aPYOQPaJTgT7Zvhtwo1qRj4OAHmL3U0rtzCvlXKcZZEXzk7+s/sdSNqHaK6A+qQJdw lXwfDqyJektU6+A3AlZsgtZ1j8VRTGKPXeGbVf4UllcxWaKBxTaKQKosByEevIym0z ROFu/mVDfKWWWQQrp17mcHaLZxudgV85/fLEpFFTALhN0oIECxKW6wjMjO5ecgy/tB Wt1RfU+ge8fGqCks/Fjq+w4bkPkYazEe51qzB2go38t0DIuz9b4Ekv+1A0D3y31plu ihwLQz2gBy3MQ== To: alsa-devel@alsa-project.org From: Dmitry Panchenko | d-Systems Subject: Pioneer DJ DJM-900NXS2 support patches Message-ID: Date: Wed, 29 Apr 2020 12:56:37 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 Content-Language: en-GB X-Mailman-Approved-At: Thu, 30 Apr 2020 18:53:43 +0200 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" Pioneer DJ DJM-900NXS2 is a widely used DJ mixer with 2 audio USB interfaces. Both have a MIDI controller, 10 playback and 12 capture channels. Audio endpoints are vendor-specific and 3 files need to be patched. All playback and capture channels work fine with all supported sample rates (44.1k, 48k, 96k). Patches are attached. --- Kind regards, Dmitry Panchenko d-Systems Ltd Lai 6, Tartu 51005, Estonia www.d-systems.ee --- /tmp/linux-5.4.0/sound/usb/quirks-table.h 2020-04-29 11:56:36.000000000 +0300 +++ linux-5.4.0/sound/usb/quirks-table.h 2020-04-29 11:58:22.921621970 +0300 @@ -3592,5 +3592,65 @@ } } }, +{ + /* + * Pioneer DJ DJM-900NXS2 + * 10 channels playback & 12 channels capture @ 44.1/48/96kHz S24LE + */ + USB_DEVICE_VENDOR_SPEC(0x2b73, 0x000a), + .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = &(const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S24_3LE, + .channels = 10, + .iface = 0, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x01, + .ep_attr = USB_ENDPOINT_XFER_ISOC| + USB_ENDPOINT_SYNC_ASYNC| + USB_ENDPOINT_USAGE_IMPLICIT_FB, + .rates = SNDRV_PCM_RATE_44100| + SNDRV_PCM_RATE_48000| + SNDRV_PCM_RATE_96000, + .rate_min = 44100, + .rate_max = 96000, + .nr_rates = 3, + .rate_table = (unsigned int[]) { 44100, 48000, 96000 } + } + }, + { + .ifnum = 0, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = &(const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S24_3LE, + .channels = 12, + .iface = 0, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x82, + .ep_attr = USB_ENDPOINT_XFER_ISOC| + USB_ENDPOINT_SYNC_ASYNC| + USB_ENDPOINT_USAGE_IMPLICIT_FB, + .rates = SNDRV_PCM_RATE_44100| + SNDRV_PCM_RATE_48000| + SNDRV_PCM_RATE_96000, + .rate_min = 44100, + .rate_max = 96000, + .nr_rates = 3, + .rate_table = (unsigned int[]) { 44100, 48000, 96000 } + } + }, + { + .ifnum = -1 + } + } + } +}, #undef USB_DEVICE_VENDOR_SPEC