From patchwork Mon Mar 1 15:27:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas MURE X-Patchwork-Id: 12110071 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=-18.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham 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 D1BEFC433E0 for ; Mon, 1 Mar 2021 15:29:30 +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 5E540614A5 for ; Mon, 1 Mar 2021 15:29:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E540614A5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 D85C91698; Mon, 1 Mar 2021 16:28:36 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz D85C91698 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1614612566; bh=8FJa4vvmvrqvDyuEF6Ng/XtOtvOPcfh6zqZXVOOsxls=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=BZFUP34U5gSKo6A5V4GH5f32UFpte+15pibUYxayvo+NHCN+X8+NytcVdnSBmORCj B6x+lZxDnWkKaeZZrUXcS71aUVHPEqNwpajyEpdaTrfNC34N4nNUlK/+3YIusUo1Tc baTHJk+/8umVCRiPYvgFPd4H+01tulUAYTgK805I= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 594B6F80257; Mon, 1 Mar 2021 16:28:36 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id DEA8CF80275; Mon, 1 Mar 2021 16:28:24 +0100 (CET) Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 98B47F80150 for ; Mon, 1 Mar 2021 16:28:20 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 98B47F80150 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="o6mU2Ok/" Received: by mail-wr1-x42f.google.com with SMTP id f12so12780560wrx.8 for ; Mon, 01 Mar 2021 07:28:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YS38uimQoHCCCcLQNTPdajepwcpHojM32/chajw1jgw=; b=o6mU2Ok/ummMlJHua8kJj+dUHIBpMiiL4oha5tOti0a/IPMIs9AjBrtDGlHcQ6Fxee DZmoW1a5Ui8llfakve1V5FNlPyilVNGZ/U4An1b6FP2rnWxFcemjNX8dXgl++rtvaBGV yxrmcS8tja0BKzQb8fDOU9mvw/xs5rTeMH+m/szWCyqqkCibmuCD05QcN4F3lOUnJqZk 76fbLBgAKUmygPiHg2FiF0JabqrYDH98Ri3TnAI7BnKgoNPu3vQhHItJQ8TFx4XSuzkC +jVdosor6crYAwhdZ0mh8qAmkQFgkblWGB2OciZNaa4g6DLGELQftaTEeI4/uDEI/yaq 0S6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YS38uimQoHCCCcLQNTPdajepwcpHojM32/chajw1jgw=; b=FAhEVADyipAlVF7n/qwzwS/H38/tK2O9v3hdedEjYc0iJMRzgxG6VJZN8XesCITP0f AoCvBvq8pDK0ZeP1IWDR71JgwQvGt9omjL0wPDJ8RwRgAHXsQ+L77W4YfPDbDfM6/KXj quXTFvo0RtwrRe54eMV/AUdd+7zWBJ0YsKmUxyYWg8/Irdu7/gNriu/Yn/e1PUypUGAd fX5fp8U8oJzIGZ14gamGC1z7zXr7hc12HCSjzQzRDxLjQcHUc5pJLeX3U2PNYx0FRE3V DCFPWzUJJ00b2SqbQsbOiQc1wNUfv6SCvNqBbTIohjkWvORLN2Hg5bnPcfJgmsqypf5f wH9Q== X-Gm-Message-State: AOAM532f0FX2GUYehfw+UIaqHC1mbhy4hpoiqo2HteDdw/+YER81S1JN bYqrnynpRe35AN0j1wi1pEE= X-Google-Smtp-Source: ABdhPJxywMgDTlvjFFpyoB3mc93hp0UH/CKFBMw3DpSC8p7X9gskVK0e9aBW9pW0TF7YPT7UwWwajg== X-Received: by 2002:a5d:4523:: with SMTP id j3mr17866582wra.288.1614612499677; Mon, 01 Mar 2021 07:28:19 -0800 (PST) Received: from localhost.localdomain (176-171-138-112.abo.bbox.fr. [176.171.138.112]) by smtp.googlemail.com with ESMTPSA id c128sm201771wme.3.2021.03.01.07.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Mar 2021 07:28:19 -0800 (PST) From: Nicolas MURE To: tiwai@suse.de Subject: [PATCH v2 1/4] ALSA: usb-audio: Add Pioneer DJM-850 to quirks-table Date: Mon, 1 Mar 2021 16:27:26 +0100 Message-Id: <20210301152729.18094-2-nicolas.mure2019@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210301152729.18094-1-nicolas.mure2019@gmail.com> References: <20210301152729.18094-1-nicolas.mure2019@gmail.com> MIME-Version: 1.0 Cc: Nicolas MURE , alsa-devel@alsa-project.org, livvy@base.nu 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" Declare the Pioneer DJM-850 interfaces for capture and playback. See https://github.com/nm2107/Pioneer-DJM-850-driver-reverse-engineering/blob/172fb9a61055960c88c67b7c416fe5bf3609807b/doc/usb-device-specifications.md for the complete device spec. Signed-off-by: Nicolas MURE --- sound/usb/quirks-table.h | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 1165a5ac60f2..9716a9f7c095 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -3817,6 +3817,69 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"), } } }, +{ + /* + * Pioneer DJ DJM-850 + * 8 channels playback and 8 channels capture @ 44.1/48/96kHz S24LE + * Playback on EP 0x05 + * Capture on EP 0x86 + */ + USB_DEVICE_VENDOR_SPEC(0x08e4, 0x0163), + .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 = 8, + .iface = 0, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x05, + .ep_attr = USB_ENDPOINT_XFER_ISOC| + USB_ENDPOINT_SYNC_ASYNC| + USB_ENDPOINT_USAGE_DATA, + .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 = 8, + .iface = 0, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x86, + .ep_idx = 1, + .ep_attr = USB_ENDPOINT_XFER_ISOC| + USB_ENDPOINT_SYNC_ASYNC| + USB_ENDPOINT_USAGE_DATA, + .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 + } + } + } +}, { /* * Pioneer DJ DJM-450 From patchwork Mon Mar 1 15:27:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas MURE X-Patchwork-Id: 12110073 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=-18.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham 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 7434EC433DB for ; Mon, 1 Mar 2021 15:30:22 +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 7B2F664D99 for ; Mon, 1 Mar 2021 15:30:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B2F664D99 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 F3F0216AD; Mon, 1 Mar 2021 16:29:27 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz F3F0216AD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1614612618; bh=1Ax2DhKkqjsMgUps1VuRPo/jNSkRd+eUR4D0moFT/F0=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=AQ+qNDAmE/1fjyw9mKP/3nlPMrEEV+tjSfiMFV+l1jlejGBl0my4RK7dIQoY7eW1K DnIzCCqRRNyxYvndOs8dFMFaQii7q8ktJiIL6rbKpz2EC80b2/q5sMH1FE94APIqNK oeDaLZ9O6SgLywIknJMxK1zQ7IjEY5tAdQCLmzwM= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7E28DF80272; Mon, 1 Mar 2021 16:28:38 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id AF709F8026A; Mon, 1 Mar 2021 16:28:25 +0100 (CET) Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id DF81AF80257 for ; Mon, 1 Mar 2021 16:28:21 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz DF81AF80257 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cL+4HLYF" Received: by mail-wr1-x42a.google.com with SMTP id b18so10102063wrn.6 for ; Mon, 01 Mar 2021 07:28:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WUqDR4v5OPuW6t4yKKokSERzll2nl96gEFjWU1KNhkc=; b=cL+4HLYF+r1aG9SmfNjP+FPrppERbBi7PW9mS7jt8i8jErHUjdudaFX6IUODH/lz6P UuX2oUw6HDN1GlFkD5RXSVHsBUG12xaSBHqvyx//juTk4udh6yvfIfB/EK/7zo3A7v7B MUp/FBLrvRrG2fv3HYCUGXXwPwlaX5dJn8HYsol6s+42Ntt4DNwe4Vyl6plCc9mPUs4i +aLiLZcCiith8Jy9Ze9NEhBW+LALjIUKsxJhcj6zKoxDm9BMhmgKL1ZCUhbTOpYJEIsk JbgztMHu39I9n6P1I/FEc9bHLkMsvn1BnKLcPL0B01pEvNFXqrq4DtqHNVCqj6eBqa4Z Ec0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WUqDR4v5OPuW6t4yKKokSERzll2nl96gEFjWU1KNhkc=; b=JOYMwYa3/HXQB1fJHZLEm7rP3H9oF7h81ff30Bdz245hMv9Diu93D00h3c+DMt9sRA W7er4CzRjpSIHQMD4tApRnLiv98i8LMHXZrWFhvmeHyHXQgKAp73SuUmN4XjKRta063D dZmKr/v40JRzcdd4DbNJ8+DejGdltuYrU9fnw4zCP/fWPHM+uYWktSQ4VkPqpSf4DyiB 06BgQWQVNnpZ/5KGxNqDTzE0BhbslB3jWa3hcfWHC0f7qKJQ3fVEiyN2O8QcbTmjosYe kC7kv3Lgsbs5OveUBNoSsasSs+I8hDsb65sHByVKoqhizRsHIy/6FlHNym4refiU/SHt i5WA== X-Gm-Message-State: AOAM532CQrfrkGSNmXoataCodaV6e75nH4BgZJNM30fFsO0nptHkVUD7 tBlIHIb7vmNfqlWFb+Hwu5w= X-Google-Smtp-Source: ABdhPJyna+xjIqBOKjN8/BeUAymVLYWyDdMR4DePfwxweG+6xp+763sPgCDAN6PqWIAUhYtOWZmrww== X-Received: by 2002:a5d:5149:: with SMTP id u9mr17885769wrt.348.1614612500892; Mon, 01 Mar 2021 07:28:20 -0800 (PST) Received: from localhost.localdomain (176-171-138-112.abo.bbox.fr. [176.171.138.112]) by smtp.googlemail.com with ESMTPSA id c128sm201771wme.3.2021.03.01.07.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Mar 2021 07:28:20 -0800 (PST) From: Nicolas MURE To: tiwai@suse.de Subject: [PATCH v2 2/4] ASLA: usb-audio: Declare Pioneer DJM-850 mixer controls Date: Mon, 1 Mar 2021 16:27:27 +0100 Message-Id: <20210301152729.18094-3-nicolas.mure2019@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210301152729.18094-1-nicolas.mure2019@gmail.com> References: <20210301152729.18094-1-nicolas.mure2019@gmail.com> MIME-Version: 1.0 Cc: Nicolas MURE , alsa-devel@alsa-project.org, livvy@base.nu 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" Declare audio capture controls to choose the audio source, and also to set the capture level (in dB). See https://github.com/nm2107/Pioneer-DJM-850-driver-reverse-engineering/blob/172fb9a61055960c88c67b7c416fe5bf3609807b/doc/windows-djm-850-setting-utility/mixer-output-tab/README.md Signed-off-by: Nicolas MURE --- sound/usb/mixer_quirks.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 08873d2afe4d..b325b6597d91 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -2649,9 +2649,11 @@ static int snd_bbfpro_controls_create(struct usb_mixer_interface *mixer) #define SND_DJM_DEVICE_SHIFT 24 // device table index +// used for the snd_djm_devices table, so please update accordingly #define SND_DJM_250MK2_IDX 0x0 #define SND_DJM_750_IDX 0x1 -#define SND_DJM_900NXS2_IDX 0x2 +#define SND_DJM_850_IDX 0x2 +#define SND_DJM_900NXS2_IDX 0x3 #define SND_DJM_CTL(_name, suffix, _default_value, _windex) { \ @@ -2733,11 +2735,12 @@ static const char *snd_djm_get_label(u16 wvalue, u16 windex) } }; - -// DJM-250MK2 +// common DJM capture level option values static const u16 snd_djm_opts_cap_level[] = { 0x0000, 0x0100, 0x0200, 0x0300 }; + +// DJM-250MK2 static const u16 snd_djm_opts_250mk2_cap1[] = { 0x0103, 0x0100, 0x0106, 0x0107, 0x0108, 0x0109, 0x010d, 0x010a }; @@ -2781,6 +2784,25 @@ static const struct snd_djm_ctl snd_djm_ctls_750[] = { }; +// DJM-850 +static const u16 snd_djm_opts_850_cap1[] = { + 0x0100, 0x0103, 0x0106, 0x0107, 0x0108, 0x0109, 0x010a, 0x010f }; +static const u16 snd_djm_opts_850_cap2[] = { + 0x0200, 0x0201, 0x0206, 0x0207, 0x0208, 0x0209, 0x020a, 0x020f }; +static const u16 snd_djm_opts_850_cap3[] = { + 0x0300, 0x0301, 0x0306, 0x0307, 0x0308, 0x0309, 0x030a, 0x030f }; +static const u16 snd_djm_opts_850_cap4[] = { + 0x0400, 0x0403, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a, 0x040f }; + +static const struct snd_djm_ctl snd_djm_ctls_850[] = { + SND_DJM_CTL("Capture Level", cap_level, 0, SND_DJM_WINDEX_CAPLVL), + SND_DJM_CTL("Ch1 Input", 850_cap1, 1, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch2 Input", 850_cap2, 0, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch3 Input", 850_cap3, 0, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch4 Input", 850_cap4, 1, SND_DJM_WINDEX_CAP) +}; + + // DJM-900NXS2 static const u16 snd_djm_opts_900nxs2_cap1[] = { 0x0100, 0x0102, 0x0103, 0x0106, 0x0107, 0x0108, 0x0109, 0x010a }; @@ -2806,6 +2828,7 @@ static const struct snd_djm_ctl snd_djm_ctls_900nxs2[] = { static const struct snd_djm_device snd_djm_devices[] = { SND_DJM_DEVICE(250mk2), SND_DJM_DEVICE(750), + SND_DJM_DEVICE(850), SND_DJM_DEVICE(900nxs2) }; @@ -3045,6 +3068,9 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer) case USB_ID(0x08e4, 0x017f): /* Pioneer DJ DJM-750 */ err = snd_djm_controls_create(mixer, SND_DJM_750_IDX); break; + case USB_ID(0x08e4, 0x0163): /* Pioneer DJ DJM-850 */ + err = snd_djm_controls_create(mixer, SND_DJM_850_IDX); + break; case USB_ID(0x2b73, 0x000a): /* Pioneer DJ DJM-900NXS2 */ err = snd_djm_controls_create(mixer, SND_DJM_900NXS2_IDX); break; From patchwork Mon Mar 1 15:27:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas MURE X-Patchwork-Id: 12110075 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=-18.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham 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 2B24BC433E0 for ; Mon, 1 Mar 2021 15:30:26 +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 4E01464DB2 for ; Mon, 1 Mar 2021 15:30:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4E01464DB2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 4FA3E16B8; Mon, 1 Mar 2021 16:29:33 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 4FA3E16B8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1614612623; bh=dwLwOW04yrCrWnLSViGwri/swmaChV8GHbhp0ZLVAjA=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=qAfr1H44GqfuD2RrTPxpfky/qFnLoQo9hCql1tLHMHdSd7QAi2h+18816CpUP1Fhc 1HPAO9LcILXrKFUHkFf6KcHwGogHQ9vYq4EH7Ggaguz+DIlriJl33v53uauFbFSl3q wBeMvhNhogrkWMy4g5iYroLLZoWNlrY4tAb4kCeU= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 70095F802E0; Mon, 1 Mar 2021 16:28:39 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 6BE9CF80272; Mon, 1 Mar 2021 16:28:26 +0100 (CET) Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 2616AF8025E for ; Mon, 1 Mar 2021 16:28:22 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 2616AF8025E Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LlZyVzpF" Received: by mail-wr1-x430.google.com with SMTP id j2so3735365wrx.9 for ; Mon, 01 Mar 2021 07:28:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6W/xTRp8He9BJ5rJ9sDchzMZU8/7AR1uLmgazPo2EWU=; b=LlZyVzpFWQUn2TwM76oXVGRzU9M+qtjgffKCemxdblkEbpl9jARjWrSbrtuzGJSuuB Ui7SJDpCxKsXY/Yy+REoqFFz+e4hMpOVsvJtyVNwF2rkpdQpn/OqQEArjlQnda1XZ4w4 g1rnZA69xuKElojzV0DgIsGv6elc8RDEVWOO9+x/wLryeSp9vUOUowFfJbdVXoJLx5EL HqEuw/TnnhL9ewl31yB5rBfVz+nILENc96YR8DzmZkYv6x30BfUR0+Tx12TITyRwNcS6 s/L10VYi/z8ql85bn6l+U8qYwcPR/7ZNYf/xf8N0sQQn5YQZ/4c9KgNVur7BxvV4NScG PYxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6W/xTRp8He9BJ5rJ9sDchzMZU8/7AR1uLmgazPo2EWU=; b=hheuwwXaDZTbXQ1eUsRPaHMcyqi6RM1BKWqYA0gai5CBDdBSIHwOB62G+VJUbw412S KUoF5H/vz26k8B97Bf5PiP9ibwHfIJLGsqLaP8pZl5Fib1IobW+GAh10u0BNYUJXIb3S yvVhEhY8Uf0keqLjI1Lp3P2b8KRKiKdf0byfb26qsuzehxN3pYUCzczBdZ2TonAKcp3m R1rIQi6/Sw5VOEVHprJ6wtdfCU/wZnSa+U0iT3wlMnH0neYCd634MrH4BzdC8/BDm1uY 5Kt7SrDkR7g7svccf1lCjbbY8KztW5mTiHZVrRAnA1OhfpTlFT2mN9nQrn3vCmYN9wps iMLg== X-Gm-Message-State: AOAM532K1eEA2pqg13w/YFVgnzIRXglbe7ux+6rq/oxOmg1RC8AJTlZB 3oB0NkUCjpQ3kIQgpDuEE6Y= X-Google-Smtp-Source: ABdhPJzxPHkamR/efxc5NFfVeI53FiLL83+X+kckaSLih5fnjY7OG/LGcIuL298GVrzqLtn8fY5sHQ== X-Received: by 2002:adf:a3c2:: with SMTP id m2mr16214241wrb.195.1614612502290; Mon, 01 Mar 2021 07:28:22 -0800 (PST) Received: from localhost.localdomain (176-171-138-112.abo.bbox.fr. [176.171.138.112]) by smtp.googlemail.com with ESMTPSA id c128sm201771wme.3.2021.03.01.07.28.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Mar 2021 07:28:21 -0800 (PST) From: Nicolas MURE To: tiwai@suse.de Subject: [PATCH v2 3/4] ALSA: usb-audio: Configure Pioneer DJM-850 samplerate Date: Mon, 1 Mar 2021 16:27:28 +0100 Message-Id: <20210301152729.18094-4-nicolas.mure2019@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210301152729.18094-1-nicolas.mure2019@gmail.com> References: <20210301152729.18094-1-nicolas.mure2019@gmail.com> MIME-Version: 1.0 Cc: Nicolas MURE , alsa-devel@alsa-project.org, livvy@base.nu 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" Send an `URB_CONTROL out` USB frame to the device to configure its samplerate. This should be done before using the device for audio streaming (capture or playback). See https://github.com/nm2107/Pioneer-DJM-850-driver-reverse-engineering/blob/172fb9a61055960c88c67b7c416fe5bf3609807b/doc/windows-dvs/framerate-setting/README.md Signed-off-by: Nicolas MURE --- sound/usb/quirks.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 737b2729c0d3..d02dac5fcd40 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -1503,6 +1503,9 @@ void snd_usb_set_format_quirk(struct snd_usb_substream *subs, case USB_ID(0x2b73, 0x0013): /* Pioneer DJM-450 */ pioneer_djm_set_format_quirk(subs, 0x0082); break; + case USB_ID(0x08e4, 0x0163): /* Pioneer DJM-850 */ + pioneer_djm_set_format_quirk(subs, 0x0086); + break; } } From patchwork Mon Mar 1 15:27:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas MURE X-Patchwork-Id: 12110079 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=-13.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham 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 D7565C433E0 for ; Mon, 1 Mar 2021 15:31:12 +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 5029464DD2 for ; Mon, 1 Mar 2021 15:31:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5029464DD2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 C68F516C8; Mon, 1 Mar 2021 16:30:20 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz C68F516C8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1614612670; bh=wJPsAnNSTfJFx0YveVJ94nbbzvANCU6bdbKmpeSCoQE=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=jo4iaiuCriXbjTNLcdeIzffhyvHSYwvSyZMVm3NjUbjr24M0k2QD6OcSyxo/+43Mk WMn9PBqahV8hjvNTmCd2TxF85Eqw4F5XlXzqAMVDVB0EpJSlGk9OeHrQGAbplAfGX8 wZvgp3h5TEpJ6fSYsLuuQLebk5bIqnoP8qTiAFlM= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id C275EF8032D; Mon, 1 Mar 2021 16:28:40 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 6C8C7F8027D; Mon, 1 Mar 2021 16:28:32 +0100 (CET) Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 0514DF80150 for ; Mon, 1 Mar 2021 16:28:28 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 0514DF80150 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L5xxJGQr" Received: by mail-wm1-x331.google.com with SMTP id k66so14935617wmf.1 for ; Mon, 01 Mar 2021 07:28:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tWMapBAvwS/onVXYHA6yVWqlynyNSsmib9BAxoMbLy4=; b=L5xxJGQr+EhL+7OieumjAUGKuxCzrXf7ykwfxFETSbeOyg0bBLJJik3gmQhq13ysX4 Fcd2lT+mbwepokW9VJS2a53QWl0kGKv0Bb8w2UW78SyfIwnIS8fUjoDhwncAF/P+sTke UV3agPJOhP/Y0eaDwxm1gVxRyaMm/5HnGEOJ7VstpJeH6XPAiGaU4Leph8Zaxwjv4YOq 6EO3L3q1xLhDw6YgSLLArw/A33Jr2OalLvu1oywAcL3D/GrJ9CH9oPE2n53Fu/9hbNmW DrzwMvvzgDLtAMgvcSkHlBDqfi+hRIuJoBMAP7ZXmRHvK/ZBdEG90qnSo3rfo4iFXd+K PXPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tWMapBAvwS/onVXYHA6yVWqlynyNSsmib9BAxoMbLy4=; b=XX8OGVN+7c/xhjlxX9A5CIh/AwzIwXMp47i7sWowtJIgTNQxzo64JQSSS1TEh6hPjq oo/fFMJeb7mP29Rrwzozjaz8iNcKrpwxfmww02g/xTaN+kchTAwkBXLqigN0l/tFfWQE eH08IWrjtYP0X7rBTTB6EetxQV+UQgiEGsrVb2J0gRsJZXeuAc2vfmfC9q+YAj+TCOxH IHfTEqGm6+F0QW4aFyxgBWmg1tqIdaUjdvQeLzc1aOa0ajD/nS1VUHltI7OlzRaxtnsS vJXNiW9Kg9St6mjBKRaS+lOzidLxkj8V3jCvSO9xbSxm3EAx4lAh2oeJdFqAZ7cZct6h GzVw== X-Gm-Message-State: AOAM53181Q0jaUOjjzAHOS0ImMHK59mq0twpDv48XUcYT3YRC4lhcaLC yinOrjWgcDbi5XDwMQBy0no= X-Google-Smtp-Source: ABdhPJxCJan5i2p1C0l50sI7PTD6qaFVPbqXWpQBQo+eGRWgq3cdMzwegifHsSb9mAKqGOYj4VmABA== X-Received: by 2002:a7b:c353:: with SMTP id l19mr16462537wmj.147.1614612503018; Mon, 01 Mar 2021 07:28:23 -0800 (PST) Received: from localhost.localdomain (176-171-138-112.abo.bbox.fr. [176.171.138.112]) by smtp.googlemail.com with ESMTPSA id c128sm201771wme.3.2021.03.01.07.28.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Mar 2021 07:28:22 -0800 (PST) From: Nicolas MURE To: tiwai@suse.de Subject: [PATCH v2 4/4] ASLA: usb-audio: fix Pioneer DJM-850 control label info Date: Mon, 1 Mar 2021 16:27:29 +0100 Message-Id: <20210301152729.18094-5-nicolas.mure2019@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210301152729.18094-1-nicolas.mure2019@gmail.com> References: <20210301152729.18094-1-nicolas.mure2019@gmail.com> MIME-Version: 1.0 Cc: Nicolas MURE , alsa-devel@alsa-project.org, livvy@base.nu 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" Unlike the other DJM, the value to set the "CD/LINE" and "LINE" capture control options are inverted. This fix makes sure that the displayed info label while using `alsamixer` matches the input switches label on the DJM-850 mixer. Signed-off-by: Nicolas MURE --- sound/usb/mixer_quirks.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index b325b6597d91..5b77e8140ba6 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -2693,7 +2693,7 @@ static const char *snd_djm_get_label_caplevel(u16 wvalue) } }; -static const char *snd_djm_get_label_cap(u16 wvalue) +static const char *snd_djm_get_label_cap_common(u16 wvalue) { switch (wvalue & 0x00ff) { case SND_DJM_CAP_LINE: return "Control Tone LINE"; @@ -2715,6 +2715,25 @@ static const char *snd_djm_get_label_cap(u16 wvalue) } }; +// The DJM-850 has different values for CD/LINE and LINE capture +// control options than the other DJM declared in this file. +static const char *snd_djm_get_label_cap_850(u16 wvalue) +{ + switch (wvalue & 0x00ff) { + case 0x00: return "Control Tone CD/LINE"; + case 0x01: return "Control Tone LINE"; + default: return snd_djm_get_label_cap_common(wvalue); + } +}; + +static const char *snd_djm_get_label_cap(u8 device_idx, u16 wvalue) +{ + switch (device_idx) { + case SND_DJM_850_IDX: return snd_djm_get_label_cap_850(wvalue); + default: return snd_djm_get_label_cap_common(wvalue); + } +}; + static const char *snd_djm_get_label_pb(u16 wvalue) { switch (wvalue & 0x00ff) { @@ -2725,11 +2744,11 @@ static const char *snd_djm_get_label_pb(u16 wvalue) } }; -static const char *snd_djm_get_label(u16 wvalue, u16 windex) +static const char *snd_djm_get_label(u8 device_idx, u16 wvalue, u16 windex) { switch (windex) { case SND_DJM_WINDEX_CAPLVL: return snd_djm_get_label_caplevel(wvalue); - case SND_DJM_WINDEX_CAP: return snd_djm_get_label_cap(wvalue); + case SND_DJM_WINDEX_CAP: return snd_djm_get_label_cap(device_idx, wvalue); case SND_DJM_WINDEX_PB: return snd_djm_get_label_pb(wvalue); default: return NULL; } @@ -2852,7 +2871,8 @@ static int snd_djm_controls_info(struct snd_kcontrol *kctl, if (info->value.enumerated.item >= noptions) info->value.enumerated.item = noptions - 1; - name = snd_djm_get_label(ctl->options[info->value.enumerated.item], + name = snd_djm_get_label(device_idx, + ctl->options[info->value.enumerated.item], ctl->wIndex); if (!name) return -EINVAL;