diff --git a/alsactl/info.c b/alsactl/info.c index 31b3294..9acd701 100644 --- a/alsactl/info.c +++ b/alsactl/info.c @@ -35,6 +35,8 @@ static int pcm_device_list(snd_ctl_t *ctl, snd_pcm_stream_t stream, bool *first) streamfirst = true; while (1) { if ((err = snd_ctl_pcm_next_device(ctl, &dev)) < 0) { + if (err == ENOTTY) /* no kernel support */ + return 0; error("snd_ctl_pcm_next_device: %s", snd_strerror(err)); return err; } @@ -102,6 +104,8 @@ static int rawmidi_device_list(snd_ctl_t *ctl, snd_rawmidi_stream_t stream, bool streamfirst = true; while (1) { if ((err = snd_ctl_rawmidi_next_device(ctl, &dev)) < 0) { + if (err == ENOTTY) /* no kernel support */ + return 0; error("snd_ctl_rawmidi_next_device: %s", snd_strerror(err)); return err; } @@ -159,7 +163,9 @@ static int hwdep_device_list(snd_ctl_t *ctl) first = true; while (1) { if ((err = snd_ctl_hwdep_next_device(ctl, &dev)) < 0) { - error("snd_ctl_pcm_next_device"); + if (err == ENOTTY) /* no kernel support */ + return 0; + error("snd_ctl_pcm_next_device: %s", snd_strerror(err)); return err; } if (dev < 0)