At Tue, 20 Mar 2007 17:08:48 +0100, I wrote: > > At Tue, 20 Mar 2007 12:05:07 -0400, > Chuck Ebbert wrote: > > > > Takashi Iwai wrote: > > > > > > X60/T60 is known to be often broken regarding the communication > > > between the controller and the codec chip. When this kind of thing > > > happens, the driver tries to switch to a single-shot I/O without using > > > ring-buffers and IRQs, and even in such a mode, the communication gets > > > broken. FWIW, it doesn't happen on other machines with HD-audio, so > > > it's fairly specific to X60/T60. No idea why. > > > > What about Acer Aspire 5102? > > > > http://lkml.org/lkml/2006/12/3/9 > > This is a different problem. > A known workaround is to provide probe_mask=1 module option.
BTW, does this happen on the latest linus git tree? (rc4 may work, though) If yes, could you try the patch below? thanks, Takashi diff -r 1dd843b6ffa7 sound/pci/hda/hda_intel.c --- a/sound/pci/hda/hda_intel.c Tue Mar 20 11:33:46 2007 +0100 +++ b/sound/pci/hda/hda_intel.c Tue Mar 20 17:16:20 2007 +0100 @@ -198,6 +198,7 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO #define RIRB_INT_MASK 0x05 /* STATESTS int mask: SD2,SD1,SD0 */ +#define AZX_MAX_CODECS 3 #define STATESTS_INT_MASK 0x07 /* SD_CTL bits */ @@ -991,7 +992,7 @@ static int __devinit azx_codec_create(st return err; codecs = 0; - for (c = 0; c < azx_max_codecs[chip->driver_type]; c++) { + for (c = 0; c < AZX_MAX_CODECS; c++) { if ((chip->codec_mask & (1 << c)) & probe_mask) { err = snd_hda_codec_new(chip->bus, c, NULL); if (err < 0) @@ -999,7 +1000,18 @@ static int __devinit azx_codec_create(st codecs++; } } - if (! codecs) { + if (!codecs) { + /* probe additional slots if no codec is found */ + for (; c < azx_max_codecs[chip->driver_type]; c++) { + if ((chip->codec_mask & (1 << c)) & probe_mask) { + err = snd_hda_codec_new(chip->bus, c, NULL); + if (err < 0) + continue; + codecs++; + } + } + } + if (!codecs) { snd_printk(KERN_ERR SFX "no codecs initialized\n"); return -ENXIO; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/