[pulseaudio-discuss] Audio only working after stopping PulseAudio and setting the UCM - kblda7219max on the ChromeOS Kernel, 5.10.70

Arun Raghavan arun at arunraghavan.net
Sat May 28 15:56:12 UTC 2022


On Sun, 3 Apr 2022, at 10:27 PM, Navtej Bhatti wrote:
> On my `kblda7219max` Chromebook (baseboard: NAMI), internal audio works 
> properly when the following conditions are met:
> * Kernel 5.10.70 (ChromeOS fork) is used (the latest ChromeOS kernel 
> has some kind of topology-related kernel bug)
> * FW is copied from the ChromeOS rootfs to Linux
> * UCM is converted to UCM2
> * Only ALSA is used
>
> However, whenever I start PulseAudio (`pulseaudio -vvvv`), audio is 
> disabled, going to a dummy output.
>
> PulseAudio passes through probing for the UCM files but errors out in 
> this particular spot:
> ```
> 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 hw:kblda7219max,0 without 
> SND_PCM_NO_AUTO_FORMAT ...
> D: [pulseaudio] alsa-util.c: Managed to open hw:kblda7219max,0
> D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 21845 ms
> I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
> I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
> I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
> I: [pulseaudio] (alsa-lib)pcm_hw.c: SNDRV_PCM_IOCTL_PREPARE failed (-22)
> ```
> which causes it to say:
> ```
> E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
> E: [pulseaudio] module.c: Failed to load module "module-alsa-card" 
> (argument: "device_id="0" name="platform-kbl_da7219_mx98357a" 
> card_name="alsa_card.platform-kbl_da7219_mx98357a" namereg_fail=false 
> tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes 
> use_ucm=yes avoid_resampling=no 
> card_properties="module-udev-detect.discovered=1""): initialization 
> failed.
> ```
>
> My `dmesg` gets filled with:
> ```
> Kbl Audio Port: ASoC: no backend DAIs enabled for Kbl Audio Port
> Kbl Audio Port: ASoC: dpcm_fe_dai_prepare() failed (-22)
> ```
>
> However, once I kill PulseAudio and run `alsaucm -c kblda7219max set 
> _verb HiFi set _enadev Speaker`, audio begins working again (but this 
> is in pure ALSA and PA apps are not compatible) and the `no backend 
> DAIs enabled for Kbl Audio Port` is no longer logged to `dmesg`.
>
> I think this is a UCM issue because the audio is working fine 
> kernel-level and with ALSA, but PulseAudio seems to mess something up 
> with the UCM and the UCM needs to be set again.
>
> I ended up removing the Front Mic, Rear Mic, and Mic, all of which were 
> connected to PCM3. PulseAudio worked, but I ended up frying (you could 
> smell something burning) my speaker, even at minimum volume :). I've 
> seen others document this. ALSA exhibits no such behavior (it worked 
> with apulse for months), but PulseAudio is able to burn your speaker. 
> It surprises me because PA operates only in the userspace.
>
> This whole setup is reproducible with my project, Breath, located here 
> <https://github.com/cb-linux/breath>.
> Attachments:
> * kblda7219max.conf.txt
> * HiFi.conf.txt
> * pulseaudio-log.txt
> * alsa-info (4).txt


Thanks for the detailed report Navtej. Could you file this on the bug tracker so we can potentially track this better?

  https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues

Cheers,
Arun


More information about the pulseaudio-discuss mailing list