PulseAudio only working after setting the UCM - kblda7219max on the ChromeOS Kernel, 5.10.70

GitHub issues - opened github at alsa-project.org
Sat Mar 26 15:33:53 CET 2022


alsa-project/alsa-ucm-conf issue #142 was opened from MilkyDeveloper:

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.

Huge thanks for any help!
[alsa-info.txt](https://github.com/alsa-project/alsa-ucm-conf/files/8355612/alsa-info.txt)
(My PulseAudio log is slightly different from the time I ran PulseAudio and got the PCM_IOCTL_PREPARE error)
[pulseaudio-log.txt](https://github.com/alsa-project/alsa-ucm-conf/files/8355613/pulseaudio-log.txt)
[HiFi.conf.txt](https://github.com/alsa-project/alsa-ucm-conf/files/8355631/HiFi.conf.txt)
[kblda7219max.conf.txt](https://github.com/alsa-project/alsa-ucm-conf/files/8355632/kblda7219max.conf.txt)

Issue URL     : https://github.com/alsa-project/alsa-ucm-conf/issues/142
Repository URL: https://github.com/alsa-project/alsa-ucm-conf


More information about the Alsa-devel mailing list