aarch64-laptops / build

Build an Linux OS based image
221 stars 47 forks source link

Can't get c630 audio to work on 5.14 #75

Open rigoorozco opened 2 years ago

rigoorozco commented 2 years ago

Hi Guys,

I've got my Lenovo Yoga c630 almost fully working on Ubuntu 20.04 running the laptops-5.14 kernel. WiFi and GPU are both working great. Sound is the last thing left. I'm getting the error below:

[ 113.012168] wcd934x-codec wcd934x-codec.3.auto: WCD934X Minor:0x1 Version:0x411 [ 113.012182] wcd934x-codec wcd934x-codec.3.auto: qcom,micbias1-microvolt value not found, using default [ 113.012189] wcd934x-codec wcd934x-codec.3.auto: qcom,micbias2-microvolt value not found, using default [ 113.012192] wcd934x-codec wcd934x-codec.3.auto: qcom,micbias3-microvolt value not found, using default [ 113.012195] wcd934x-codec wcd934x-codec.3.auto: qcom,micbias4-microvolt value not found, using default [ 113.018779] qcom,slim-ngd-ctrl 171c0000.slim: SLIM SAT: Rcvd master capability [ 113.019544] genirq: Flags mismatch irq 182. 00002001 (mbhc sw intr) vs. 00002001 (mbhc sw intr) [ 113.019558] wcd934x-codec wcd934x-codec.3.auto: Failed to request mbhc interrupts -16 [ 113.019562] wcd934x-codec wcd934x-codec.3.auto: Failed to Initialize MBHC [ 113.031142] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT0 MIX2 INP has no paths [ 113.031161] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT1 MIX2 INP has no paths [ 113.031166] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT2 MIX2 INP has no paths [ 113.031171] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT3 MIX2 INP has no paths [ 113.031175] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT4 MIX2 INP has no paths [ 113.031180] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT7 MIX2 INP has no paths [ 113.032329] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX9 MUX has no paths [ 113.032336] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX10 MUX has no paths [ 113.032341] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX11 MUX has no paths [ 113.032346] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX11 INP1 MUX has no paths [ 113.032351] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX13 MUX has no paths [ 113.032355] wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX13 INP1 MUX has no paths [ 113.062595] input: Lenovo-YOGA-C630-13Q50 Headset Jack as /devices/platform/soc@0/soc@0:sound/sound/card0/input26 [ 113.228670] MultiMedia1: ASoC: no backend DAIs enabled for MultiMedia1 [ 113.228701] MultiMedia1: ASoC: dpcm_fe_dai_prepare() failed (-22)

That last two lines repeat spamming dmesg

It looks like I might be missing some device tree bindings perhaps?

I'm using the alsa/ucm2 files here: https://github.com/srinivas-kandagatla/alsa-ucm-conf/tree/lenovo-yoga-360

rigoorozco commented 2 years ago

I think the "genirq: Flags mismatch irq 182. 00002001 (mbhc sw intr) vs. 00002001 (mbhc sw intr)" is because I'm reloading the snd_soc_sdm845 module.

The initial run has: [ 28.875265] kernel: qcom-soundwire wcd934x-soundwire.5.auto: DMA mask not set [ 28.901071] kernel: wcd934x-gpio wcd934x-gpio.4.auto: DMA mask not set [ 28.905117] kernel: qcom,slim-ngd-ctrl 171c0000.slim: SLIM SAT: Rcvd master capability [ 28.905476] kernel: wcd934x-slim 217:250:1:0: missing qcom,mbhc-buttons-vthreshold-microvolt entry [ 28.926846] kernel: qcom-soundwire wcd934x-soundwire.5.auto: qcom_swrm_irq_handler: SWR new slave attached [ 28.927622] kernel: qcom-soundwire wcd934x-soundwire.5.auto: Qualcomm Soundwire controller v1.3.0 Registered [ 28.950764] kernel: qcom-soundwire wcd934x-soundwire.5.auto: qcom_swrm_irq_handler: SWR new slave attached [ 29.202822] kernel: audit: type=1400 audit(1631039867.147:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="ippusbxd" pid=1216 comm="apparmor_parser" [ 29.205647] kernel: audit: type=1400 audit(1631039867.151:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=1214 comm="apparmor_parser" [ 29.206665] kernel: audit: type=1400 audit(1631039867.151:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cups-browsed" pid=1213 comm="apparmor_parser" [ 29.207488] kernel: audit: type=1400 audit(1631039867.155:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=1219 comm="apparmor_parser" [ 29.207503] kernel: audit: type=1400 audit(1631039867.155:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=1219 comm="apparmor_parser" [ 29.210140] kernel: audit: type=1400 audit(1631039867.155:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=1215 comm="apparmor_parser" [ 29.210162] kernel: audit: type=1400 audit(1631039867.155:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=1215 comm="apparmor_parser" [ 29.210170] kernel: audit: type=1400 audit(1631039867.155:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=1215 comm="apparmor_parser" [ 29.210392] kernel: audit: type=1400 audit(1631039867.155:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/haveged" pid=1221 comm="apparmor_parser" [ 29.211672] kernel: audit: type=1400 audit(1631039867.159:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="libreoffice-oopslash" pid=1224 comm="apparmor_parser" [ 29.591726] kernel: remoteproc remoteproc2: powering up 4080000.remoteproc [ 29.595149] kernel: remoteproc remoteproc2: Booting fw image qcom/LENOVO/81JL/qcdsp1v2850.mbn, size 242400 [ 29.609316] kernel: qcom,apr remoteproc-adsp:glink-edge.apr_audio_svc.-1.-1: Adding APR dev: aprsvc:apr-service:4:3 [ 29.609406] kernel: qcom,apr remoteproc-adsp:glink-edge.apr_audio_svc.-1.-1: Adding APR dev: aprsvc:apr-service:4:4 [ 29.609427] kernel: qcom,apr remoteproc-adsp:glink-edge.apr_audio_svc.-1.-1: Adding APR dev: aprsvc:apr-service:4:7 [ 29.609446] kernel: qcom,apr remoteproc-adsp:glink-edge.apr_audio_svc.-1.-1: Adding APR dev: aprsvc:apr-service:4:8 [ 29.680648] kernel: q6asm-dai remoteproc-adsp:glink-edge:apr:apr-service@7:dais: Adding to iommu group 22 [ 29.691356] kernel: wcd934x-codec wcd934x-codec.3.auto: WCD934X Minor:0x1 Version:0x411 [ 29.691372] kernel: wcd934x-codec wcd934x-codec.3.auto: qcom,micbias1-microvolt value not found, using default [ 29.691378] kernel: wcd934x-codec wcd934x-codec.3.auto: qcom,micbias2-microvolt value not found, using default [ 29.691381] kernel: wcd934x-codec wcd934x-codec.3.auto: qcom,micbias3-microvolt value not found, using default [ 29.691383] kernel: wcd934x-codec wcd934x-codec.3.auto: qcom,micbias4-microvolt value not found, using default [ 29.724619] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT0 MIX2 INP has no paths [ 29.724764] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT1 MIX2 INP has no paths [ 29.724830] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT2 MIX2 INP has no paths [ 29.724885] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT3 MIX2 INP has no paths [ 29.725042] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT4 MIX2 INP has no paths [ 29.725128] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux RX INT7 MIX2 INP has no paths [ 29.729437] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX9 MUX has no paths [ 29.729453] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX10 MUX has no paths [ 29.729457] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX11 MUX has no paths [ 29.729461] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX11 INP1 MUX has no paths [ 29.729465] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX13 MUX has no paths [ 29.729469] kernel: wcd934x-codec wcd934x-codec.3.auto: ASoC: mux CDC_IF TX13 INP1 MUX has no paths [ 29.756237] kernel: input: Lenovo-YOGA-C630-13Q50 Headset Jack as /devices/platform/soc@0/soc@0:sound/sound/card0/input25

Then the console spams the same two lines as before

rigoorozco commented 2 years ago

I seem to have better luck with these files: https://github.com/andersson/alsa-lib/tree/master/src/conf/ucm/LENOVO-81JL-LenovoYOGAC630_13Q50-LNVNB161216

Though I've only gotten the headphones to work on occasion.

@andersson @Srinivas-Kandagatla

rigoorozco commented 2 years ago

I suspect that the alsa-ucm-conf and libasound2 packages in Ubuntu 20.04 don't work well with the configuration files.

I upgraded to Ubuntu 21.04 which has versions 1.2.4 (20.04 was limited to 1.2.2) and it started working now!

RussianNeuroMancer commented 2 years ago

I upgraded to Ubuntu 21.04 which has versions 1.2.4 (20.04 was limited to 1.2.2) and it started working now!

I wonder if you faced this issue as well after upgrade?