Bug 13250

Summary: Side channel of Intel HDA chip doesn't work anymore, did work with 2.6.29
Product: Drivers Reporter: Andreas Juch (kernel-bt)
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: CLOSED CODE_FIX    
Severity: normal CC: rjw, tiwai
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.30-rc3 Tree: Mainline
Regression: Yes
Bug Depends on:    
Bug Blocks: 13070    
Attachments: alsa-info.sh output, kernel 2.6.29.2, working
alsa-info.sh output, kernel 2.630-rc6, side/line-in missing
Patch to add 5stack-no-fp model
alsa-info.txt output when using Takashi Iwai's patch

Description Andreas Juch 2009-05-05 10:14:57 UTC
The ALSA mixer is now missing the side channel, which was present and did work with the previous kernel. I also have a ATI graphics card with HDA chip which I don't use for audio in that machine.

lspci:

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
	Subsystem: Intel Corporation Device 2504
	Flags: bus master, fast devsel, latency 0, IRQ 22
	Memory at d0220000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel
Comment 1 Rafael J. Wysocki 2009-05-05 21:48:57 UTC
What was the last known-good kernel?
Comment 2 Andreas Juch 2009-05-05 22:18:45 UTC
2.6.29.2 works fine, I tried before I wrote the bug report. I don't know if the previous -rc's of 2.6.30 behave differently, if it's necessary, i'll test them too.
Comment 3 Andreas Juch 2009-05-05 22:46:56 UTC
Kernel messages do have a little difference(*) (I grepped for 'hda'):

2.6.29.2:
HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
input: HDA Intel Line In at Ext Rear Jack as /class/input/input6
input: HDA Intel Mic at Ext Front Jack as /class/input/input7
input: HDA Intel Mic at Ext Rear Jack as /class/input/input8
* input: HDA Intel Line In at Ext Rear Jack as /class/input/input9
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input10
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input11
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input12
input: HDA Intel HP Out at Ext Front Jack as /class/input/input13
HDA Intel 0000:01:00.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17

2.6.30-rc3:
HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
input: HDA Intel Line In at Ext Rear Jack as /class/input/input6
input: HDA Intel Mic at Ext Front Jack as /class/input/input7
input: HDA Intel Mic at Ext Rear Jack as /class/input/input8
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input9
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input10
input: HDA Intel Line Out at Ext Rear Jack as /class/input/input11
input: HDA Intel HP Out at Ext Front Jack as /class/input/input12
HDA Intel 0000:01:00.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17

Please tell me if you need any further info!
Comment 4 Andreas Juch 2009-05-16 13:25:26 UTC
The bug is still here on 2.6.30-rc6. Could it be that I'm affected by something similar that was fixed with Takashi Iwai's "ALSA: hda - Fix line-in on Mac Mini Core2 Duo" patch?
Comment 5 Rafael J. Wysocki 2009-05-17 10:09:03 UTC
On Sunday 17 May 2009, Andreas Juch wrote:
> Am Sat, 16 May 2009 21:20:42 +0200 (CEST)
> schrieb "Rafael J. Wysocki" <rjw@sisk.pl>:
> 
> > This message has been generated automatically as a part of a report
> > of recent regressions.
> > 
> > The following bug entry is on the current list of known regressions
> > from 2.6.29.  Please verify if it still should be listed and let me
> > know (either way).
> 
> Yes, I can confirm that the bug is still present. I tried today with
> 2.6.30-rc6.
> 
> > Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=13250
> > Subject             : Side channel of Intel HDA chip doesn't work
> > anymore, did work with 2.6.29 Submitter     : Andreas Juch
> > <kernel-bt@juch.cc> Date            : 2009-05-05 10:14 (12 days
> > old)
Comment 6 Takashi Iwai 2009-05-17 17:27:27 UTC
No, it's utterly irrelevant, as it's a patch for different codecs.

Please run alsa-info.sh with --no-upload option on both working and non-working kernels, and attach the generated files.  In that way, we can compare the register settings, etc.

Thanks.
Comment 7 Andreas Juch 2009-05-17 18:07:02 UTC
Ok, I have the files. There is also a SBLive card build into the system which I currently don't use. I can take it out if it complicates the alsa-info.sh output too much.
Comment 8 Andreas Juch 2009-05-17 18:07:54 UTC
Created attachment 21391 [details]
alsa-info.sh output, kernel 2.6.29.2, working
Comment 9 Andreas Juch 2009-05-17 18:08:34 UTC
Created attachment 21392 [details]
alsa-info.sh output, kernel 2.630-rc6, side/line-in missing
Comment 10 Takashi Iwai 2009-05-19 07:15:49 UTC
Thanks.  What are the h/w vendor / product names of your machine?
Looks like an Intel mobo...
Comment 11 Takashi Iwai 2009-05-19 07:27:01 UTC
After checking the information, it looks like no real bug.

The BIOS doesn't declare the jack as the side line-out, thus the latest driver doesn't create that control, too.  On 2.6.29, the side-surround worked because the driver assumed the jack I/O somehow wrongly.
Comment 12 Andreas Juch 2009-05-19 11:02:35 UTC
Yes, the mainboard is a Intel DG965WH.

No real bug means just a quirk needed? Anyway, great that you found the cause. Thanks a lot!
Comment 13 Takashi Iwai 2009-05-19 12:35:15 UTC
There is no quirk, unfortunately.  The symptom is a kind of side-effect of the fix for the headphone volume control.  On 2.6.29, it didn't work properly, conflicted with other volume controls.  Now it's fixed by assigning an individual DAC.  But because of that, the extra line-in has no more free DAC to behave as line-out.

So, actually it's no regression but is a "fix" of the wrong configuration...
Comment 14 Andreas Juch 2009-05-19 13:15:08 UTC
I have my headphones connected to the side channel because line-in/side is a jack on the mainboard. The headphone connector is probably an internal connector which I don't use because my computer case doesn't have any audio jacks. The other analog rear outputs are used by a 5.1 audio system.

If I understand you correctly the external side-out doesn't work any more in favor of the internal headphone connector. I'm not very lucky with that (for me personally it's a regression alltough not technically as you say), but I have a SB Live which I'd have to use instead.

At least I know why the side-out is gone now :-)

Thanks for explaining to me!
Comment 15 Takashi Iwai 2009-05-19 13:56:14 UTC
OK, I understand now why you are using that jack :)
Unfortunately, it's the system setup done in that way, assuming you have the front panel.  The presence of the front-panel can't be detected, so the default setup must be as is now.

It's possible to set up different pins so that you get a side output.
For example, build with CONFIG_SND_HDA_HWDEP=y, and you'll have /sys/class/sound/hwC0D2/init_pin_configs, etc.  Then you can override the default pin-config of the headphone jack (NID 0x0a), such as,
    # echo 0x0a 0x40000100 > /sys/class/sound/hwC0D2/user_pin_configs
to disable the HP jack.  Then, reconfigure the sound system by
    # echo 1 > /sys/class/sound/hwC0D2/reconfig

A bit more details are found in Documentation/sound/alsa/HD-Audio.txt.
Comment 16 Andreas Juch 2009-05-19 14:29:31 UTC
Great, I didn't know this was possible and I'm fine with that solution. I'll try if that works now, but I guess this bug can be closed now.

Thanks a lot!
Comment 17 Andreas Juch 2009-05-19 15:54:50 UTC
The sysfs reconfiguration works fine!

Thanks again!
Comment 18 Takashi Iwai 2009-05-22 21:33:28 UTC
Good to hear.

Could you try the patch below and pass model=5stack-no-fp module option to snd-hda-intel driver?  This will override the pin configuration, i.e. has almost the same effect as the magical sysfs things like above.
Comment 19 Takashi Iwai 2009-05-22 21:36:19 UTC
Created attachment 21495 [details]
Patch to add 5stack-no-fp model
Comment 20 Andreas Juch 2009-05-24 12:16:21 UTC
I tried the patch with 2.6.30-rc7 and created /etc/modprobe.d/alsa-side with:
options snd-hda-intel model=5stack-no-fp;

The patch works just like the sysfs commands. This is a perfect solution for me as I don't have to use initscripts to fix my sound. Thanks!
Comment 21 Takashi Iwai 2009-05-24 17:04:23 UTC
Thanks for checking.  I merged the patch to sound git tree and will included it in the next pull request.
Comment 22 Rafael J. Wysocki 2009-05-25 20:59:04 UTC
Handled-By : Takashi Iwai <tiwai@suse.de>
Patch : http://bugzilla.kernel.org/attachment.cgi?id=21495
Comment 23 Takashi Iwai 2009-05-27 05:47:39 UTC
One more thing -- Andreas, could you give alsa-info.sh output with the new model option?

Also, check whether the output contains some sysfs entries like init_pin_configs.  If not, please attach the contents of /sys/class/sound/hwC0D0/*_pin_configs files, too.

Thanks.
Comment 24 Andreas Juch 2009-05-27 09:07:59 UTC
Yes, here it is. The three Sysfs files matching that pattern are included in the output of alsa-info.sh. user_pin_configs is empty both in sysfs and the alsa-info.sh output.
Comment 25 Andreas Juch 2009-05-27 09:09:51 UTC
Created attachment 21583 [details]
alsa-info.txt output when using Takashi Iwai's patch
Comment 26 Rafael J. Wysocki 2009-05-30 21:35:14 UTC
Fixed by commit 679d92ed1403b6cf9a19aa42ec62b81cae1aa017 .