Hi Guys,
I have backported wcd9335 audio codec driver from
https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=wcd9335
on 4.14.53 kernel.
Version: Debian Buster/Sid
Kernel: 4.14.53
Pulseaudio: 11.1 & 12
alsaucm: 1.1.3
ls /usr/share/alsa/ucm/DB820c/
DB820c.conf HiFi HDMI
id linaro
uid=1000(linaro) gid=1000(linaro) groups=1000(linaro),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),30(dip),44(video),46(plugdev),50(staff),10
1(systemd-journal),106(netdev),108(bluetooth),110(pulse),111(pulse-access)
ls -al /dev/snd/*
crw-rw----+ 1 root audio 116, 2 Sep 5 12:58 /dev/snd/comprC0D0
crw-rw----+ 1 root audio 116, 0 Sep 5 12:58 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 25 Sep 5 12:58 /dev/snd/pcmC0D1c
crw-rw----+ 1 root audio 116, 17 Sep 5 12:58 /dev/snd/pcmC0D1p
crw-rw----+ 1 root audio 116, 26 Sep 5 12:58 /dev/snd/pcmC0D2c
crw-rw----+ 1 root audio 116, 18 Sep 5 12:58 /dev/snd/pcmC0D2p
crw-rw----+ 1 root audio 116, 33 Sep 5 12:58 /dev/snd/timer/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root 60 Sep 5 12:58 .
drwxr-xr-x 3 root root 200 Sep 5 12:58 …
lrwxrwxrwx 1 root root 12 Sep 5 12:58 platform-sound → …/controlC0
I have 3.5mm Headphone with MIC. When i set Headphone from command line. It will work but when it comes to pulseaudio it fails to work.
/usr/bin/alsaucm -c DB820c set _verb HiFi set _enadev Headphones
I: [pulseaudio] alsa-ucm.c: UCM available for card DB820c
I: [pulseaudio] alsa-ucm.c: Set UCM verb to HiFi
D: [pulseaudio] alsa-ucm.c: Got PlaybackPCM for verb HiFi: plughw:0,1
D: [pulseaudio] alsa-ucm.c: Got CapturePCM for verb HiFi: plughw:0,2
D: [pulseaudio] alsa-ucm.c: Got TQ for verb HiFi: HDMI
D: [pulseaudio] alsa-ucm.c: Got CaptureChannels for device Handset: 1
D: [pulseaudio] alsa-ucm.c: Got JackControl for device Handset: Headphone Jack
D: [pulseaudio] alsa-ucm.c: UCM capture device Handset fetch pcm from verb default plughw:0,2
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device Handset
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device Handset
D: [pulseaudio] alsa-ucm.c: Got PlaybackChannels for device Headphones: 2
D: [pulseaudio] alsa-ucm.c: Got JackControl for device Headphones: Headphone Jack
D: [pulseaudio] alsa-ucm.c: UCM playback device Headphones fetch pcm from verb default plughw:0,1
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device Headphones
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device Headphones
I: [pulseaudio] alsa-ucm.c: Set UCM verb to HDMI
D: [pulseaudio] alsa-ucm.c: Got PlaybackPCM for verb HDMI: plughw:0,2
D: [pulseaudio] alsa-ucm.c: Got TQ for verb HDMI: HiFi
D: [pulseaudio] alsa-ucm.c: Got PlaybackChannels for device HDMI-stereo: 2
D: [pulseaudio] alsa-ucm.c: UCM playback device HDMI-stereo fetch pcm from verb default plughw:0,2
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device HDMI-stereo
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device HDMI-stereo
I: [pulseaudio] module-alsa-card.c: Found UCM profiles
D: [pulseaudio] alsa-ucm.c: UCM mapping: Mapping HDMI: plughw:0,2: sink dev HDMI-stereo
D: [pulseaudio] alsa-mixer.c: Profile HDMI (HDMI output.), input=(null), output=(null) priority=1000, supported=yes n_input_mappings=0, n_output
_mappings=1
D: [pulseaudio] alsa-mixer.c: Output HDMI: plughw:0,2: sink
D: [pulseaudio] alsa-ucm.c: UCM mapping: Mapping HiFi: plughw:0,2: source dev Handset
D: [pulseaudio] alsa-ucm.c: UCM mapping: Mapping HiFi: plughw:0,1: sink dev Headphones
D: [pulseaudio] alsa-mixer.c: Profile HiFi (Play HiFi quality Music.), input=(null), output=(null) priority=8000, supported=yes n_input_mappings=1, n_output_mappings=1
D: [pulseaudio] alsa-mixer.c: Input HiFi: plughw:0,2: source
D: [pulseaudio] alsa-mixer.c: Output HiFi: plughw:0,1: sink
I: [pulseaudio] alsa-ucm.c: Set ucm verb to HDMI
D: [pulseaudio] alsa-util.c: Trying plughw:0,2 with SND_PCM_NO_AUTO_FORMAT …
D: [pulseaudio] alsa-util.c: Managed to open plughw:0,2
D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 2972 ms
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
D: [pulseaudio] alsa-util.c: Set period size first (to 1102 samples), buffer size second (to 4408 samples).
D: [pulseaudio] alsa-ucm.c: Profile HDMI supported.
I: [pulseaudio] (alsa-lib)control.c: Invalid CTL plughw:0,2
I: [pulseaudio] alsa-util.c: Unable to attach to mixer plughw:0,2: No such file or directory
I: [pulseaudio] alsa-util.c: Successfully attached to mixer ‘hw:0’
I: [pulseaudio] alsa-ucm.c: UCM jack HDMI-stereo has_control=0
I: [pulseaudio] alsa-ucm.c: Set ucm verb to HiFi
D: [pulseaudio] alsa-util.c: Trying plughw:0,1 with SND_PCM_NO_AUTO_FORMAT …
D: [pulseaudio] alsa-util.c: Managed to open plughw:0,1
D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 2972 ms
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
D: [pulseaudio] alsa-util.c: Set neither period nor buffer size.
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params failed: Invalid argument
D: [pulseaudio] alsa-util.c: Trying plughw:0,1 without SND_PCM_NO_AUTO_FORMAT …
D: [pulseaudio] alsa-util.c: Managed to open plughw:0,1
D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 2972 ms
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
D: [pulseaudio] alsa-util.c: Set neither period nor buffer size.
I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
I: [pulseaudio] alsa-util.c: snd_pcm_hw_params failed: Invalid argument
I: [pulseaudio] alsa-util.c: Failed to set hardware parameters on plughw:0,1: Invalid argument
D: [pulseaudio] alsa-mixer.c: Profile set 0xaaaadddcb180, auto_profiles=no, probed=yes, n_mappings=1, n_profiles=1, n_decibel_fixes=0
D: [pulseaudio] alsa-mixer.c: Mapping HDMI: plughw:0,2: sink (HDMI Digital Stereo Output), priority=100, channel_map=front-left,front-right, sup
ported=yes, direction=1
D: [pulseaudio] alsa-mixer.c: Profile HDMI (HDMI output.), input=(null), output=(null) priority=1000, supported=yes n_input_mappings=0, n_output
_mappings=1
D: [pulseaudio] alsa-mixer.c: Output HDMI: plughw:0,2: sink
D: [pulseaudio] alsa-ucm.c: Check device HDMI-stereo conformance with 0 other devices
D: [pulseaudio] alsa-ucm.c: First device in combination, number 1
D: [pulseaudio] alsa-ucm.c: Add port [Out] HDMI-stereo: HDMI Digital Stereo Output
D: [pulseaudio] alsa-ucm.c: Port [Out] HDMI-stereo direction output, priority 100
D: [pulseaudio] alsa-ucm.c: Adding profile HDMI to port [Out] HDMI-stereo.
I: [pulseaudio] module-card-restore.c: Restoring port latency offsets for card alsa_card.platform-sound.
D: [pulseaudio] module-alsa-card.c: Found 0 jacks.
I: [pulseaudio] card.c: Created 0 “alsa_card.platform-sound”
I: [pulseaudio] alsa-ucm.c: Set UCM verb to HDMI
D: [pulseaudio] reserve-wrap.c: Unable to contact D-Bus session bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon
without a $DISPLAY for X11
D: [pulseaudio] alsa-util.c: Trying plughw:0,2 with SND_PCM_NO_AUTO_FORMAT …
D: [pulseaudio] alsa-util.c: Managed to open plughw:0,2
I: [pulseaudio] alsa-util.c: Cannot disable ALSA period wakeups
D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 2972 ms
D: [pulseaudio] alsa-util.c: Set buffer size first (to 88200 samples), period size second (to 88200 samples).
I: [pulseaudio] alsa-util.c: ALSA period wakeups were not disabled
I: [pulseaudio] alsa-sink.c: Successfully opened device plughw:0,2.
I: [pulseaudio] alsa-sink.c: Selected mapping ‘HDMI Digital Stereo Output’ (HDMI: plughw:0,2: sink).
I: [pulseaudio] alsa-sink.c: Successfully enabled mmap() mode.
I: [pulseaudio] alsa-sink.c: Successfully enabled timer-based scheduling mode.
D: [pulseaudio] alsa-ucm.c: Check device HDMI-stereo conformance with 0 other devices
D: [pulseaudio] alsa-ucm.c: First device in combination, number 1
D: [pulseaudio] alsa-ucm.c: Port [Out] HDMI-stereo direction output, priority 100
I: [pulseaudio] alsa-ucm.c: ALSA device plughw:0,2 roles: (null)
I: [pulseaudio] sink.c: Created sink 0 “alsa_output.platform-sound.HDMI__plughw_0_2__sink” with sample spec s16le 2ch 44100Hz and channel map fr
ont-left,front-right
As you can see that HDMI is working but when it comes to PCM on HiFi failing.
pacmd list-sinks | grep -e ‘name:’ -e ‘index:’
- index: 0
name: <alsa_output.platform-sound.HDMI__plughw_0_2__sink>
root@OpenQ:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: DB820c [DB820c], device 1: MultiMedia2 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: DB820c [DB820c], device 2: MultiMedia3 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
root@OpenQ:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: DB820c [DB820c], device 1: MultiMedia2 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: DB820c [DB820c], device 2: MultiMedia3 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
apt-cache depends pulseaudio
pulseaudio
Depends: libasound2
Depends: libc6
Depends: libcap2
Depends: libdbus-1-3
Depends: libgcc1
Depends: libice6
Depends: libltdl7
Depends: liborc-0.4-0
Depends: libpulse0
Depends: libsm6
Depends: libsndfile1
Depends: libsoxr0
Depends: libspeexdsp1
Depends: libstdc++6
Depends: libsystemd0
Depends: libtdb1
Depends: libudev1
Depends: libwebrtc-audio-processing1
Depends: libx11-6
Depends: libx11-xcb1
Depends: libxcb1
Depends: libxtst6
Depends: adduser
Depends: lsb-base
Depends: libasound2-plugins
Depends: pulseaudio-utils
Recommends: rtkit
Recommends: libpam-systemd
Recommends: dbus-user-session
Suggests: udev
Suggests: pavumeter
Suggests: pavucontrol
Suggests: <paman>
Suggests: paprefs
If required more information feel free to ask.
Thanks,
parbatha