[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