Bugzilla – Full Text Bug Listing
|Summary:||Sound is not working on my laptop using its FCH Azalia soundcard [1022:780d]|
|Product:||[openSUSE] openSUSE Distribution||Reporter:||Graham Freeman <graham>|
|Component:||Sound||Assignee:||Takashi Iwai <tiwai>|
|Status:||RESOLVED FIXED||QA Contact:||E-mail List <qa-bugs>|
|Priority:||P5 - None||CC:||graham|
|Found By:||---||Services Priority:|
|Marketing QA Status:||---||IT Deployment:||---|
|Attachments:||The output from alsa-info.sh|
Description Graham Freeman 2015-02-02 21:33:51 UTC
Comment 1 Takashi Iwai 2015-02-04 16:18:39 UTC
The device likely needs some special treatment such as GPIO pins. Try to turn on each GPIO pin. For example, run the below as root: hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 This will turn on the pin 1 (bit 0). If this doesn't change anything, try to pass 0x02 instead of 0x01 in three commands above. It will turn on pin 2 (bit 1). You can try 0x04, 0x08 and 0x10, i.e. up to GPIO bit 4.
Comment 2 Graham Freeman 2015-02-05 11:00:45 UTC
I installed hda-verb and tried your suggestions. The commands hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x10 made sound work. This is a miracle. I have used Fedora for many years and reported the problem to them 14 months ago when I bought this new machine. It has been unusable for that whole period. I installed OpenSUSE last week and sound is now working. Thank-you so much. So should I install those commands in a start-up script somewhere, like /etc/profile?
Comment 3 Takashi Iwai 2015-02-05 11:08:04 UTC
Good to hear that my blind shot hits. It's safe to put the stuff into some init script, but I'm going to cook a fix patch soon, and push to upstream and openSUSE 13.2 kernels.
Comment 4 Takashi Iwai 2015-02-05 11:13:01 UTC
One more item that needs to be clarified: is this GPIO pin setup needed also for the headphone output? Or only for the speaker output?
Comment 5 Takashi Iwai 2015-02-05 13:11:26 UTC
Just for completeness: as an easy test, you can run like hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 to turn off the pin and hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 to turn on the pin dynamically. You don't have to change SET_GPIO_MASK and SET_GPIO_DIR again to turn off. My question was whether the sound from the headphone also disappears if you turn off the GPIO pin (and reappears if you turn on again). If so, we need to keep GPIO pin always up during operation. OTOH, if the GPIO pin doesn't affect the headphone output, we need to turn it on only for the speaker. This would save the power a bit.
Comment 6 Graham Freeman 2015-02-05 20:41:40 UTC
With pin 4 set, I get sound from either sound source, the speakers or the headphone jack. Both are now working fine. So I need to have the MASK, the DIR and the DATA bits set on pin 4 to get sound from the speakers and from the headphones.
Comment 7 Takashi Iwai 2015-02-05 20:50:36 UTC
So, do I understand correctly that both speaker and headphone are muted when you turn off pin 4?
Comment 8 Graham Freeman 2015-02-05 20:53:49 UTC
Yes. I can only get sound from the headphones when pin 4 is set. Setting pin 4 enables sound from both speakers and headphones.
Comment 9 Takashi Iwai 2015-02-05 21:22:45 UTC
OK, thanks for confirmation. Now I submitted the fix patch to the upstream and backported it to SUSE openSUSE-13.2 kernel git branch. This will be included in the next update kernel. Meanwhile, you can try the fixed kernel from OBS Kernel:openSUSE-13.2 repo. It'll take some time until the new commit appears in the repo and the package build finishes. Maybe try some time tomorrow. With the fixed kernel, the sound should work without extra workarounds. This bug is closed now. Feel free to reopen if the problem still persists with the newer kernel.
Comment 10 Swamp Workflow Management 2015-04-13 12:14:59 UTC
openSUSE-SU-2015:0713-1: An update that solves 13 vulnerabilities and has 52 fixes is now available. Category: security (important) Bug References: 867199,893428,895797,900811,901925,903589,903640,904899,905681,907039,907818,907988,908582,908588,908589,908592,908593,908594,908596,908598,908603,908604,908605,908606,908608,908610,908612,909077,909078,909477,909634,910150,910322,910440,911311,911325,911326,911356,911438,911578,911835,912061,912202,912429,912705,913059,913466,913695,914175,915425,915454,915456,915577,915858,916608,917830,917839,918954,918970,919463,920581,920604,921313,922542,922944 CVE References: CVE-2014-8134,CVE-2014-8160,CVE-2014-8559,CVE-2014-9419,CVE-2014-9420,CVE-2014-9428,CVE-2014-9529,CVE-2014-9584,CVE-2014-9585,CVE-2015-0777,CVE-2015-1421,CVE-2015-1593,CVE-2015-2150 Sources used: openSUSE 13.2 (src): bbswitch-0.8-3.6.6, cloop-2.639-14.6.6, crash-7.0.8-6.6, hdjmod-1.28-18.7.6, ipset-6.23-6.6, kernel-docs-3.16.7-13.2, kernel-obs-build-3.16.7-13.7, kernel-obs-qa-3.16.7-13.1, kernel-obs-qa-xen-3.16.7-13.1, kernel-source-3.16.7-13.1, kernel-syms-3.16.7-13.1, pcfclock-0.44-260.6.2, vhba-kmp-20140629-2.6.2, virtualbox-4.3.20-10.2, xen-4.4.1_08-12.2, xtables-addons-2.6-6.2