At Wed, 22 Oct 2008 09:48:11 +1100, Anton Blanchard wrote:
Hi Takashi,
I was unable to get sound to work (analog or SPDIF) on my dg45id using 2.6.27. After looking at the pinout information I made a quick hack to get SPDIF out going (it's a mythtv box so thats all I need):
Index: linux-source-2.6.27/sound/pci/hda/patch_sigmatel.c
--- linux-source-2.6.27.orig/sound/pci/hda/patch_sigmatel.c 2008-08-31 11:06:37.000000000 +1000 +++ linux-source-2.6.27/sound/pci/hda/patch_sigmatel.c 2008-08-31 11:07:14.000000000 +1000 @@ -3591,7 +3591,7 @@ spec->num_pwrs = ARRAY_SIZE(stac92hd73xx_pwr_nids); spec->pwr_nids = stac92hd73xx_pwr_nids;
- err = stac92xx_parse_auto_config(codec, 0x22, 0x24);
err = stac92xx_parse_auto_config(codec, 0x26, 0x24);
if (!err) { if (spec->board_config < 0) {
And pointed mythtv at ALSA:plughw:0,1. Quick and dirty I know :)
Details of the chipset are below.
Thanks. There seems two problems behind.
- the codec has two SPDIF outputs but the driver assumes only the first one
- the driver wrongly probes the pin widget instead of audio-out widget
So, your patch fixes only the latter problem which is specific to your device.
Could you rewrite the patch to probe the pin first? That is, check the availability of pin 0x22 and 0x23. If one of them is available, pick the corresponding audio-out widget (0x25 and 0x26).
I'm going to need some help here, I have very little understanding of ALSA. Could you give me a quick rundown on how to probe pins or point me at an example in code?
Could you try the latest sound tree? git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
There have been many changes regarding SPDIF on IDT/STAC codecs, and your problem might have been already fixed.
thanks,
Takashi