[alsa-ucm-conf,0/7] DB410c/msm8916-wcd UCM fixes/additions
mbox series

Message ID 20200114112110.51983-1-stephan@gerhold.net
Headers show
Series
  • DB410c/msm8916-wcd UCM fixes/additions
Related show

Message

Stephan Gerhold Jan. 14, 2020, 11:21 a.m. UTC
This is a collection of fixes/refactoring/additions for the DB410c UCM files.
My goal is to also make them usable for other MSM8916 devices, e.g.
the three MSM8916 smartphones which can run mainline Linux since
https://lore.kernel.org/linux-arm-msm/20190722092211.100586-1-stephan@gerhold.net/

For now this is just preparation - this patch series refactors the DB410c
UCM configuration into re-usable device fragments that can be included
when needed.

By the way: it seems like the UCM2 conversion (specifically,
commit 14facf88b56 ("DB410c: adapt to ucm2") breaks PulseAudio because
the Playback/CaptureChannels were moved from all the "SectionDevice"s to
"SectionVerb":

I: [pulseaudio] alsa-ucm.c: UCM available for card msm8916
I: [pulseaudio] alsa-ucm.c: Set UCM verb to HiFi
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device DigitalMic, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device SecondaryMic, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device PrimaryMic, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device Handset, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device Earpiece, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device Headphones, assuming stereo duplex.
W: [pulseaudio] alsa-ucm.c: UCM file does not specify 'PlaybackChannels' or 'CaptureChannels'for device Speaker, assuming stereo duplex.
I: [pulseaudio] module-alsa-card.c: Found UCM profiles
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: DigitalMic
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: SecondaryMic
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: PrimaryMic
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: Handset
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: Earpiece
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: Headphones
E: [pulseaudio] alsa-ucm.c: No sink and source at HiFi: Speaker
I: [pulseaudio] alsa-ucm.c: Set ucm verb to HiFi

It seems like PulseAudio does not inherit them from "SectionVerb",
but I'm not sure if this is a problem in PulseAudio or alsa-lib.
Restoring Playback/CaptureChannels for all the "SectionDevice"s fixes the problem.

Stephan Gerhold (7):
  DB410c: Rename Handset to HeadsetMic
  DB410c: Split devices into re-usable fragments in codecs/msm8916-wcd
  codecs/msm8916-wcd: Speaker: Reset volume on disable
  codecs/msm8916-wcd: Headphones: Drop invalid RDAC2 MUX value
  codecs/msm8916-wcd: Earpiece: Add missing Enable/DisableSequence
  codecs/msm8916-wcd: SecondaryMic: Select correct input
  codecs/msm8916-wcd: Add ConflictingDevice for capture devices

 ucm2/DB410c/HiFi.conf                     | 128 +---------------------
 ucm2/codecs/msm8916-wcd/DigitalMic.conf   |  18 +++
 ucm2/codecs/msm8916-wcd/Earpiece.conf     |  22 ++++
 ucm2/codecs/msm8916-wcd/Headphones.conf   |  29 +++++
 ucm2/codecs/msm8916-wcd/HeadsetMic.conf   |  22 ++++
 ucm2/codecs/msm8916-wcd/PrimaryMic.conf   |  20 ++++
 ucm2/codecs/msm8916-wcd/SecondaryMic.conf |  22 ++++
 ucm2/codecs/msm8916-wcd/Speaker.conf      |  21 ++++
 8 files changed, 160 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