Bugzilla – Bug 156494
Intel hda pci-id 8086:27d8 does not work
Last modified: 2006-05-26 13:21:05 UTC
I purchased a Sony Vaio VGN-FE550G which has many of the newest Intel centrino stuff in it. The Intel High Definition Audio PCI device is recognized, but only the PCM device is available from alsamixer and I have no sound. I will attach the relevant information. I have tried with a kernel built from kernel.org and gotten the same results.
Created attachment 71996 [details] /proc/asound/card0/codec#0
Created attachment 71999 [details] /proc/asound/card0/codec#1
Created attachment 72000 [details] /etc/asound.state
Created attachment 72002 [details] lspci -nv
Looks like the BIOS setup is pretty broken. The driver cannot work with such a state. Any BIOS update is available?
I could not find any BIOS updates available on the Sony site. I did see some discussion about older (2002-2003) AMD sony vaio laptops and BIOS settings. I will reboot now to see if anything can be configured. What about the BIOS setup is broken? Is this something that a driver could detect and work around or is it beyond hope? I will take any suggestion. I have now installed FC4 and FC5 Test 3 and sound does not work there either.
Nothing to set in BIOS setup. The version that is installed appears to be R0050J3.
After looking more closely, the BIOS pin-setup looks OK. Actually this codec chips has no volume control at all. So, it's correct that you have only PCM control, which is a software volume attenuator. Do you get also no sound from headphone output?
No sound from headphone at all. Shouldn't there also be a microphone control?
The input has a volume control (but not for output). It wasn't simply parsed well by the generic codec parser.
Is there a patched version you would like me to try?
I can provide a test patch if you can recompile the kernel or build alsa-driver CVS version manually... Attached below. (Also I misread the codec tree -- it has also output volume control, defined as default amp capabilities.) It's a fix for the HDA generic parser. This might not be perfect even after fix. For the better mixer representation, we'll need a dedicated codec suport code.
Created attachment 72240 [details] A fix patch for hda-generic parser
That got a master volume control slider to show up. It was initially muted. When I unmute and adjust volume, there still is no sound. Same when using headphones. I just applied the patch to /usr/src/linux-2.6.16-rc5-git2-2 and rebuilt modules in sound/pci/hda then copied them into /lib/modules/2.6.16-rc5-git2-2. I assume that was the correct thing to do.
Thanks. Then we need more guess work, namely, which pin corresponds to which I/O, and possible other parameters. I'll prepare a patch for testing later.
Could you try the patch below? This will give more detailed mixers (if it doesn't hang up :) First, unmute and adjust 'NODE-xx' volumes on alsamixer, and check the output via "aplay something.wav". If you hear any sound, figure out which control corresponds what output. For capture controls, you can choose 'Capture' and 'Mic-In' volumes and switches. I don't know whether it's from an internal mic (if any) or a mic-in jack. The connection can be chosen in NID 0x15 (line 1165), currently indicating 0x2. Try to change to 1.
Created attachment 72294 [details] STAC7661 VAIO support patch
It didn't hang, but there is nothing in alsamixer and only the sigmatel oss mixer with a master volume control. I have run out of time to work on this today, but can look into it more over the weekend. I can try additional patches, but will not have time to look into much more. I took a quick look over the four files I attached earlier and only asound.state has changed and that was from your first patch when the master volume control showed up.
Please check whether patch_stac9761() is called and the vaio hack is enabled. I might have added typos. Try to pass model=vaio module option for snd-hda-intel to be sure, too.
I put some printk's around the patch_stac7661 function and we do get into the case STAC7661_VAIO: This was in the logs: Mar 10 17:50:31 robinlt kernel: hda_codec: num_steps = 0 for NID=0x15 I added the following printk in snd_hda_mixer_amp_volume_info right after the query_amp_caps: printk("<0> Robin: query_amp_caps(..., %d, %d) returned 0x%x\n", nid, dir, caps); Without the vaio patch, I get the following: Mar 10 21:08:59 robinlt kernel: Robin: query_amp_caps(..., 3, 1) returned 0x80027f7f Mar 10 21:08:59 robinlt kernel: Robin: query_amp_caps(..., 3, 1) returned 0x80027f7f With the vaio patch, I get the following: Mar 10 21:14:50 robinlt kernel: Robin: query_amp_caps(..., 7, 0) returned 0x80050f00 Mar 10 21:14:50 robinlt kernel: Robin: query_amp_caps(..., 21, 0) returned 0x0
I commented out the following: // HDA_CODEC_VOLUME("Mic-In Capture Volume", 0x15, 0, HDA_INPUT), // HDA_CODEC_VOLUME("Mic-In Capture Switch", 0x15, 0, HDA_INPUT), That got the alsamixer opening. Even with all the output volume sliders, I get no sound from either the speakers or headphones.
Keep in mind that I have no clue what I am doing, but I changed the patch_sigmatel.c to include the following: HDA_CODEC_VOLUME("NODE-10 Playback Volume", 0x10, 0, HDA_OUTPUT), HDA_CODEC_MUTE("NODE-10 Playback Switch", 0x10, 0, HDA_OUTPUT), HDA_CODEC_VOLUME("Master Volume Control", 0x15, 0, HDA_OUTPUT), HDA_CODEC_VOLUME("Master Volume Control", 0x15, 0, HDA_OUTPUT), I am not sure if it is important, but I kept them in the order they appear in the codec#0 file. Now I can get sound from the headphones if I have unmute NODE-02 and the speakers if I unmute NODE-05. Not sure what is so important about the 0x15 entry, but that seems to be the one that got this working. Curiously, I do not see any entry for Master Volume Control.
OK. Master Volume Control didn't show up because the last time I had compiled it was still commented out. When I uncomment, the module load fails with Mar 11 04:51:28 robinlt kernel: ALSA sound/core/control.c:327: control 2:0:0:Master Volume Control:0 is already present On a seperate note, when I enable all the portions in the Volume Control preferences, "Capture" shows up on the playback tab.
The widget 0x15 is an audio selector as the recording source with the amp capabilities. So, it should have nothing to do with the output. The error message from query_amp_caps are still strange. According to your codec#0 proc file, NID 0x15 has surely the amp bits and nsteps != 0. Anyway, it's good to know that NID 02h = HP and NID 05h = speaker. Is the speaker automatically toggled when you plug the HP jack?
For re-checking, could you attach codec#0 proc file?
Not sure what you mean by automatically toggled. Inserting headphones disables the speakers, but that does not appear to be reflected in alsamixer. I will attach another copy of codec#0 in a few seconds.
Created attachment 72603 [details] /proc/asound/card0/codec#0 Here is /proc/asound/card0/codec#0 again.
OK, then that's fine. Some laptops need the manual handling of muting per plug state, but yours does on hardware. So, what's still missing? Did you try the recording from mic? Does it have internal mic in addition to a mic-in jack?
A new patch is attached below. If you still get errors with num_steps and NID 0x15, comment out two elements "Mic-In Capture Volume" and "Mic-In Capture Switch" in vaio_mixer[].
Created attachment 72611 [details] A new patch for VAIO with STAC7661
Or better try the newer patch below. With this patch, you'll have a single "Master" control for both HP and speaker. Also, it has a selection of "capture source" for testing.
Created attachment 72617 [details] Yet another patch
I had to un-static/extern snd_hda_codec_amp_update. Trying it soon.
It was changed recently. Get the latest KOTD from suse ftp, and copy the sound/* and include/sound directories.
OK. I finally got some time to download the latest kernel, install, patch and rebuild the sound/pci/hda directory. Results are the same. I am going to save myself some time and attach a screenshot from the alsamixer screen. Sound works, master control has no effect on sound, but pcm does.
Created attachment 72888 [details] alsamixer screen shot
Is this patch include in beta 8 ? I have no sound on my Sony Vaio SZ.
> Is this patch include in beta 8 ? I have no sound on my Sony Vaio SZ. To the best of my knowledge, it is not included anywhere yet. It is really not quite working at this point, but it gets me sounds ;) If you grab the second patch (# 72294), apply it to a work area, comment out the following two lines and build just the sound/pci/hda directory unload the original hda modules and load these you might have sound. HDA_CODEC_VOLUME("Mic-In Capture Volume", 0x15, 0, HDA_INPUT), HDA_CODEC_VOLUME("Mic-In Capture Switch", 0x15, 0, HDA_INPUT), What needs to be done from here is we need to map out what which sliders are which devices and probably tweak some other stuff as well. Currently, I have no audio CD playback, but I can rip it and play the flac files just fine. Movies work as well, but again they are not being played by the drive, but rather the cpu.
Takashi, I hope to have some time here this week to try and get this working. Is there any documentation I can look at which describes the values I should be playing with? At this point in time, I am back to the STAC7661 vaio patch. Any direction would be greatly appreciated.
I'm not sure about the CD. It's highly possible that the machine has no analog CD connection like many other laptops. Anyway, the patch is on kernel CVS, so will be available on rc1.
I am a little confused about which patch and where. Are you saying it is in Linus' kernel.org git tree? Which patch? Your most recently posted one does not work well for me. Have you made a newer patch?
Sound now works on my Vaio SZ with beta 9.
I finally got a chance to test beta-9. I have a master volume control which works for either speaker or headphone jack. There is a pcm and capture selections available, but neither gets the microphone working and there does not appear to be any way to control/enable cd sound.
Please retestwith beta11/rc2
This chip has no analog loopback from mic -> output, so you don't hear directly. It's a known problem that the mic capture doesn't work properly on this laptop. A patch is already there but not applied to SUSE kernel yet.
STAC7661 code in kernel CVS HEAD is identical with the latest ALSA tree. So I suppose it's fixed now.