Skip to content

Commit

Permalink
ALSA: hda - Don't return a fatal error at PCM-creation errors
Browse files Browse the repository at this point in the history
Don't return a fatal error to the driver but continue to probe when
any error occurs at creating PCM streams for each codec.
It's often non-fatal and keeping it would help debugging.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Mar 2, 2009
1 parent f93d461 commit 6e655bf
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions sound/pci/hda/hda_codec.c
Original file line number Diff line number Diff line change
Expand Up @@ -2833,8 +2833,16 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
if (!codec->patch_ops.build_pcms)
return 0;
err = codec->patch_ops.build_pcms(codec);
if (err < 0)
return err;
if (err < 0) {
printk(KERN_ERR "hda_codec: cannot build PCMs"
"for #%d (error %d)\n", codec->addr, err);
err = snd_hda_codec_reset(codec);
if (err < 0) {
printk(KERN_ERR
"hda_codec: cannot revert codec\n");
return err;
}
}
}
for (pcm = 0; pcm < codec->num_pcms; pcm++) {
struct hda_pcm *cpcm = &codec->pcm_info[pcm];
Expand All @@ -2846,11 +2854,15 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
if (!cpcm->pcm) {
dev = get_empty_pcm_device(codec->bus, cpcm->pcm_type);
if (dev < 0)
return 0;
continue; /* no fatal error */
cpcm->device = dev;
err = snd_hda_attach_pcm(codec, cpcm);
if (err < 0)
return err;
if (err < 0) {
printk(KERN_ERR "hda_codec: cannot attach "
"PCM stream %d for codec #%d\n",
dev, codec->addr);
continue; /* no fatal error */
}
}
}
return 0;
Expand Down

0 comments on commit 6e655bf

Please sign in to comment.