lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <s5haby09vv2.wl%tiwai@suse.de>
Date:	Mon, 26 Mar 2007 11:50:41 +0200
From:	Takashi Iwai <tiwai@...e.de>
To:	Chuck Ebbert <cebbert@...hat.com>
Cc:	kernel list <linux-kernel@...r.kernel.org>
Subject: Re: BUG: soft lockup during suspend

At Fri, 23 Mar 2007 15:22:46 -0400,
Chuck Ebbert wrote:
> 
> Takashi Iwai wrote:
> > At Tue, 20 Mar 2007 17:08:48 +0100,
> > I wrote:
> >> At Tue, 20 Mar 2007 12:05:07 -0400,
> >>>
> >>> 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)
> > 
> 
> 2.6.21-rc4 works perfectly, detecting my Acer notebook's model
> properly and adding the sound devices to the bus. Very nice...

Could you try rc5?  I'm afraid that one of fix patches on rc5 may
break the probing on your laptop (this path had to be applied to
recover another regression...) 

If it happened, try the patch below from the latest ALSA tree.

thanks,

Takashi


[PATCH] [ALSA] hda-intel - Probe additional slots only if necessary

Probing the codec slots on ATI controller causes problems on some
devices like Acer laptops.  On these devices, reading from codec
slot 3 results in the communication failure with the codec chip.
Meanwhile, some laptops (e.g. Gateway) have the codec connection
only on slot 3, and probing this slot is mandatory for them.
The patch improves the probing robustness.  The additional slots
are now checked only when no codecs are found in the primary three
slots.

Signed-off-by: Takashi Iwai <tiwai@...e.de>
Signed-off-by: Jaroslav Kysela <perex@...e.cz>

---
commit a239a9ff89307a0a65fd9cbb02afb020bdb13de0
tree 72603176c199d3fedaeba030f3ea5691c4b5d882
parent 66753e652a094e0ab856417a5092297dbabe5fd6
author Takashi Iwai <tiwai@...e.de> Wed, 21 Mar 2007 15:14:35 +0100
committer Jaroslav Kysela <perex@...e.cz> Wed, 21 Mar 2007 15:15:24 +0100

 sound/pci/hda/hda_intel.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 517a8d7..5e478b9 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ