[alsa-devel] [PATCH alsa-ucm-conf 2/7] DB410c: Split devices into re-usable fragments in codecs/msm8916-wcd
Stephan Gerhold
stephan at gerhold.net
Tue Feb 11 16:55:37 CET 2020
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"
}
}
<codecs/msm8916-wcd/Speaker.conf>
/* ... */
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"
}
}
<codecs/msm8916-wcd/Speaker.conf>
/* ... */
(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 <srinivas.kandagatla at linaro.org>
> Signed-off-by: Stephan Gerhold <stephan at gerhold.net>
> ---
> 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 {
> }
> }
>
> +<codecs/msm8916-wcd/Speaker.conf>
> +<codecs/msm8916-wcd/Headphones.conf>
>
> -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"
> - ]
> -}
> +<codecs/msm8916-wcd/PrimaryMic.conf>
> +<codecs/msm8916-wcd/HeadsetMic.conf>
> +<codecs/msm8916-wcd/SecondaryMic.conf>
> +<codecs/msm8916-wcd/DigitalMic.conf>
> 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 at alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
More information about the Alsa-devel
mailing list