Hdmi audio doesn't work on db820c

HI,

I tried 4.14 kernel branch. Hdmi audio doesn’t work. Can someone please let me know, is it tested?

Thanks,
Pradeep

In my case, HDMI audio was glitchy (using the latest 201 Debian release). The solution was:

[1] Reinstall PulseAudio
sudo apt-get -y remove --purge pulseaudio
sudo apt-get -y install pulseaudio
sudo apt-get -y install pavucontrol

[2] Edit file “/etc/pulse/default.pa” and include “tsched=0” (after load-module module-udev-detect):

load-module module-udev-detect tsched=0

[3] Reboot

Reference :
https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Glitches.2C_skips_or_crackling

(look for “Glitches, skips or crackling” in this reference)

Note: maybe, step [1] can be skipped (I just tried it first). Steps [2] and [3] may fix the issue.

I hope this helps.

thanks cezman. I will try on monday.

Hi Cezman,

Audio works with the change, you mentioned.

Thanks,
Pradeep

Hello, pradeep,
which Debian release do you test, the HDMI audio can work?
I tested the latest 293 Debian release and previous versions, the HDMI can not worked

Thanks
feng

Hi @chen,

I tested with below one.
http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/225/

Thanks,
Pradeep

Hello, @pradeep

First of all, thank you very much.

I tested with the 225 release, but HDMI is still silent.

except modifying the load-module-udev-detect tsched = 0, what else needs to be done??

Thanks
feng

Hi @chen,

It should work with 4.14 branch. Try with a different tv and check once.

Thanks,
Pradeep

Hi @pradeep
It is sill silent, with different TV. I doubt it’s not the TV problem.

Thanks
feng

Hi @chen,

Ok, may be some thing broken in newer kernel. check out to below commit, build kernel and try. This should work for you.

git checkout 1d9f9c9a67bf9e3e8501095a87e3f05e2ae007e4

Thanks,
Pradeep

Hi,@pradeep
Sorry, it does not work,
But there will be the following log , Do you have ever met it ?

[ 13.577188] q6asm-dai q6asm-dai: Linked as a consumer to 1600000.arm,smmu-lpass_q6
[ 13.585573] msm-snd-apq8096 sound: bound q6asm-dai (ops q6asm_dai_comp_ops [q6asm_dai])
[ 13.592533] ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3367 from ath10k/QCA6174/hw3.0/board-2.bin
[ 13.593201] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ed5f849a
[ 13.617641] msm-snd-apq8096 sound: bound q6afe-dai (ops q6afe_dai_comp_ops [q6afe_dai])
[ 13.624091] msm-snd-apq8096 sound: bound q6routing (ops q6routing_dai_comp_ops [q6routing])
[ 13.624435] hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: no source widget found for Playback
[ 13.624438] hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: Failed to add route Playback -> direct -> TX
[ 13.625811] msm-snd-apq8096 sound: snd-soc-dummy-dai <-> MultiMedia1 mapping ok
[ 13.625851] msm-snd-apq8096 sound: i2s-hifi <-> HDMI mapping ok
[ 13.625919] msm-snd-apq8096 sound: ASoC: no source widget found for MCLK
[ 13.625921] msm-snd-apq8096 sound: ASoC: Failed to add route MCLK -> direct -> RX_BIAS

[ 150.731669] q6asm-dai q6asm-dai: DSP returned error[1]
[ 150.738898] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.743236] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.749647] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.756242] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.762809] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.769785] q6asm-dai q6asm-dai: DSP returned error[1]
[ 150.777255] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.781393] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.787824] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.794386] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.800947] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1
[ 150.807905] q6asm-dai q6asm-dai: DSP returned error[1]

Thanks,
feng

Hi @chen,

Playing audio with VLC/ any other app should be fine. Have you done flashing the meta binaries(particularly NON-HLOS.bin is needed)? which board are you using? From the boot logs, check whether adsp firmware is loaded or not.

Thanks,
Pradeep

Check sound card is registered or not. It should list db820c.
cat /proc/asound/cards

Thanks,
Pradeep

Hi,@pradeep,
The BOARDS is arrow db820c,which can be found,by 96boards web.
the NON-HLOS.bin is not flashed, we do not find it, how do you get it ? the adsp .bin has the same question
db820c cards can be found, by cat proc/asond/cards

Thanks
feng

Hi @chen,

I think adsp firmware is packed in rootfs. check in /lib/firmware. It is ok. NON-HLOS is not needed.
I am sorry, i don’t know why it doesn’t work for you. May be somone from linaro can help?

Thanks,
Pradeep

Hi,Pradeep,
Thank you very much,
we change a tv, the hdmi sound can work,
maybe the hdmi sound driver is incompatible with TV of different brands.

Thanks
chen