Skip to content

Commit

Permalink
[ALSA] hda-intel - Improve HD-audio codec probing robustness
Browse files Browse the repository at this point in the history
When modem is disabled in the BIOS, detection of the number of codecs
always fails after booting if STATESTS is not cleared first.
This patch fixes this problem and also adds an error check in a place
where a read error would lead to a very large number of pointless loops.

Signed-off-by: Danny Tholen <obiwan@mailmij.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
  • Loading branch information
Danny Tholen authored and Jaroslav Kysela committed Oct 16, 2007
1 parent 768d8c7 commit e8a7f13
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sound/pci/hda/hda_codec.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@ int snd_hda_get_sub_nodes(struct hda_codec *codec, hda_nid_t nid,
unsigned int parm;

parm = snd_hda_param_read(codec, nid, AC_PAR_NODE_COUNT);
if (parm == -1)
return 0;
*start_id = (parm >> 16) & 0x7fff;
return (int)(parm & 0x7fff);
}
Expand Down
3 changes: 3 additions & 0 deletions sound/pci/hda/hda_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,9 @@ static int azx_reset(struct azx *chip)
{
int count;

/* clear STATESTS */
azx_writeb(chip, STATESTS, STATESTS_INT_MASK);

/* reset controller */
azx_writel(chip, GCTL, azx_readl(chip, GCTL) & ~ICH6_GCTL_RESET);

Expand Down

0 comments on commit e8a7f13

Please sign in to comment.