At Wed, 25 Jun 2008 10:40:41 +0900, Kan-I Jyo wrote:
Dear list,
My original mail on this topic was posted to the alsa-user list, while I was informed that this alsa-devel list would be the right place to post.
The problem I had encountered is that the Adi 1986 codec chip on my device with Poulsbo(SCH) chipset could not be recognized by the snd_hda_intel driver module.
Tobin has kindly given me an advice on trying an ALSA driver that is later than 1.0.16.final. For a cross-test pupose, I have tried both the following 1.0.16 and the latest 1.0.17-rc2.
[1.0.16] ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.16.tar.bz2
[1.0.17-rc2] ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.17rc2.tar.bz2
By following the guide described in the INSTALL text file in both the above two packages, I have done make and make install without a problem.
Unfortunately, both these two version of ALSA driver does not recognized the Adi 1986 codec and in the dmesg output claiming that "no codecs found!".
<dmesg> -- snip -- ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 16 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1b.0 to 64 ALSA /root/alsa-driver-1.0.16/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:1887: hda-intel: no codecs found! ACPI: PCI interrupt for device 0000:00:1b.0 disabled ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 16 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1b.0 to 64 ALSA /root/alsa-driver-1.0.17rc2/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:2142: hda-intel: no codecs found! ACPI: PCI interrupt for device 0000:00:1b.0 disabled
The driver was properly loaded, so the problem is in the codec communication...
On which slot is assigned the codec chip? As now, SCH is set up to probe up to 3rd slots. The driver had a problem regarding the probe on the 4th slot on some hardwares, so it limited the probe to 3 slots as default. SCH support was just copied from ICH, and this workaround was likely inherited, too.
The patch below enables the probe on 4th slot on SCH.
thanks,
Takashi
--- diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 16715a6..2e9d9c9 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1157,7 +1157,7 @@ static int azx_setup_controller(struct azx *chip, struct azx_dev *azx_dev)
static unsigned int azx_max_codecs[] __devinitdata = { [AZX_DRIVER_ICH] = 4, /* Some ICH9 boards use SD3 */ - [AZX_DRIVER_SCH] = 3, + [AZX_DRIVER_SCH] = 4, [AZX_DRIVER_ATI] = 4, [AZX_DRIVER_ATIHDMI] = 4, [AZX_DRIVER_VIA] = 3, /* FIXME: correct? */