From mboxrd@z Thu Jan 1 00:00:00 1970 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=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C2529C352A3 for ; Tue, 11 Feb 2020 16:12:23 +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 494FF2070A for ; Tue, 11 Feb 2020 16:12:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="jVyVArqV"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gerhold.net header.i=@gerhold.net header.b="EE85IQzy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 494FF2070A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=gerhold.net 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 A2CD916D4; Tue, 11 Feb 2020 17:11:31 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz A2CD916D4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1581437541; bh=BP58NeAUsRvF+lIiyjpSCs29gvt48JN7hdAlnN6cSeY=; h=Date:From:To:References:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=jVyVArqVEwdyrZ54tGz5VPxUjibIv0nIPw6+LHZHWF2D/MolddvUd5RqjgfJsU81V otgsN7XEr7Ms5TcULzlkn1eRZRM+cQYG8TcZLSizJFlJmOSg0hNeFDCplzBlkZNo3t tJTbXWnb4rET6642I6mdUNhhbfs/Eh8siw5TA7sE= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 356B3F80145; Tue, 11 Feb 2020 16:55:54 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id A114BF80146; Tue, 11 Feb 2020 16:55:52 +0100 (CET) Received: from mo6-p00-ob.smtp.rzone.de (mo6-p00-ob.smtp.rzone.de [IPv6:2a01:238:20a:202:5300::8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id E38F4F8013D for ; Tue, 11 Feb 2020 16:55:45 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz E38F4F8013D Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gerhold.net header.i=@gerhold.net header.b="EE85IQzy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1581436545; s=strato-dkim-0002; d=gerhold.net; h=In-Reply-To:References:Message-ID:Subject:Cc:To:From:Date: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=t90jt6sVN6dP7YrNRSr6MqJ/756QVI2zfknSDoTdYWg=; b=EE85IQzy3skzlFJ4raPs6mDPXkZ9NYLo4aTfxlv4zV08OIr8LYSC3Ka8aik/lu4kSD aQ5Ot6nVVVTkmbmkJ/F+0/rN2lHilaJYaKcS8TVUoFOFP2472gP6vSXr4awh49YLZGyj j73tovVGi9gSJunQzLOS8oHdRYs0AUmwIyiOIt4aVaZjBEutZ95Yk47NJw98dceg0zXE dsxE3I37OPcX2dXBqx8eU1U03YXPG73MyC13grEZDOB4ZLOFs5J2QrlqixWu8l3wPdtb FTarp/3ruvVGPh0CUI/lSK1EQYmDUA+6LaRprXlMQBm1VkURXh7hGSlAbJKPHGsk5BQi 7xSg== X-RZG-AUTH: ":P3gBZUipdd93FF5ZZvYFPugejmSTVR2nRPhVOQ/OcYgojyw4j34+u267EpF+OQRc4oHeF5+SwHE=" X-RZG-CLASS-ID: mo00 Received: from gerhold.net by smtp.strato.de (RZmta 46.1.12 AUTH) with ESMTPSA id a01fe9w1BFti6Cy (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 11 Feb 2020 16:55:44 +0100 (CET) Date: Tue, 11 Feb 2020 16:55:37 +0100 From: Stephan Gerhold To: Jaroslav Kysela Message-ID: <20200211155537.GA16850@gerhold.net> References: <20200114112110.51983-1-stephan@gerhold.net> <20200114112110.51983-3-stephan@gerhold.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200114112110.51983-3-stephan@gerhold.net> Cc: alsa-devel@alsa-project.org, Srinivas Kandagatla Subject: Re: [alsa-devel] [PATCH alsa-ucm-conf 2/7] DB410c: Split devices into re-usable fragments in codecs/msm8916-wcd 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Hi Jaroslav, On Tue, Jan 14, 2020 at 12:21:05PM +0100, Stephan Gerhold wrote: > The DB410c use case configuration is also useful for other MSM8916 devices. > > However, the available devices usually depend on the exact device model. > For example, DB410c has nothing connected to the Earpiece, > most MSM8916 smartphones do not have a DigitalMic, and some use > a custom speaker amplifier (connected via I2S) instead of the > speaker amplifier provided by PM8916. > > Similar differences across devices are handled using re-usable > device fragments in the codecs/ directory. Do the same for msm8916-wcd > and move the device fragments to codecs/msm8916-wcd. I'm trying to rebase this patch series on top of master after the "corrections and fixes" commits you did a few days ago. Unfortunately one change made there breaks an assumption required for this patch: in DB410c/HiFi.conf PlaybackPCM/CapturePCM used to be defined globally like: SectionVerb { Value { # ALSA PCM device for HiFi PlaybackPCM "plughw:${CardId},1" CapturePCM "plughw:${CardId},2" } } /* ... */ Now it is defined separately for each SectionDevice. This means I would need to put one specific PlaybackPCM/CapturePCM into the device fragments added in this patch. e.g. ucm2/codecs/msm8916-wcd/Speaker.conf would now contain SectionDevice."Speaker" { /* ... */ Value { PlaybackPCM "plughw:${CardId},1" } } This does not work properly in my case because the numbering differs depending on which board the UCM configuration is used. DB410c has HDMI at index 0, playback at 1 and capture at 2. My other MSM8916 boards do not have HDMI audio, so playback is index 0 and capture is index 1. This used to work fine because I simply had a different HiFi.conf, e.g. msm8916-samsung-a2015/HiFi.conf looked like SectionVerb { Value { PlaybackPCM "plughw:${CardId},0" CapturePCM "plughw:${CardId},1" } } /* ... */ (Note the different numbers compared to DB410c/HiFi.conf above...) Do you have any suggestions how to handle this now? Thanks, Stephan > > Cc: Srinivas Kandagatla > Signed-off-by: Stephan Gerhold > --- > ucm2/DB410c/HiFi.conf | 128 +--------------------- > ucm2/codecs/msm8916-wcd/DigitalMic.conf | 12 ++ > ucm2/codecs/msm8916-wcd/Earpiece.conf | 8 ++ > ucm2/codecs/msm8916-wcd/Headphones.conf | 30 +++++ > ucm2/codecs/msm8916-wcd/HeadsetMic.conf | 16 +++ > ucm2/codecs/msm8916-wcd/PrimaryMic.conf | 14 +++ > ucm2/codecs/msm8916-wcd/SecondaryMic.conf | 16 +++ > ucm2/codecs/msm8916-wcd/Speaker.conf | 20 ++++ > 8 files changed, 122 insertions(+), 122 deletions(-) > create mode 100644 ucm2/codecs/msm8916-wcd/DigitalMic.conf > create mode 100644 ucm2/codecs/msm8916-wcd/Earpiece.conf > create mode 100644 ucm2/codecs/msm8916-wcd/Headphones.conf > create mode 100644 ucm2/codecs/msm8916-wcd/HeadsetMic.conf > create mode 100644 ucm2/codecs/msm8916-wcd/PrimaryMic.conf > create mode 100644 ucm2/codecs/msm8916-wcd/SecondaryMic.conf > create mode 100644 ucm2/codecs/msm8916-wcd/Speaker.conf > > diff --git a/ucm2/DB410c/HiFi.conf b/ucm2/DB410c/HiFi.conf > index a0ef42c..4b82fbf 100644 > --- a/ucm2/DB410c/HiFi.conf > +++ b/ucm2/DB410c/HiFi.conf > @@ -13,126 +13,10 @@ SectionVerb { > } > } > > + > + > > -SectionDevice."Speaker" { > - Comment "Speaker playback" > - > - ConflictingDevice [ > - "Headphones" > - "Earpiece" > - ] > - > - EnableSequence [ > - cset "name='SPK DAC Switch' 1" > - cset "name='RX3 MIX1 INP1' RX1" > - ## gain to 0dB > - cset "name='RX3 Digital Volume' 128" > - ] > - > - DisableSequence [ > - cset "name='SPK DAC Switch' 0" > - cset "name='RX3 MIX1 INP1' ZERO" > - ] > -} > - > - > -SectionDevice."Headphones" { > - Comment "Headphones playback" > - > - ConflictingDevice [ > - "Speaker" > - "Earpiece" > - ] > - EnableSequence [ > - cset "name='RX1 MIX1 INP1' RX1" > - cset "name='RX2 MIX1 INP1' RX2" > - cset "name='RDAC2 MUX' RX2" > - cset "name='HPHL' 1" > - cset "name='HPHR' 1" > - ## gain to 0dB > - cset "name='RX1 Digital Volume' 128" > - ## gain to 0dB > - cset "name='RX2 Digital Volume' 128" > - ] > - > - DisableSequence [ > - cset "name='RX1 Digital Volume' 0" > - cset "name='RX2 Digital Volume' 0" > - cset "name='HPHL' 0" > - cset "name='HPHR' 0" > - cset "name='RDAC2 MUX' ZERO" > - cset "name='RX1 MIX1 INP1' ZERO" > - cset "name='RX2 MIX1 INP1' ZERO" > - ] > -} > - > -SectionDevice."Earpiece" { > - Comment "Earpiece playback" > - > - ConflictingDevice [ > - "Speaker" > - "Headphones" > - ] > -} > - > -SectionDevice."HeadsetMic" { > - Comment "Headset Microphone" > - > - EnableSequence [ > - cset "name='DEC1 MUX' ADC2" > - cset "name='CIC1 MUX' AMIC" > - cset "name='ADC2 Volume' 8" > - cset "name='ADC2 MUX' INP2" > - ] > - > - DisableSequence [ > - cset "name='ADC2 MUX' ZERO" > - cset "name='ADC2 Volume' 0" > - cset "name='DEC1 MUX' ZERO" > - ] > -} > - > -SectionDevice."PrimaryMic" { > - Comment "Primary Microphone" > - > - EnableSequence [ > - cset "name='DEC1 MUX' ADC1" > - cset "name='CIC1 MUX' AMIC" > - cset "name='ADC1 Volume' 8" > - ] > - > - DisableSequence [ > - cset "name='DEC1 MUX' ZERO" > - cset "name='ADC1 Volume' 0" > - ] > -} > - > -SectionDevice."SecondaryMic" { > - Comment "Secondary Microphone" > - > - EnableSequence [ > - cset "name='DEC1 MUX' ADC2" > - cset "name='CIC1 MUX' AMIC" > - cset "name='ADC2 Volume' 8" > - cset "name='ADC2 MUX' INP2" > - ] > - > - DisableSequence [ > - cset "name='DEC1 MUX' ZERO" > - cset "name='ADC2 Volume' 0" > - cset "name='ADC2 MUX' ZERO" > - ] > -} > - > -SectionDevice."DigitalMic" { > - Comment "Digital Microphone" > - > - EnableSequence [ > - cset "name='DEC1 MUX' DMIC1" > - cset "name='CIC1 MUX' DMIC" > - ] > - > - DisableSequence [ > - cset "name='DEC1 MUX' ZERO" > - ] > -} > + > + > + > + > diff --git a/ucm2/codecs/msm8916-wcd/DigitalMic.conf b/ucm2/codecs/msm8916-wcd/DigitalMic.conf > new file mode 100644 > index 0000000..35dfb1b > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/DigitalMic.conf > @@ -0,0 +1,12 @@ > +SectionDevice."DigitalMic" { > + Comment "Digital Microphone" > + > + EnableSequence [ > + cset "name='DEC1 MUX' DMIC1" > + cset "name='CIC1 MUX' DMIC" > + ] > + > + DisableSequence [ > + cset "name='DEC1 MUX' ZERO" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/Earpiece.conf b/ucm2/codecs/msm8916-wcd/Earpiece.conf > new file mode 100644 > index 0000000..e9f8b9d > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/Earpiece.conf > @@ -0,0 +1,8 @@ > +SectionDevice."Earpiece" { > + Comment "Earpiece playback" > + > + ConflictingDevice [ > + "Speaker" > + "Headphones" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/Headphones.conf b/ucm2/codecs/msm8916-wcd/Headphones.conf > new file mode 100644 > index 0000000..7a2090e > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/Headphones.conf > @@ -0,0 +1,30 @@ > +SectionDevice."Headphones" { > + Comment "Headphones playback" > + > + ConflictingDevice [ > + "Speaker" > + "Earpiece" > + ] > + > + EnableSequence [ > + cset "name='RX1 MIX1 INP1' RX1" > + cset "name='RX2 MIX1 INP1' RX2" > + cset "name='RDAC2 MUX' RX2" > + cset "name='HPHL' 1" > + cset "name='HPHR' 1" > + ## gain to 0dB > + cset "name='RX1 Digital Volume' 128" > + ## gain to 0dB > + cset "name='RX2 Digital Volume' 128" > + ] > + > + DisableSequence [ > + cset "name='RX1 Digital Volume' 0" > + cset "name='RX2 Digital Volume' 0" > + cset "name='HPHL' 0" > + cset "name='HPHR' 0" > + cset "name='RDAC2 MUX' ZERO" > + cset "name='RX1 MIX1 INP1' ZERO" > + cset "name='RX2 MIX1 INP1' ZERO" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/HeadsetMic.conf b/ucm2/codecs/msm8916-wcd/HeadsetMic.conf > new file mode 100644 > index 0000000..538d895 > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/HeadsetMic.conf > @@ -0,0 +1,16 @@ > +SectionDevice."HeadsetMic" { > + Comment "Headset Microphone" > + > + EnableSequence [ > + cset "name='DEC1 MUX' ADC2" > + cset "name='CIC1 MUX' AMIC" > + cset "name='ADC2 Volume' 8" > + cset "name='ADC2 MUX' INP2" > + ] > + > + DisableSequence [ > + cset "name='ADC2 MUX' ZERO" > + cset "name='ADC2 Volume' 0" > + cset "name='DEC1 MUX' ZERO" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/PrimaryMic.conf b/ucm2/codecs/msm8916-wcd/PrimaryMic.conf > new file mode 100644 > index 0000000..6998458 > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/PrimaryMic.conf > @@ -0,0 +1,14 @@ > +SectionDevice."PrimaryMic" { > + Comment "Primary Microphone" > + > + EnableSequence [ > + cset "name='DEC1 MUX' ADC1" > + cset "name='CIC1 MUX' AMIC" > + cset "name='ADC1 Volume' 8" > + ] > + > + DisableSequence [ > + cset "name='DEC1 MUX' ZERO" > + cset "name='ADC1 Volume' 0" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/SecondaryMic.conf b/ucm2/codecs/msm8916-wcd/SecondaryMic.conf > new file mode 100644 > index 0000000..7811509 > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/SecondaryMic.conf > @@ -0,0 +1,16 @@ > +SectionDevice."SecondaryMic" { > + Comment "Secondary Microphone" > + > + EnableSequence [ > + cset "name='DEC1 MUX' ADC2" > + cset "name='CIC1 MUX' AMIC" > + cset "name='ADC2 Volume' 8" > + cset "name='ADC2 MUX' INP2" > + ] > + > + DisableSequence [ > + cset "name='DEC1 MUX' ZERO" > + cset "name='ADC2 Volume' 0" > + cset "name='ADC2 MUX' ZERO" > + ] > +} > diff --git a/ucm2/codecs/msm8916-wcd/Speaker.conf b/ucm2/codecs/msm8916-wcd/Speaker.conf > new file mode 100644 > index 0000000..2b1dd8a > --- /dev/null > +++ b/ucm2/codecs/msm8916-wcd/Speaker.conf > @@ -0,0 +1,20 @@ > +SectionDevice."Speaker" { > + Comment "Speaker playback" > + > + ConflictingDevice [ > + "Headphones" > + "Earpiece" > + ] > + > + EnableSequence [ > + cset "name='SPK DAC Switch' 1" > + cset "name='RX3 MIX1 INP1' RX1" > + ## gain to 0dB > + cset "name='RX3 Digital Volume' 128" > + ] > + > + DisableSequence [ > + cset "name='SPK DAC Switch' 0" > + cset "name='RX3 MIX1 INP1' ZERO" > + ] > +} > -- > 2.24.1 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > https://mailman.alsa-project.org/mailman/listinfo/alsa-devel _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel