diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-07-19 13:52:31 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-07-19 13:52:31 +0200 |
commit | 05e870d29aef0bf43124b2bd424103987fadd5b5 (patch) | |
tree | c16af622c5da784653a418cede6fa7b4b3357270 /sound/pci/hda | |
parent | 3f3b7c1aed70fa25c6811f830c5fb1a7054681ae (diff) | |
parent | 2e9bf247066a293ebcd4672ddd487808ab5f2d1b (diff) |
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'sound/pci/hda')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 6 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 35f0f223f85..d686f4fcd78 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -347,6 +347,12 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid, } range_val = !!(parm & (1 << (shift-1))); /* ranges */ val = parm & mask; + if (val == 0) { + snd_printk(KERN_WARNING "hda_codec: " + "invalid CONNECT_LIST verb %x[%i]:%x\n", + nid, i, parm); + return 0; + } parm >>= shift; if (range_val) { /* ranges between the previous and this one */ diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 507a7720013..454df58e983 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4501,6 +4501,12 @@ static int alc880_parse_auto_config(struct hda_codec *codec) &dig_nid, 1); if (err < 0) continue; + if (dig_nid > 0x7f) { + printk(KERN_ERR "alc880_auto: invalid dig_nid " + "connection 0x%x for NID 0x%x\n", dig_nid, + spec->autocfg.dig_out_pins[i]); + continue; + } if (!i) spec->multiout.dig_out_nid = dig_nid; else { |