From 54e09df6bc3c321879c15ae6d22dfe0db669c5a7 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 9 Jan 2025 16:09:22 +0100 Subject: [PATCH] alsactl: info - handle situations when devices are not available in kernel The kernel returns ENOTTY error in this case. Do nothing for this error code. Closes: https://github.com/alsa-project/alsa-utils/issues/287 Signed-off-by: Jaroslav Kysela --- alsactl/info.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) -- 2.47.1