Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audio only working after stopping PulseAudio and setting the UCM - kblda7219max on the ChromeOS Kernel, 5.10.70 #142

Closed
MilkyDeveloper opened this issue Mar 26, 2022 · 5 comments

Comments

@MilkyDeveloper
Copy link

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
(My PulseAudio log is slightly different from the time I ran PulseAudio and got the PCM_IOCTL_PREPARE error)
pulseaudio-log.txt
HiFi.conf.txt
kblda7219max.conf.txt

@MilkyDeveloper
Copy link
Author

MilkyDeveloper commented Mar 26, 2022

I ended up removing the Front Mic, Rear Mic, and Mic, all of which were connects 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 suprises me because PA operates only in the userspace.

@MilkyDeveloper
Copy link
Author

On further inspection directly from ChromeOS, audio is working but it appears that PA blew my left speaker’s membrane. Is there any way to sense these issues ahead of time?

@ArtemPozharov
Copy link

Strangely, OEM didn't integrate the hardware-level protection from such things.

@MilkyDeveloper
Copy link
Author

Google can’t integrate hardware level protection from very loud noises. They probably put in protection from over-voltage.

@MilkyDeveloper MilkyDeveloper changed the title PulseAudio only working after setting the UCM - kblda7219max on the ChromeOS Kernel, 5.10.70 Audio only working after stopping PulseAudio and setting the UCM - kblda7219max on the ChromeOS Kernel, 5.10.70 Mar 27, 2022
@perexg
Copy link
Member

perexg commented Feb 7, 2023

Stale. Re-open, if UCM configuration can be improved for this device.

@perexg perexg closed this as completed Feb 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants