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

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

Open
rigoorozco opened this issue Oct 6, 2021 · 4 comments
Open

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

rigoorozco opened this issue Oct 6, 2021 · 4 comments

Comments

@rigoorozco
Copy link

rigoorozco commented Oct 6, 2021

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
Copy link
Author

rigoorozco commented Oct 6, 2021

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 rigoorozco changed the title wcd934x-codec wcd934x-codec.3.auto: Failed to Initialize MBHC Can't get c630 audio to work on 5.14 Oct 6, 2021
@rigoorozco
Copy link
Author

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
Copy link
Author

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
Copy link
Contributor

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?

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

2 participants