From patchwork Sun Mar 7 13:30:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 12120683 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 B3766C433DB for ; Sun, 7 Mar 2021 13:33:46 +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 270BA64D9A for ; Sun, 7 Mar 2021 13:33:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 270BA64D9A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 B64CF1930; Sun, 7 Mar 2021 14:32:54 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz B64CF1930 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1615124024; bh=RAlb1+by613LvdC3rbdYqSr6E1bH1PNZUzXr9FBXE1o=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=l2FXBAR8TX1YdjRQCvcoRh0cXVgMQjvbmlpR6VwgjomUb2WkWfQ7E6GH/YHXK1/fb 0utwp35AoYhWwA1JfidwM8ENn7GWha7Oz+Lx+wY/PgvSYIy56jxOoMqDWVqvOxwjyn QvWXf9B7H938MhBotcoFFzUk5pSJ+GiHEq+9WSOw= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 1204CF80482; Sun, 7 Mar 2021 14:30:43 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 0F7B6F802E7; Sun, 7 Mar 2021 14:30:33 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id BF528F8019B for ; Sun, 7 Mar 2021 14:30:14 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz BF528F8019B Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="cGsCbOTO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615123811; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SHU77spW39BhXLl2khuj00Iq6JVeXwQVZQpSm57VkBw=; b=cGsCbOTORG9gapx0fVAUNuR2AXw78k+7vv/D9MK8b4pztDbPcMOLtv/Vj3rHkwtftZyJW3 jGWfbyH9FvI2yEPmTDxBHVW39FtbMJ7AXzp5LQllHvipUe+0Ec+kNOzT8pnN0CYl5CGrES t9OJVc8Sl9F0bLK0x6Nz1hsGbTbSWDs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-533-Vjine5g2Oi2WgaZydM5ghA-1; Sun, 07 Mar 2021 08:30:09 -0500 X-MC-Unique: Vjine5g2Oi2WgaZydM5ghA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AD97D26860; Sun, 7 Mar 2021 13:30:08 +0000 (UTC) Received: from x1.localdomain (ovpn-112-90.ams2.redhat.com [10.36.112.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id E51615C230; Sun, 7 Mar 2021 13:30:07 +0000 (UTC) From: Hans de Goede To: Jaroslav Kysela , alsa-devel@alsa-project.org Subject: [PATCH alsa-lib v3 1/5] mixer: simple - Add generic exception mechanism for non-standard control-names Date: Sun, 7 Mar 2021 14:30:01 +0100 Message-Id: <20210307133005.30801-2-hdegoede@redhat.com> In-Reply-To: <20210307133005.30801-1-hdegoede@redhat.com> References: <20210307133005.30801-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hdegoede@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Hans de Goede 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" Add a generic exception mechanism for mixer-control-names which don't use the standard suffixes from the suffixes table. And move the existing exceptions which consist of a simple !strcmp() check over to this new mechanism. This also fixes the "Capture Volume" and "Capture Switch" exceptions no longer working after commit 86b9c67774bc ("mixer: simple - Unify simple_none: base_len() exception handling") because they were moved to after the suffix checking, so they would be treated as CTL_GLOBAL_VOLUME resp. CTL_GLOBAL_SWITCH based on their suffix before the exception check has a chance to check for a match. Signed-off-by: Hans de Goede --- src/mixer/simple_none.c | 48 +++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 71d88486..30d5aa8b 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -905,14 +905,41 @@ static const struct suf { {" Volume", CTL_GLOBAL_VOLUME}, {NULL, 0} }; + +static const struct excep { + const char *name; + int base_len; + selem_ctl_type_t type; +} exceptions[] = { + /* Special case - handle "Input Source" as a capture route. + * Note that it's *NO* capture source. A capture source is split over + * sub-elements, and multiple capture-sources will result in an error. + * That's why some drivers use "Input Source" as a workaround. + * Hence, this is a workaround for a workaround to get the things + * straight back again. Sigh. + */ + {"Input Source", 12, CTL_CAPTURE_ROUTE}, + /* Avoid these Capture Volume/Switch controls getting seen as GLOBAL VOL/SW */ + {"Capture Volume", 7, CTL_CAPTURE_VOLUME}, + {"Capture Switch", 7, CTL_CAPTURE_SWITCH}, + {NULL,} +}; #endif /* Return base length */ static int base_len(const char *name, selem_ctl_type_t *type) { + const struct excep *e; const struct suf *p; size_t nlen = strlen(name); + for (e = exceptions; e->name; e++) { + if (!strcmp(name, e->name)) { + *type = e->type; + return e->base_len; + } + } + for (p = suffixes; p->suffix; p++) { size_t slen = strlen(p->suffix); size_t l; @@ -926,27 +953,6 @@ static int base_len(const char *name, selem_ctl_type_t *type) } } - /* exception: "Capture Volume" and "Capture Switch" */ - if (!strcmp(name, "Capture Volume")) { - *type = CTL_CAPTURE_VOLUME; - return strlen("Capture"); - } - if (!strcmp(name, "Capture Switch")) { - *type = CTL_CAPTURE_SWITCH; - return strlen("Capture"); - } - - /* Special case - handle "Input Source" as a capture route. - * Note that it's *NO* capture source. A capture source is split over - * sub-elements, and multiple capture-sources will result in an error. - * That's why some drivers use "Input Source" as a workaround. - * Hence, this is a workaround for a workaround to get the things - * straight back again. Sigh. - */ - if (!strcmp(name, "Input Source")) { - *type = CTL_CAPTURE_ROUTE; - return strlen(name); - } if (strstr(name, "3D Control")) { if (strstr(name, "Depth")) { *type = CTL_PLAYBACK_VOLUME; From patchwork Sun Mar 7 13:30:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 12120677 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 9006EC433DB for ; Sun, 7 Mar 2021 13:32:20 +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 D17F8650E7 for ; Sun, 7 Mar 2021 13:32:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D17F8650E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 7423D1928; Sun, 7 Mar 2021 14:31:28 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 7423D1928 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1615123938; bh=S7IWAbPv5qnh3Ho4oFKppBM3Ltr7CXQAYFjP/7PAjQY=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=Ik2lkEwYHSWYJc9OnGQ2xs9oMfkFG6eNWxTur5Z1doUnC2A74DpN1xiaU1rPFki+B qbu6TTmC761Q03dwxKNhZXLQpylm8YSxIINKAp7XD2kE7WH0JbDfTLGYPRAth99EAi 2fOxBIRcTK2WdVPfOGqLu5X4wxoTt/YUljYyjWP0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 91C59F8029B; Sun, 7 Mar 2021 14:30:39 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 4A44EF802E7; Sun, 7 Mar 2021 14:30:33 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id C2F3EF80256 for ; Sun, 7 Mar 2021 14:30:14 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz C2F3EF80256 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="g04CdcwB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615123812; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=i047CKFCjWISjT8RgNvNjcSgYVkSqF6L9d0bgC4eBM0=; b=g04CdcwBAZKRJrSCDAlb6IaAB8ukTZZE72BoY19UUTWdLJKWcBpPwfpKk08cY1e82lBKi6 nmQcI2pyKz3Af7MoopPqj7se/NPzxjr5wMxTFDHhAKS+MBmT7f/nhOaqc2lztEKeP2LR6O c6BHCpzT53GdqNF7ux+SUL4vqm1L4Wo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-513-TJgNWWD-NvCp_7PFRoVMuA-1; Sun, 07 Mar 2021 08:30:10 -0500 X-MC-Unique: TJgNWWD-NvCp_7PFRoVMuA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C14DF8143F0; Sun, 7 Mar 2021 13:30:09 +0000 (UTC) Received: from x1.localdomain (ovpn-112-90.ams2.redhat.com [10.36.112.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 020C25C1CF; Sun, 7 Mar 2021 13:30:08 +0000 (UTC) From: Hans de Goede To: Jaroslav Kysela , alsa-devel@alsa-project.org Subject: [PATCH alsa-lib v3 2/5] mixer: simple - Move handling of 3D Control - Depth controls to the exceptions list Date: Sun, 7 Mar 2021 14:30:02 +0100 Message-Id: <20210307133005.30801-3-hdegoede@redhat.com> In-Reply-To: <20210307133005.30801-1-hdegoede@redhat.com> References: <20210307133005.30801-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hdegoede@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Hans de Goede 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" Remove the custom handling of 3D Control - Depth control-names, replacing this with adding the 3 full names which are used for such controls to the exceptions list: "3D Control - Depth" "3D Control Sigmatel - Depth" "3D Control Sigmatel - Rear Depth" Signed-off-by: Hans de Goede --- src/mixer/simple_none.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 30d5aa8b..b29554cb 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -922,6 +922,10 @@ static const struct excep { /* Avoid these Capture Volume/Switch controls getting seen as GLOBAL VOL/SW */ {"Capture Volume", 7, CTL_CAPTURE_VOLUME}, {"Capture Switch", 7, CTL_CAPTURE_SWITCH}, + /* Playback Volume/Switch controls without a " Playback ..." suffix */ + {"3D Control - Depth", 18, CTL_PLAYBACK_VOLUME}, + {"3D Control Sigmatel - Depth", 27, CTL_PLAYBACK_VOLUME}, + {"3D Control Sigmatel - Rear Depth", 32, CTL_PLAYBACK_VOLUME}, {NULL,} }; #endif @@ -953,13 +957,6 @@ static int base_len(const char *name, selem_ctl_type_t *type) } } - if (strstr(name, "3D Control")) { - if (strstr(name, "Depth")) { - *type = CTL_PLAYBACK_VOLUME; - return strlen(name); - } - } - *type = CTL_SINGLE; return strlen(name); } From patchwork Sun Mar 7 13:30:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 12120679 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 DC8CAC433DB for ; Sun, 7 Mar 2021 13:32:59 +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 51371650BD for ; Sun, 7 Mar 2021 13:32:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 51371650BD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 DFD3D1F1B; Sun, 7 Mar 2021 14:32:07 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz DFD3D1F1B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1615123978; bh=b+s3OBotdKH5qg136xVspP+3hqETci4VM5OPwDEjIYA=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=EbeskOkmMMoPWQD8sExUTKg2fMMoyDvJrBYBUxwF+jUbYitEY1tuno9C8WUcAvxu+ hhygZ7LIdo7TUF8/1WEX7KOI8sM4JLGiAA4D7drqxoeUuLM44H4dUtfH9U75fuc+8c 0kmCg+NkEyMkTuIhS7G44pRuhlv5LKDqm7vADyDA= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 965FBF8032B; Sun, 7 Mar 2021 14:30:40 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 6816FF8032B; Sun, 7 Mar 2021 14:30:33 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 5E7C7F8025A for ; Sun, 7 Mar 2021 14:30:15 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 5E7C7F8025A Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Z9/gWB3l" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615123813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5B4hNxElmX8Qxaj9doCBhadPFHIDCtqOWrUg8cq2q4w=; b=Z9/gWB3l23mET4CVKocZecGuI2IWbJUwaSlMsk/Rtr0Inh2UNEa2pmnb0vZ806ucf3cmkv SR4SDtYKBF/uvBoVORg6wTrEvkEjn3dHnJVVXZxBbqSBk6YiqKF0AO6WzfsRj2Ap+DI67J Rn69VQ+ErGC2Fa+4WYy2wSHGZIDA6Hg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-318-FmIREiuTMt6cwwR-vROJeA-1; Sun, 07 Mar 2021 08:30:11 -0500 X-MC-Unique: FmIREiuTMt6cwwR-vROJeA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D150D18D6A2C; Sun, 7 Mar 2021 13:30:10 +0000 (UTC) Received: from x1.localdomain (ovpn-112-90.ams2.redhat.com [10.36.112.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 12B295C1CF; Sun, 7 Mar 2021 13:30:09 +0000 (UTC) From: Hans de Goede To: Jaroslav Kysela , alsa-devel@alsa-project.org Subject: [PATCH alsa-lib v3 3/5] mixer: simple - Add exceptions for non " Volume" suffixed capture vol-ctls used in ASoC realtek codec drivers Date: Sun, 7 Mar 2021 14:30:03 +0100 Message-Id: <20210307133005.30801-4-hdegoede@redhat.com> In-Reply-To: <20210307133005.30801-1-hdegoede@redhat.com> References: <20210307133005.30801-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hdegoede@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Hans de Goede 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" The following ASoC codec drivers: sound/soc/codecs/rt5640.c sound/soc/codecs/rt5645.c sound/soc/codecs/rt5651.c sound/soc/codecs/rt5677.c Use capture-volume-control names like: "IN1 Boost", note the missing " Volume" suffix. This causes the mixer code to not identify these as volume-controls, which causes some of the dB related sm_elem_ops to return -EINVAL. This in turn causes alsamixer to not show dB info and causes UCM profile HW volume control support in pulseaudio to not work properly due to the lacking dB scale info. This cannot be fixed on the kernel side because the non " Volume" suffixed names are used in UCM profiles currently shipping in alsa-ucm-conf. Add these to the exceptions table, so that these correctly get identified as CTL_CAPTURE_VOLUME controls. Signed-off-by: Hans de Goede --- src/mixer/simple_none.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index b29554cb..8f964959 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -926,6 +926,11 @@ static const struct excep { {"3D Control - Depth", 18, CTL_PLAYBACK_VOLUME}, {"3D Control Sigmatel - Depth", 27, CTL_PLAYBACK_VOLUME}, {"3D Control Sigmatel - Rear Depth", 32, CTL_PLAYBACK_VOLUME}, + /* Capture Volume/Switch controls without a " Capture ..." suffix */ + {"ADC Boost Gain", 14, CTL_CAPTURE_VOLUME}, + {"IN1 Boost", 9, CTL_CAPTURE_VOLUME}, + {"IN2 Boost", 9, CTL_CAPTURE_VOLUME}, + {"IN3 Boost", 9, CTL_CAPTURE_VOLUME}, {NULL,} }; #endif From patchwork Sun Mar 7 13:30:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 12120681 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 95BEDC433E0 for ; Sun, 7 Mar 2021 13:33:11 +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 A9480650BD for ; Sun, 7 Mar 2021 13:33:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A9480650BD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 66A8D1F28; Sun, 7 Mar 2021 14:32:16 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 66A8D1F28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1615123986; bh=p7VWHgR1ITEEX+8LlwQB+9+He2yowwjdKGL0H260rgc=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=fqnPp9byYrNovYd1dVfTtQYRjr8XGmpggebdzFyIkyS38py6v7qVzYuRJwN5yS7E7 juC/MEUz/JWRBIAywDutZYqZZRogZXWIUHRi7E1TurMc6Jkp7SNIRT/XOpBsQd2oRr sAHmt5iOp+WYRfX7R/5i3WnO0yQNoN9oZphoCjCc= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7B12CF8042F; Sun, 7 Mar 2021 14:30:41 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id D28EAF8025A; Sun, 7 Mar 2021 14:30:33 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 5FD8BF80275 for ; Sun, 7 Mar 2021 14:30:18 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 5FD8BF80275 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="bSabm9Uu" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615123816; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j/CX1bmk7VyVvG8DVLSSYlp5BHvTlqOBOy5C6FxS73U=; b=bSabm9UuPJelR9bY1iKZ3BYyJTHKPSoHwWGbeKxzixeVMex5tIXooyR+kMzsqH8tZ+sKNI Lcn3OHL4AAe0iyuib9m643u/89nZOpvb89SRapNMHXblJjCD/9OxkW3tEe9lZ6v2N6Uf70 kiGS9Johqg645VIoITKKV2V4YcbHreU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-549-_64VhUY2NDK9J5FWvku3DQ-1; Sun, 07 Mar 2021 08:30:13 -0500 X-MC-Unique: _64VhUY2NDK9J5FWvku3DQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 209578143F0; Sun, 7 Mar 2021 13:30:12 +0000 (UTC) Received: from x1.localdomain (ovpn-112-90.ams2.redhat.com [10.36.112.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 26BCB5C1CF; Sun, 7 Mar 2021 13:30:11 +0000 (UTC) From: Hans de Goede To: Jaroslav Kysela , alsa-devel@alsa-project.org Subject: [PATCH alsa-lib v3 4/5] mixer: simple - Add exceptions for some capture-vol-ctls which have a " Volume" suffix Date: Sun, 7 Mar 2021 14:30:04 +0100 Message-Id: <20210307133005.30801-5-hdegoede@redhat.com> In-Reply-To: <20210307133005.30801-1-hdegoede@redhat.com> References: <20210307133005.30801-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hdegoede@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Hans de Goede 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" The following ASoC codec drivers: sound/soc/codecs/rt5659.c sound/soc/codecs/rt5660.c sound/soc/codecs/rt5665.c sound/soc/codecs/rt5668.c sound/soc/codecs/rt5670.c sound/soc/codecs/rt5682.c Use the following troublesome capture-volume-control names: "IN1 Boost Volume" "IN2 Boost Volume" "IN3 Boost Volume" "STO1 ADC Boost Gain Volume" "STO2 ADC Boost Gain Volume" "Mono ADC Boost Gain Volume" And sound/soc/codecs/es8316.c uses "ADC PGA Gain Volume". Note how these are suffixed with just " Volume" instead of "Capture Volume". Add these to the exceptions table, so that the type correctly gets set to CTL_CAPTURE_VOLUME instead of CTL_GLOBAL_VOLUME. This correctly makes snd_mixer_selem_has_capture_volume() return true for these (and makes snd_mixer_selem_has_common_volume() return false). Signed-off-by: Hans de Goede --- src/mixer/simple_none.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 8f964959..de81966f 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -920,8 +920,15 @@ static const struct excep { */ {"Input Source", 12, CTL_CAPTURE_ROUTE}, /* Avoid these Capture Volume/Switch controls getting seen as GLOBAL VOL/SW */ + {"ADC PGA Gain Volume", 12, CTL_CAPTURE_VOLUME}, {"Capture Volume", 7, CTL_CAPTURE_VOLUME}, {"Capture Switch", 7, CTL_CAPTURE_SWITCH}, + {"IN1 Boost Volume", 9, CTL_CAPTURE_VOLUME}, + {"IN2 Boost Volume", 9, CTL_CAPTURE_VOLUME}, + {"IN3 Boost Volume", 9, CTL_CAPTURE_VOLUME}, + {"Mono ADC Boost Gain Volume", 19, CTL_CAPTURE_VOLUME}, + {"STO1 ADC Boost Gain Volume", 19, CTL_CAPTURE_VOLUME}, + {"STO2 ADC Boost Gain Volume", 19, CTL_CAPTURE_VOLUME}, /* Playback Volume/Switch controls without a " Playback ..." suffix */ {"3D Control - Depth", 18, CTL_PLAYBACK_VOLUME}, {"3D Control Sigmatel - Depth", 27, CTL_PLAYBACK_VOLUME}, From patchwork Sun Mar 7 13:30:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 12120675 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 71A50C433E0 for ; Sun, 7 Mar 2021 13:32:16 +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 8B5AF650EA for ; Sun, 7 Mar 2021 13:32:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8B5AF650EA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 A87501930; Sun, 7 Mar 2021 14:31:23 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz A87501930 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1615123933; bh=8O0d/kNPgBpV5+yYxJPPAvEu1uKERHrms99Zk7cIPl0=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=WTlU7+dK014HPirA4p++l5PKsi8HxGxL547D/j/kmktxZq83p49h92wCRy0FFtUi0 X+DBhVFlKQxiHTxwaepq8JHaHq4u/+GJTw4t2rgtInWcdvmE7nXHK13kT8rmurMeEn i9s3ld/caJLmcog8p2xozvzh1D0Oo592L5U2VH4Q= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7FCC7F80275; Sun, 7 Mar 2021 14:30:33 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 373BCF8028B; Sun, 7 Mar 2021 14:30:26 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 49452F80139 for ; Sun, 7 Mar 2021 14:30:17 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 49452F80139 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="V12NwWE8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615123816; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9lj3yTk+vlO6dCXJo07zGOEEWDDRs84TfJ/OXTzWp/Y=; b=V12NwWE83r2sf+DC2A7Gp+ZN7tUYozeqYOdRaGugjAi4lZdRrWrf72uHhdM/UGP+AxE//Y 3aHryhVG087C3YRzqL7li5XPBfuoyMoly1I40J6mAa/fTpZejwxZkNiidfW6BYEIiqO6y3 RBrV1aA634grVE1ye5Ha/13kCt5iGd0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-183-zWQLVDfuN5qlOWhi3ASqMg-1; Sun, 07 Mar 2021 08:30:14 -0500 X-MC-Unique: zWQLVDfuN5qlOWhi3ASqMg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3474E1005D4A; Sun, 7 Mar 2021 13:30:13 +0000 (UTC) Received: from x1.localdomain (ovpn-112-90.ams2.redhat.com [10.36.112.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6859A5C1CF; Sun, 7 Mar 2021 13:30:12 +0000 (UTC) From: Hans de Goede To: Jaroslav Kysela , alsa-devel@alsa-project.org Subject: [PATCH alsa-lib v3 5/5] mixer: simple - Add exceptions for some Playback Switches with a " Channel Switch" suffix Date: Sun, 7 Mar 2021 14:30:05 +0100 Message-Id: <20210307133005.30801-6-hdegoede@redhat.com> In-Reply-To: <20210307133005.30801-1-hdegoede@redhat.com> References: <20210307133005.30801-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=hdegoede@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Hans de Goede 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" The following ASoC codec drivers: sound/soc/codecs/rt5640.c sound/soc/codecs/rt5645.c Use the following troublesome playback-switch-control names: "Headphone Channel Switch" "HP Channel Switch" "Speaker Channel Switch" There are 2 problems with these names: 1. They are the mute controls for the matching: "Headphone Playback Volume" "HP Playback Volume" "Speaker Playback Volume" controls, to be properly paired, which is necessary for HW volume-control support, the simple mixer code needs to recognize that the base-name for these is e.g. "Headphone" not "Headphone Channel". 2. They are playback-switches, yet they get recognized as global-switches. Add these to the exceptions table so that they get the proper basename and type set. Note we can NOT fix this by adding " Channel Switch" as a suffix to the suffixes table, because the line-out output on these codecs has the following controls: "OUT Playback Switch" "OUT Channel Switch" "OUT Playback Volume" Where the 2 switches describe mutes in 2 different places in the graph. So if we were to add a " Channel Switch" suffix map to CTL_PLAYBACK_SWITCH then we would get 2 CTL_PLAYBACK_SWITCH controls for the "OUT" mixer element, which is not allowed. Signed-off-by: Hans de Goede --- src/mixer/simple_none.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index de81966f..d5025f68 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -933,6 +933,9 @@ static const struct excep { {"3D Control - Depth", 18, CTL_PLAYBACK_VOLUME}, {"3D Control Sigmatel - Depth", 27, CTL_PLAYBACK_VOLUME}, {"3D Control Sigmatel - Rear Depth", 32, CTL_PLAYBACK_VOLUME}, + {"Headphone Channel Switch", 9, CTL_PLAYBACK_SWITCH}, + {"HP Channel Switch", 2, CTL_PLAYBACK_SWITCH}, + {"Speaker Channel Switch", 7, CTL_PLAYBACK_SWITCH}, /* Capture Volume/Switch controls without a " Capture ..." suffix */ {"ADC Boost Gain", 14, CTL_CAPTURE_VOLUME}, {"IN1 Boost", 9, CTL_CAPTURE_VOLUME},